Spring Boot 整合 Mybatis

Spring Boot 整合mybatis实现对 MySQL 数据库的增删改查操作

创建一个新工程,添加如下依赖:

org.springframework.boot

spring-boot-starter-web

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.2

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-starter-test

test

数据库表:

createtableuser(

idint(8) PRIMARYKEYAUTO_INCREMENT,

ageint(3)NOTNULL,

usercodechar(10)NOTNULL,

passwordchar(10)NOTNULL

);

根据你创建的实体类和数据库的表字段编写对应的mapper.xml文件,如下:

id, age, password, usercode

select

from user

where id = #

delete from user

where id = #

SELECT LAST_INSERT_ID()

insert into user (age, password, usercode

)

values (#, #, #

)

update user

set age = #,

password = #,

usercode = #

where id = #

启动类里添加扫描与 mapper 文件相映射的接口类包配置的注解,

//mapper 接口类扫描包配置

@MapperScan("com.spring.springboot.dao")

application.properties 文件里对MySQL数据库连接和 Mybatis 进行配置,如下:

## 数据源配置

spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

## Mybatis 配置

## 实体包路径

mybatis.typeAliasesPackage=org.spring.springboot.entity

## 自动扫描 mapper 文件夹下的所有 xml文件

mybatis.mapperLocations=classpath:mapper/*.xml

在 dao 层编写与 xml 文件相对应的接口, 如下:

@Repository

publicinterfaceUserMapper{

intinsert(User record);

UserselectByPrimaryKey(Integer id);

intupdateByPrimaryKey(User record);

intupdateByPrimaryKeySelective(User record);

}

在 service 层编写接口,UserService.java 代码和 dao层接口一致,然后创建一个 service 接口实现类 UserServiceImpl.java,实现重写接口的方法,如下:

@Autowired

UserMapper userMapper;

@Override

publicintinsert(User record){

returnuserMapper.insert(record);

}

@Override

publicintdeleteByPrimaryKey(Integer id){

returnuserMapper.deleteByPrimaryKey(id);

}

@Override

publicUserselectByPrimaryKey(Integer id){

returnuserMapper.selectByPrimaryKey(id);

}

@Override

publicintupdateByPrimaryKey(User record){

returnuserMapper.updateByPrimaryKey(record);

}

控制层代码:

@RestController

publicclassUserControler{

@Autowired

UserService userService;

@PostMapping("/save")

publicint insert(@RequestBodyUser user) {

returnuserService.insert(user);

}

@GetMapping("/findById/")

publicUser findById(@PathVariableint id) {

returnuserService.selectByPrimaryKey(id);

}

@PostMapping("/update")

publicint update(@RequestBodyUser user) {

returnuserService.updateByPrimaryKey(user);

}

@GetMapping("/deleteById/")

publicint delete(@PathVariableint id) {

returnuserService.deleteByPrimaryKey(id);

}

}

运行项目,打开 postman 插件进行测试

插入数据:

查找数据:

修改数据:

删除数据:

每次都要写 Mybatis 的 xml 文件感觉很烦,这里我用的是网上找的插件 自动生成 Mybatis配置文件。需要插件的可以网上下载或者私我给你发。

运行文件填写相关的配置,文件路径,就能自动给你生成实体类,xml文件,还有 xml 文件对应的 mapper 类。

学习的过程中出现的错误:

Consider defining a bean oftype'com.spring.springboot.dao.UserMapper'inyour configuration.

我忘了在启动类里添加注解 @MapperScan("com.spring.springboot.dao") 所以他扫描不到 这个 bean。类似这样的报错都是没有对声明 bean 。相关的注解 @Service,@Repository,@Component,@Controller

小白的成长记录

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180615G16S9H00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券