2.Spring|2.Spring Boot整合Mybatis进行CRUD

  1. 创建一个新的模块
    注意模块选择,并选择jdk版本至少为8

    2.Spring|2.Spring Boot整合Mybatis进行CRUD
    文章图片
    模块选择.png
2.Spring|2.Spring Boot整合Mybatis进行CRUD
文章图片
填元数据.png 此处可以添加自身所需依赖

2.Spring|2.Spring Boot整合Mybatis进行CRUD
文章图片
添加依赖.png 2.Spring|2.Spring Boot整合Mybatis进行CRUD
文章图片
完成构建.png
  1. 准备工作
    添加所需依赖
org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test mysql mysql-connector-java 5.1.39 org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1 org.projectlombok lombok 1.18.6 true

在application.properties中添加配置,其中中username和password为自身数据库的用户名和密码(以my sql为例)
## 数据源配置 spring.datasource.url=jdbc:mysql://localhost:3306/db_spring?useUnicode=true&characterEncoding=utf8&useSSL=false spring.datasource.username=** spring.datasource.password=** spring.datasource.driver-class-name=com.mysql.jdbc.Driver#指定实体类映射的包 mybatis.type-aliases-package=com.springboot.mybatis.entity

构建包结构

2.Spring|2.Spring Boot整合Mybatis进行CRUD
文章图片
包的结构.png
  1. 进行编码
  • 编写entity实体类,其中属性对应数据库中表的数据
@Data public class User { private Long userId; private String mobile; private String password; private String username; private String avatar; }

  • 在Mapper中编写需要使用到的sql语句,在结果集中column为数据库属性名,property为idea中属性名,还有就是sql语句在最后空一格为了方便拼接
public interface UserMapper { @Results({@Result(column = "user_id",property = "userId"), @Result(column = "mobile",property = "mobile"), @Result(column = "password",property = "password"), @Result(column = "username",property = "username"), @Result(column = "avatar",property = "avatar") }) @Select("SELECT * FROM t_sys_user ") List selectAll(); @Results({@Result(column = "user_id",property = "userId"), @Result(column = "mobile",property = "mobile"), @Result(column = "password",property = "password"), @Result(column = "username",property = "username"), @Result(column = "avatar",property = "avatar") }) @Select("SELECT * FROM t_sys_user WHERE user_id = #{userId} ") User getOne(Long userId); @Delete("DELETE FROM t_sys_user WHERE user_id =#{userId} ") void delete(Long userId); @Insert("INSERT INTO t_sys_user(mobile,password,username,avatar)"+ "VALUES(#{mobile},#{password},#{username},#{avatar}) ") void insert(User user); @Update("UPDATE t_sys_user SET password=#{password},avatar=#{avatar} WHERE user_id=#{userId} ") void updata(User user); }

  • service中写个实现mapper中方法的接口
public interface UserService { List selectAll(); User getOne(long userId); void delete(long userId); Userinsert(User user); void updata(User user); }

  • 在serviceimpl中实现service中接口的方法
@Service public class UserServiceImpl implements UserService { @Resource private UserMapper userMapper; @Override public List selectAll() { return userMapper.selectAll(); }@Override public User getOne(long userId) { return userMapper.getOne(userId); }@Override public void delete(long userId) { userMapper.delete(userId); }@Override public User insert(User user) { userMapper.insert(user); return user; }@Override public void updata(User user) { userMapper.updata(user); } }

  • 对serviceImpl中的方法进行测试,以便排查错误
  • 在controller中写入RESTful请求
@RestController @RequestMapping(value = "https://www.it610.com/api") public class UserController { @Resource private UserService userService; @RequestMapping(value = "https://www.it610.com/users",method = RequestMethod.GET) public List selectAll(){ return userService.selectAll(); }@RequestMapping(value = "https://www.it610.com/user/{id}",method = RequestMethod.GET) public User getOne(@PathVariable("id") long id){ return userService.getOne(id); }@RequestMapping(value = "https://www.it610.com/user/{id}",method = RequestMethod.DELETE) public void deleteUser(@PathVariable("id") long id){ userService.delete(id); }@RequestMapping(value = "https://www.it610.com/user",method = RequestMethod.POST) public User addUser(@RequestBody User user){ return userService.insert(user); }@RequestMapping(value = "https://www.it610.com/user",method = RequestMethod.PUT) public void update(@RequestBody User user){ userService.updata(user); }}

  • 打开启动类,记得加上注释,不然可能找不到mapper,最后运行
@SpringBootApplication @MapperScan("com.springboot.mybatis.mapper") public class SpringBootMybatisApplication {public static void main(String[] args) { SpringApplication.run(SpringBootMybatisApplication.class, args); }}

  • 出现以下结果说明运行成功

    2.Spring|2.Spring Boot整合Mybatis进行CRUD
    文章图片
    启动.png
  1. 使用postman验证
    其中有几点要注意
  • 要注意动作如get,put,delete,post等的区别
  • 结果为200即为成功
  • 【2.Spring|2.Spring Boot整合Mybatis进行CRUD】使用put和post时要注意一下几处

    2.Spring|2.Spring Boot整合Mybatis进行CRUD
    文章图片
    post.png

    推荐阅读