第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

SpingBoot二——引入MySql數(shù)據(jù)庫(kù)

標(biāo)簽:
Java SpringBoot

转载请注明出处:https://www.cnblogs.com/by-dream/p/10486117.html 

 

搭起一个简单的服务后,接下来我们加入数据库,通过服务去读取DB中的数据进行显示。顺便将模块划分再清晰一些。

不说太多了,直接说代码吧。

1、pom.xml的dependencies中入依赖

复制代码

        <!-- mybatis 数据库 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!-- mysql 驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

复制代码

注意这里我们引入mybatis,所有和数据库之间的操作都借助它来完成。

2、resource中加入数据库配置和mapper的配置:

复制代码

# 数据库配置spring.datasource.url=jdbc:mysql://**.**.**.**:3306/rap?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driver# mybatis 配置.xml文件路径mybatis.mapper-locations=classpath:mapper/*.xml

复制代码

第一列需要配置你的ip地址和端口,3306后面的第一个斜线后跟数据库名(也就是这里的rap)

这里需要提前登录到服务上进行了建表:

mysql -u root -p 后输入密码进入,创建数据库:

?

1create DATABASE rap;  

 然后建表:

复制代码

create table user (
    id bigint unsigned  not null auto_increment comment '主键',
    gmt_create datetime  not null comment '创建时间',
    gmt_modified datetime  not null comment '修改时间',
    nick varchar(1024)  not null comment '名字',
    age bigint unsigned  not null comment '年龄',
    primary key (id)
) default charset=utf8 comment='这是一张用户表';

复制代码

插入一条数据:

insert into user (nick, age) values ("bryan", 27);

建表完成后。我们还需要开启数据库远程链接。首先运行:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'  ;
这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址
接着运行  flush privileges;  这一步不可获取,否则不会成功。此时我们在本地远程登录到服务器上看下是否可行。

 3、在resource中加入创建mapper:

**-mapper.xml 里面的内容有点像写sql一样,这里我们先实现一个findById的方法

复制代码

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"><mapper namespace="com.bryan.demo.dal.dao.UserMapper">
    <resultMap id="userMap" type="com.bryan.demo.dal.entity.UserDO">
        <result property="id" column="id"/>
        <result property="nick" column="nick"/>
        <result property="age" column="age"/>
    </resultMap>

    <sql id="columns" >
        id, nick, age    </sql>

    <select id="findById" parameterType="java.lang.Long" resultMap="userMap">
        SELECT        <include refid="columns" />
        FROM user
        WHERE id = #{id}    </select></mapper>

复制代码

4、对应的我们需要建一个mapper的类和其对应的数据类do类:

复制代码

package com.bryan.demo.dal.dao;import com.bryan.demo.dal.entity.UserDO;import org.apache.ibatis.annotations.Mapper;

@Mapperpublic interface UserMapper {    public UserDO findById(Long id);
}

复制代码

复制代码

package com.bryan.demo.dal.entity;import java.io.Serializable;public class UserDO implements Serializable {    /**
     * 主键     */
    private Long id;    private String nick;    private int age;    public String getNick() {        return nick;
    }    public void setNick(String nick) {        this.nick = nick;
    }    public int getAge() {        return age;
    }    public void setAge(int age) {        this.age = age;
    }
}

复制代码

UserMapper类的作用就是提供数据库操作的方法,UserDO类的作用就是将数据库中的数据转化为Java数据类型;

5、接下来Service层的实现:

定义接口:

复制代码

package com.bryan.demo.service;import com.bryan.demo.dal.entity.UserDO;public interface UserService {
    UserDO findById(Long id);
}

复制代码

接口的实现:

复制代码

package com.bryan.demo.service.impl;import com.bryan.demo.dal.dao.UserMapper;import com.bryan.demo.dal.entity.UserDO;import com.bryan.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;

@Servicepublic class UserServiceImpl implements UserService {

    @Autowired    public UserMapper userMapper;
    
    @Override    public UserDO findById(Long id) {

        UserDO userDO = userMapper.findById(1L);        return userDO;
    }
}

复制代码

6、最终Controller层直接调用service的接口返回:

复制代码

@RestControllerpublic class MachineInfoController {

    @Autowired
    UserService userService;

    @RequestMapping("/")
    String homePage() {
        UserDO userDO = userService.findById(1L);        return "name:"+userDO.getNick() + " age:"+userDO.getAge();
    }
}

复制代码

此时我们在浏览器情况,查看:

 好,看下整体的目录结构:

整理了一下关系链:

由于本节只说数据库,所以整体的服务端的架构还没有特别的完善,下一节我会针对整体服务端架构进行分层,然后详细说明。

代码我传到git上:

 

 


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消