整合MyBatis

1、新增项目时要选择,MyBatis Framework,MySQL Driver

image.png

2、application.yml文件设置数据源参数

  1. #2、配置相关信息
  2. spring:
  3. datasource:
  4. driver-class-name: com.mysql.cj.jdbc.Driver
  5. url: jdbc:mysql://localhost:3307/jakedeal?serverTimezone=UTC
  6. username: root
  7. password: XXXXX
  8. main:
  9. # 关闭logo图像
  10. banner-mode: off
  1. MySQL8.x驱动强制要设置时区
  2. 修改url,,添加serverTimezone设定
  3. 驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver

    3、定义数据层接口与映射配置

    ```java package com.tj.domain;

public class User { private Integer id; private String user_id; private String user_name;

  1. @Override
  2. public String toString() {
  3. return "User{" +
  4. "id=" + id +
  5. ", user_id='" + user_id + '\'' +
  6. ", user_name='" + user_name + '\'' +
  7. '}';
  8. }
  9. public Integer getId() {
  10. return id;
  11. }
  12. public void setId(Integer id) {
  13. this.id = id;
  14. }
  15. public String getUser_id() {
  16. return user_id;
  17. }
  18. public void setUser_id(String user_id) {
  19. this.user_id = user_id;
  20. }
  21. public String getUser_name() {
  22. return user_name;
  23. }
  24. public void setUser_name(String user_name) {
  25. this.user_name = user_name;
  26. }

}

  1. ```java
  2. package com.tj.dao;
  3. import com.tj.domain.User;
  4. import org.apache.ibatis.annotations.Mapper;
  5. import org.apache.ibatis.annotations.Select;
  6. import org.springframework.stereotype.Repository;
  7. @Mapper
  8. @Repository
  9. public interface UserDao {
  10. @Select("select * from users where id=#{id}")
  11. public User getById(Integer id);
  12. }

4、测试类中注入dao接口,测试功能

  1. package com.tj;
  2. import com.tj.dao.UserDao;
  3. import org.junit.jupiter.api.Test;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.boot.test.context.SpringBootTest;
  6. @SpringBootTest
  7. class MybatisApplicationTests {
  8. @Autowired
  9. private UserDao userDao;
  10. @Test
  11. void contextLoads() {
  12. System.out.println(userDao.getById(10049));
  13. }
  14. }

问题报错解决

image.png
解决方法:Could not autowire.No beans of ‘XXXX‘type found的解决方法(详细解析其用法注解)

整合MyBatis-Plus

https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter/3.5.1

  1. <!--mybatis-plus依赖-->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>mybatis-plus-boot-starter</artifactId>
  5. <version>3.5.1</version>
  6. </dependency>

配置数据库

常见问题

Mybatis 查询出来的数据数量正确,但是带下划线的字段数据为null

参考:Mybatis 查询出来的数据数量正确,但是具体数据为null
解决方法一:配置文件(我喜欢这种,可以让数据库和JAVA里的名字统一,便于理解)

  1. mybatis-plus:
  2. configuration:
  3. map-underscore-to-camel-case: false

解决方法二:下划线“_”改成驼峰写法
参考:https://blog.csdn.net/weixin_41758407/article/details/90722718
java中使用驼峰命名
数据库表列:user_name
实体类属性:userName

@TableName(“user”)可以绑定表

  1. package com.tj.dao;
  2. import com.baomidou.mybatisplus.annotation.TableName;
  3. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4. import com.tj.domain.Users;
  5. import org.apache.ibatis.annotations.Mapper;
  6. import org.springframework.stereotype.Repository;
  7. @Mapper
  8. @Repository
  9. @TableName("user")
  10. public interface UserDao extends BaseMapper<Users> {
  11. // @Select("select * from users where id=#{id}")
  12. // public Users getById(Integer id);
  13. }