整合MyBatis

HeJin大约 1 分钟Spring全家桶SpringBoot精讲细讲

引入依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

配置文件

application.yaml

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
mybatis:
  mapper-locations: mapper/*Mapper.xml
  type-aliases-package: com.hejin.pojo    
  configuration:
    map-underscore-to-camel-case: true

数据库创建表

t_user

CREATE TABLE t_user  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NULL DEFAULT NULL,
  `password` varchar(255) NULL DEFAULT NULL,
  `salt` varchar(10) NULL DEFAULT NULL,
  `birth` datetime(0) NULL DEFAULT NULL,
  `create_time` datetime(0) NULL DEFAULT NULL,
  `update_time` datetime(0) NULL DEFAULT NULL,
  `dept_id` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
)

t_dept

CREATE TABLE t_dept  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `deptName` varchar(255)  NULL DEFAULT NULL,
  `createTime` datetime(0) NULL DEFAULT NULL,
  `updateTime` datetime(0) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
)

实体类

User

@Data
@AllArgsConstructor
@NoArgsConstructor
@Repository
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    private String username;

    private String password;

    private String salt;

    private Date birth;

    private int deptId;

    private Date createTime;

    private Date updateTime;

}

Dept

@Data
@AllArgsConstructor
@NoArgsConstructor
@Repository
public class Dept implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    private String deptName;

    private Date createTime;

    private Date updateTime;

}

mapper接口

UserMapper

@Mapper
public interface UserMapper {

    /**
     * 根据ID查找用户
     * @param id 用户id
     * @return 用户对象
     */
    User findUserById(Integer id);

}

mapper文件编写

UserMapper.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.hejin.dao.UserMapper">

    <select id="findUserById" resultType="user">
        select * from t_user where id = #{id}
    </select>

</mapper>

service层

UserService

public interface UserService {

    /**
     * 根据ID查找用户
     * @param id 用户id
     * @return 用户对象
     */
    User findUserById(Integer id);

}

UserServiceImpl

@Service
public class UserServiceImpl implements UserService{

    @Autowired
    private UserMapper userMapper;

    @Override
    public User findUserById(Integer id) {
        return userMapper.findUserById(id);
    }

}

controller层

UserController

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/user/{id}")
    public User findUserById(@PathVariable("id") int id){
        return userService.findUserById(id);
    }

}