SpringBoot集成Mybatis - 极悦
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 SpringBoot集成Mybatis

SpringBoot集成Mybatis

更新时间:2021-06-28 16:16:17 来源:极悦 浏览1291次

springboot基础mybatis还是很简单的,比之前springmvc集成mybatis要少很多配置,只要大家按照步骤一步一步来,几分钟就能实现。具体做法如下:

添加依赖

在pom文件中添加4个依赖

  • mybatis支持:mybatis-spring-boot-starter包含所有的springboot和mybatis依赖
  • druid支持:阿里数据库连接池
  • lombook支持:主要是简化代码用
  • mysql驱动:数据库我们使用mysql,所以加上mysql的驱动
<!-- 添加mybatis依赖 -->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.5</version>
    </dependency>
    <!--添加mysql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
      <scope>runtime</scope>
    </dependency>
    <!--添加数据库连接池 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid-spring-boot-starter</artifactId>
      <version>1.1.16</version>
    </dependency>

    <!--代码简化工具-->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.8</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

相关配置

在application.yml配置数据源和mybatis相关配置配置数据源配置mapper文件路径配置mapper别名

server:
  port: 8089 # 配置端口
  servlet:
      context-path: /moyundong # 配置项目名称
# 配置数据源
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/springbootdata
    username: root
    password: root
# 配置mybatis
mybatis:
  mapper-locations: classpath:com/mapper/*.xml # mybatis的路径,我们放到resources下的com/mapper文件夹下面
  type-aliases-package: com.moyundong.entity # 默认别名就是实体类名,或者类名首字母小写 SysUser | sysUser

创建数据库表

  • 先创建一个springbootdata的数据库,或者叫别的名字,注意与数据用配置的名称一样就可以了。
  • 创建SysUser表
CREATE TABLE `sys_user` (
  `id` varchar(64) NOT NULL COMMENT '主键id',
  `username` varchar(100) DEFAULT NULL COMMENT '登录账号',
  `password` varchar(255) DEFAULT NULL COMMENT '密码',
  `birthday` datetime DEFAULT NULL COMMENT '生日',
  `email` varchar(100) DEFAULT NULL COMMENT '电子邮件',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

 创建实体类

在com.moyundong.entity包下创建SysUser实体类,这个实体类与数据库表sys_user是对应的,sys_user的首字母大写,去掉下划线,并且下划线后面的首字母也要大写,这样sys_user表对应的实体类就是SysUser了。

@Data
public class SysUser {
    private String id;
    private String username;
    private String password;
    private Date birthday;
    private String email;
}

创建dao接口

在com.moyundong.dao目录下创建相关dao,首先我们创建一个BaseDao,里面可以写一些公共基础方法。为了演示,我只写了两个方法,一个保存,一个查询。

public interface BaseDao<T> {
    void save(T t);
    List<T> findAll();
}

再创建我们的SysUserDao,他继承了BaseDao,就不用再写save和findAll方法了,如果还有其它dao,都可以继承BaseDao

public interface SysUserDao extends BaseDao<SysUser> {
}

创建mapper配置文件

在resource/com/mapper目录下创建SysUserMapper.xml文件,主要定义了save和findAll两个方法,内容如下:

<?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.moyundong.dao.SysUserDao">
    <insert id="save" parameterType="sysUser">
        INSERT INTO sys_user VALUES (#{id},#{username},#{password},#{birthday},#{email})
    </insert>

    <select id="findAll" resultType="SysUser">
        SELECT id,username,password,birthday,email from sys_user
    </select>
</mapper>

创建service接口

在com.moyundong.service包下创建SysUserService接口

public interface SysUserService {
    void save(SysUser sysUser);
    List<SysUser> findAll();
}

创建service实现类

在com.moyundong.service包下创建SysUserServiceImpl类,实现了SysUserService接口,并且注入了sysUserDao实例

@Service
@Transactional
public class SysUserServiceImpl implements SysUserService {

    @Autowired
    private SysUserDao sysUserDao;

    @Override
    public void save(SysUser sysUser) {
        sysUser.setId(UUID.randomUUID().toString());
        sysUserDao.save(sysUser);
    }

    @Override
    public List<SysUser> findAll() {
        return sysUserDao.findAll();
    }
}

创建controller

在com.moyundong.controller包下创建SysUserController,里面有两个方法,save和findAll,并且注入了sysUserService实例

@RestController
@RequestMapping("sysUser")
public class SysUserController {

    @Autowired
    private SysUserService sysUserService;

    @RequestMapping("save")
    public String save(SysUser sysUser){
        sysUserService.save(sysUser);
        return "添加成功";
    }
    @RequestMapping("findAll")
    public Object findAll(){
        return sysUserService.findAll();
    }
}

启动类中扫描dao

入口类Test04Application加上 MapperScan("com.moyundong.dao")注解来扫描dao包

@SpringBootApplication
@MapperScan("com.moyundong.dao")
public class Test04Application extends SpringBootServletInitializer {
    public static void main(String[] args) throws UnknownHostException {
        SpringApplication.run(Test04Application.class, args);
    }
}

测试

启动Test04Application运行项目。

  • 在浏览器输入http://localhost:8089/moyundong/sysUser/save?username=water2&password=111&birthday=2019/01/09&email=abc cc.com来新增数据
  • 在浏览器输入http://localhost:8089/moyundong/sysUser/findAll来查询数据

注意

  • 为了演示方便,两个方法都用了get请求方式,实际应用中,save应该是post请求方式。
  • 本节只讲了最基本的知识,实际工作中的场景比较复杂,但是最基础的就是这些。

本节项目目录结构如下:

springboot集成mybatis

以上就是极悦小编介绍的"springboot整合mybatis",希望对大家有帮助,想了解更多可查看SpringBoot学习视频,如有疑问,请在线咨询,有专业老师随时为您服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>