SpringBoot如何整合MyBatis?

2025-11-04 01:31:44

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

SpringBoot如何整合MyBatis?

2、在maven文件中新增springboot与mybatis整合相关依赖包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.gwolf</groupId>

  <artifactId>microcloud-provider-dept-8001</artifactId>

  <packaging>jar </packaging>

  <name>springboot-mybatis</name>

  <url>http://maven.apache.org</url>

  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  </properties>

 <dependencies>

      <dependency>

        <!-- Import dependency management from Spring Boot -->

        <!--SpringCloud离不开SpringBoot,所以必须配置SpringBoot依赖包-->

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-dependencies</artifactId>

        <version>1.5.2.RELEASE</version>

        <type>pom</type>

        <scope>import</scope>

      </dependency>

      <dependency>

        <groupId>mysql</groupId>

        <artifactId>mysql-connector-java</artifactId>

        <version>6.0.6</version>

      </dependency>

      <dependency>

        <groupId>com.alibaba</groupId>

        <artifactId>druid</artifactId>

        <version>1.1.5</version>

      </dependency>

      <dependency>

        <groupId>org.mybatis.spring.boot</groupId>

        <artifactId>mybatis-spring-boot-starter</artifactId>

        <version>1.3.1</version>

      </dependency>

      <dependency>

        <groupId>ch.qos.logback</groupId>

        <artifactId>logback-core</artifactId>

        <version>1.2.3</version>

      </dependency>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-jetty</artifactId>

        <version>1.5.8.RELEASE</version>

      </dependency>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

        <version>1.5.8.RELEASE</version>

      </dependency>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-test</artifactId>

        <version>1.5.8.RELEASE</version>

        <scope>test</scope>

      </dependency>

      <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>springloaded</artifactId>

        <version>1.2.8.RELEASE</version>

      </dependency>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-devtools</artifactId>

        <version>1.5.8.RELEASE</version>

      </dependency>

    </dependencies>

</project>

SpringBoot如何整合MyBatis?

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: 8001

mybatis:

  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径

  type-aliases-package: com.gwolf.vo       # 定义所有操作类的别名所在包

  mapper-locations:                                     # 所有的mapper映射文件

  - classpath:mybatis/mapper/**/*.xml

spring:

  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-dept

security:

  user:

    name: gwolf       #用户名

    password: gwolf   #密码

    role:             #授权角色

    - USER

SpringBoot如何整合MyBatis?

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;

    }

}

SpringBoot如何整合MyBatis?

6、创建mybatis配置文件:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration   

    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"   

    "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration> <!-- 进行Mybatis的相应的环境的属性定义 -->

<settings> <!-- 在本项目之中开启二级缓存 -->

<setting name="cacheEnabled" value="true"/>

</settings>

</configuration>

7、创建dept.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.gwolf.microcloud.dao.IDeptDAO">

<select id="findById" resultType="Dept" parameterType="long">

SELECT deptno,dname,loc FROM dept WHERE deptno=#{deptno} ;

</select>

<select id="findAll" resultType="Dept">

SELECT deptno,dname,loc FROM dept ;

</select>

<insert id="doCreate" parameterType="Dept">

INSERT INTO dept(dname,loc) VALUES (#{dname},database()) ;

</insert>

</mapper>  

SpringBoot如何整合MyBatis?

8、创建service类DeptServiceImpl

package 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;

@Service

public 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<Dept> list() {

        return this.deptDAO.findAll();

    }

}

SpringBoot如何整合MyBatis?

9、创建DAO类:

package com.gwolf.microcloud.dao;

import com.gwolf.vo.Dept;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper

public interface IDeptDAO {

    public  boolean doCreate(Dept vo);

    public Dept findById(Long id);

    public List<Dept> findAll();

}

SpringBoot如何整合MyBatis?

10、创建项目启动类,注意项目启动类必须在所有类的父目录上面

package com.gwolf.microcloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class Dept_8001_StartSpringCloudApplication {

    public static void  main(String[] args) {

        SpringApplication.run(Dept_8001_StartSpringCloudApplication.class,args);

    }

}

SpringBoot如何整合MyBatis?

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)

@WebAppConfiguration

public 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());

    }

}

SpringBoot如何整合MyBatis?

12、整合完毕,执行测试类的list方法,查看结果:

[Dept{deptno=1, dname='测试部1505889216746', loc='mldn_1'}, Dept{deptno=2, dname='测试部1505894821612', loc='mldn_1'}, Dept{deptno=3, dname='测试部1505894836783', 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='测试部1505983431789', loc='mldn_1'}, Dept{deptno=8, dname='测试部1505985088490', loc='mldn_1'}, Dept{deptno=9, dname='测试部1505992277824', loc='mldn_1'}, Dept{deptno=10, dname='测试部1506004929819', loc='mldn_1'}, Dept{deptno=11, dname='测试部1506051647955', loc='mldn_1'}, Dept{deptno=12, dname='测试部-1510581883778', loc='mldn_1'}, Dept{deptno=13, dname='web测试', loc='mldn_1'}, Dept{deptno=14, dname='web测试365', loc='mldn_1'}],

成功打印,整合成功。

SpringBoot如何整合MyBatis?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢