整合MyBatisPlus
MyBatisPlus是MyBatis的扩展,本身是包括MyBatis的,也是可以使用MyBatis本身的功能的,只是在这个基础上增添了一些功能
在pom.xml引入依赖
xml
<!--整合MyBatisPlus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<!--需要手动声明版本-->
<version>3.4.3</version>
</dependency>创建接口继承BaseMapper,指定泛型为映射类
java
package com.atguigu.boot.Dao;
import com.atguigu.boot.pojo.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserDaoOne extends BaseMapper<User> {
}一般来说,bean的名字是和表名呈现"驼峰"和"_"的映射关系的,因为MP不需要写sql语句,所以当名字不一致时,需要手动去设置,全局配置可以在application.yaml中配置
yaml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC
username: root
password: yuxingxuan
mybatis-plus:
global-config:
db-config:
# 设置数据库表的前缀,与bean映射时会去除此前缀
table-prefix: tb_
# 使用数据库的自增id(全局指定)
id-type: auto
# 开启MP日志功能,打印信息到控制台
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl也可以单独在bean中设置与表的映射表名,单独设置优先于全局配置
java
package com.atguigu.boot.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
@AllArgsConstructor
@Data
@TableName("tb_users") //设置映射的表名
public class User {
@TableId(type = IdType.AUTO) //为主键且是自增的,在进行添加时不会使用默认的雪花算法(单独指定)
private Integer id;
@TableField("name") //设置属性和字段的映射关系
private String name;
private String password;
}测试
java
@Resource
private UserDaoOne userDaoOne;
@Test
public void testUserDaoOne(){
System.out.println(userDaoOne.selectById(4)); //返回id为4的查询信息
System.out.println(userDaoOne.insert(new User(null,"y","123"))); //添加成功后返回受影响的行数
}