整合MyBatis
1、新增项目时要选择,MyBatis Framework,MySQL Driver
2、application.yml文件设置数据源参数
#2、配置相关信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3307/jakedeal?serverTimezone=UTC
username: root
password: XXXXX
main:
# 关闭logo图像
banner-mode: off
- MySQL8.x驱动强制要设置时区
- 修改url,,添加serverTimezone设定
- 驱动类过时,提醒更换为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;
@Override
public String toString() {
return "User{" +
"id=" + id +
", user_id='" + user_id + '\'' +
", user_name='" + user_name + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
}
```java
package com.tj.dao;
import com.tj.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface UserDao {
@Select("select * from users where id=#{id}")
public User getById(Integer id);
}
4、测试类中注入dao接口,测试功能
package com.tj;
import com.tj.dao.UserDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class MybatisApplicationTests {
@Autowired
private UserDao userDao;
@Test
void contextLoads() {
System.out.println(userDao.getById(10049));
}
}
问题报错解决
解决方法:Could not autowire.No beans of ‘XXXX‘type found的解决方法(详细解析其用法注解)
整合MyBatis-Plus
https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter/3.5.1
<!--mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
配置数据库
常见问题
Mybatis 查询出来的数据数量正确,但是带下划线的字段数据为null
参考:Mybatis 查询出来的数据数量正确,但是具体数据为null
解决方法一:配置文件(我喜欢这种,可以让数据库和JAVA里的名字统一,便于理解)
mybatis-plus:
configuration:
map-underscore-to-camel-case: false
解决方法二:下划线“_”改成驼峰写法
参考:https://blog.csdn.net/weixin_41758407/article/details/90722718
java中使用驼峰命名
数据库表列:user_name
实体类属性:userName
@TableName(“user”)可以绑定表
package com.tj.dao;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tj.domain.Users;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
@TableName("user")
public interface UserDao extends BaseMapper<Users> {
// @Select("select * from users where id=#{id}")
// public Users getById(Integer id);
}