多语言展示
当前在线:358今日阅读:145今日分享:43

SpringBoot如何整合MyBatis?

SpringBoot得到的最终效果是一个简化到极致的WEB开发,但是只要牵涉到WEB开发,就绝对不可能缺少数据层操作,所有的开发都一定秉持着MVC设计模式的原则,MVC里面业务层不可少,数据层永远要与业务层绑定在一起,既然要进行数据层的操作,那么首选的一定就是MyBatis,因为MyBatis整合处理之后尤其是与Spring整理之后可以直接避免掉DAO层的编写,同事VO类也是最干净的。
工具/原料
1

mysql

2

druid

3

myelipse

方法/步骤
1

新建项目maven项目:microcloud-provider-dept-8001

2

在maven文件中新增springboot与mybatis整合相关依赖包  4.0.0  com.gwolf  microcloud-provider-dept-8001  jar   springboot-mybatis  http://maven.apache.org      UTF-8                                 org.springframework.boot        spring-boot-dependencies        1.5.2.RELEASE        pom        import                    mysql        mysql-connector-java        6.0.6                    com.alibaba        druid        1.1.5                    org.mybatis.spring.boot        mybatis-spring-boot-starter        1.3.1                    ch.qos.logback        logback-core        1.2.3                    org.springframework.boot        spring-boot-starter-jetty        1.5.8.RELEASE                    org.springframework.boot        spring-boot-starter-web        1.5.8.RELEASE                    org.springframework.boot        spring-boot-starter-test        1.5.8.RELEASE        test                    org.springframework        springloaded        1.2.8.RELEASE                    org.springframework.boot        spring-boot-devtools        1.5.8.RELEASE         

3

创建数据库脚本:DROP DATABASE IF EXISTS mldn_1 ;CREATE DATABASE mldn_1 CHARACTER SET UTF8 ;USE mldn_1 ;CREATE TABLE dept ( deptno BIGINT AUTO_INCREMENT , dname VARCHAR(50) , loc VARCHAR(50) , CONSTRAINT pk_deptno PRIMARY KEY(deptno)) ;INSERT INTO dept(dname,loc) VALUES ('开发部',database()) ;INSERT INTO dept(dname,loc) VALUES ('财务部',database()) ;INSERT INTO dept(dname,loc) VALUES ('市场部',database()) ;INSERT INTO dept(dname,loc) VALUES ('后勤部',database()) ;INSERT INTO dept(dname,loc) VALUES ('公关部',database()) ;

4

创建application.yml配置文件server:  port: 8001mybatis:  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径  type-aliases-package: com.gwolf.vo       # 定义所有操作类的别名所在包  mapper-locations:                                     # 所有的mapper映射文件  - classpath:mybatis/mapper/**/*.xmlspring:  datasource:    type: com.alibaba.druid.pool.DruidDataSource    # 配置当前要使用的数据源的操作类型    driver-class-name: com.mysql.cj.jdbc.Driver      # 配置MySQL的驱动程序类    url: jdbc:mysql://localhost:3306/mldn_1?serverTimezone=UTC   # 数据库连接地址    username: root                                  # 数据库用户名    password: root                            # 数据库连接密码    dbcp2:                                          # 进行数据库连接池的配置      min-idle: 5                                   # 数据库连接池的最小维持连接数      initial-size: 5                               # 初始化提供的连接数      max-total: 5                                  # 最大的连接数      max-wait-millis: 200                          # 等待连接获取的最大超时时间  application:    name: microcloud-provider-deptsecurity:  user:    name: gwolf       #用户名    password: gwolf   #密码    role:             #授权角色    - USER

5

创建VO对象:package com.gwolf.vo;public class Dept implements  java.io.Serializable {    private Long deptno;    private String dname;    private String loc;    public Long getDeptno() {        return deptno;    }    public void setDeptno(Long deptno) {        this.deptno = deptno;    }    @Override    public String toString() {        return 'Dept{' +                'deptno=' + deptno +                ', dname='' + dname + '\'' +                ', loc='' + loc + '\'' +                '}';    }    public String getDname() {        return dname;    }    public void setDname(String dname) {        this.dname = dname;    }    public String getLoc() {        return loc;    }    public void setLoc(String loc) {        this.loc = loc;    }}

6

创建mybatis配置文件:

7

创建dept.xml文件 INSERT INTO dept(dname,loc) VALUES (#{dname},database()) ;

8

创建service类DeptServiceImplpackage com.gwolf.microcloud.service.impl;import com.gwolf.microcloud.dao.IDeptDAO;import com.gwolf.microcloud.service.IDeptService;import com.gwolf.vo.Dept;import org.springframework.stereotype.Service;import javax.annotation.Resource;import java.util.List;@Servicepublic class DeptServiceImpl implements IDeptService{    @Resource    private IDeptDAO deptDAO;    @Override    public Dept get(long id) {        return this.deptDAO.findById(id);    }    @Override    public boolean add(Dept dept) {        return this.deptDAO.doCreate(dept);    }    @Override    public List list() {        return this.deptDAO.findAll();    }}

10

创建项目启动类,注意项目启动类必须在所有类的父目录上面package com.gwolf.microcloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Dept_8001_StartSpringCloudApplication {    public static void  main(String[] args) {        SpringApplication.run(Dept_8001_StartSpringCloudApplication.class,args);    }}

11

编写项目测试类:package com.gwolf.microcloud.service;import com.gwolf.microcloud.Dept_8001_StartSpringCloudApplication;import com.gwolf.vo.Dept;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.web.WebAppConfiguration;import javax.annotation.Resource;@SpringBootTest(classes = Dept_8001_StartSpringCloudApplication.class)@RunWith(SpringJUnit4ClassRunner.class)@WebAppConfigurationpublic class IDeptServiceTest {    @Resource    private IDeptService deptService;    @Test    public void testGet() {        System.out.println(this.deptService.get(1));    }    @Test    public void testAdd() {        Dept dept = new Dept();        dept.setDname('测试部-' + System.currentTimeMillis());        System.out.println(this.deptService.add(dept));    }    @Test    public void testList() {        System.out.println(this.deptService.list());    }}

12

整合完毕,执行测试类的list方法,查看结果:[Dept{deptno=1, dname='测试部46', loc='mldn_1'}, Dept{deptno=2, dname='测试部12', loc='mldn_1'}, Dept{deptno=3, dname='测试部83', loc='mldn_1'}, Dept{deptno=4, dname='web测试', loc='mldn_1'}, Dept{deptno=5, dname='web测试', loc='mldn_1'}, Dept{deptno=6, dname='web测试', loc='mldn_1'}, Dept{deptno=7, dname='测试部89', loc='mldn_1'}, Dept{deptno=8, dname='测试部90', loc='mldn_1'}, Dept{deptno=9, dname='测试部24', loc='mldn_1'}, Dept{deptno=10, dname='测试部19', loc='mldn_1'}, Dept{deptno=11, dname='测试部55', loc='mldn_1'}, Dept{deptno=12, dname='测试部-78', loc='mldn_1'}, Dept{deptno=13, dname='web测试', loc='mldn_1'}, Dept{deptno=14, dname='web测试365', loc='mldn_1'}],成功打印,整合成功。

推荐信息