> 文档中心 > SpringBoot整合Mybatis

SpringBoot整合Mybatis


3. SpringBoot整合mybatis

3.1 SpringBoot整合mybatis思路分析

回顾spring框架如何整合mybatis

在这里插入图片描述

springboot如何整合mybatis

在这里插入图片描述

3.2 SpringBoot整合mybatis编码

下面会用到的包结构

在这里插入图片描述

  1. 引入依赖

在pom.xml中引入下面依赖

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-test</artifactId>    <scope>test</scope></dependency><dependency>  <groupId>com.alibaba</groupId>  <artifactId>druid</artifactId>  <version>1.2.4</version></dependency><dependency>  <groupId>mysql</groupId>  <artifactId>mysql-connector-java</artifactId>  <version>5.1.38</version></dependency><dependency>  <groupId>org.mybatis.spring.boot</groupId>  <artifactId>mybatis-spring-boot-starter</artifactId>  <version>2.1.4</version></dependency>

另外,有可能在引入依赖时特别慢,我们需要在pom.xml中加入下面几段话使用阿里云镜像

<repositories>    <repository> <id>aliyun-repos</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <snapshots>     <enabled>false</enabled> </snapshots>    </repository></repositories><pluginRepositories>    <pluginRepository> <id>aliyun-plugin</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <snapshots>     <enabled>false</enabled> </snapshots>    </pluginRepository></pluginRepositories>
  1. 书写配置
# 整合mybatis相关配置spring:  datasource:    type: com.alibaba.druid.pool.DruidDataSource  # 指定数据源类型,使用阿里巴巴的数据源    driver-class-name: com.mysql.jdbc.Driver      # 指定数据库驱动    url: jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF-8  # 指定url    username: root      # 指定用户名    password: root      # 指定密码mybatis:  mapper-locations: classpath:com/baizhi/mapper/*.xml # 指定mapper配置文件的位置  type-aliases-package: com.baizhi.eneity    # 为实体类起别名 默认 类名或类名首字母小写

入口类上加一个注解@MapperScan扫描dao接口所在的包

@SpringBootApplication@MapperScan("com.baizhi.dao")     // 修饰范围: 用在类上 作用:用来扫描dao接口所在的包  同时将所有dao接口在工厂中创建对象public class SpringbootDay3Application {    public static void main(String[] args) { SpringApplication.run(SpringbootDay3Application.class, args);    }}

在这里插入图片描述

在这里插入图片描述

  1. 测试

需要用到的包结构

在这里插入图片描述

  • 建表

在这里插入图片描述

  • 开发实体类
public class User {    private Integer id;    private String name;    private Date birthday;    private Double salary;// 提供有参、无参、get、set、toString方法    //为了避免影响阅读体验,这里没有粘,但是是有的}
  • 开发DAO接口
public interface UserDAO {    // 查询所有    List<User> findAll();    // 保存用户信息    void save(User user);}
  • 开发mapper配置文件
<mapper namespace="com.baizhi.dao.UserDAO">        <select id="findAll" resultType="com.baizhi.eneity.User"> select  id, name, birthday, salary from user    </select>        <insert id="save" parameterType="com.baizhi.eneity.User" useGeneratedKeys="true" keyProperty="id"> insert into user values (#{id}, #{name}, #{birthday}, #{salary})    </insert></mapper>
  • 开发service
public interface UserService {    // 查询所有    public List<User> findAll();    // 保存用户信息    public void save(User user);}
@Service@Transactionalpublic class UserServiceImpl implements UserService{    private UserDAO userDAO;    @Autowired    public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO;    }    @Override    public List<User> findAll() { return userDAO.findAll();    }    @Override    public void save(User user) { userDAO.save(user);    }}
  • Controller
@RestControllerpublic class UserController {    private UserService userService;    @Autowired    public void setUserService(UserService userService) { this.userService = userService;    }    // 保存的方法    @RequestMapping("save")    public void save(User user){ userService.save(user);    }    // 查询所有    @RequestMapping("findAll")    public List<User> findAll(){ return userService.findAll();    }}

开启SpringBoot应用测试一下:

在这里插入图片描述

在这里插入图片描述