MybatisPlus的使用
MybatisPlus项目使用
- 前言
- 实例
前言
Mybatis-Plus是一个Mybatis的增强工具,它在Mybatis的基础上做了增强,却不做改变。我们在使用Mybatis-Plus之后既可以使用Mybatis-Plus的特有功能,又能够正常使用Mybatis的原生功能。我们在项目使用mybatisplus能够减少比较大的工作量。
实例
一、引入maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 加载jdbc连接数据库 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 加载mybatis jar包 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>compile</scope>
</dependency>
二、加入yml配置
server:
port: 8082
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/test_mybatis?serverTimezone=Asia/Shanghai
username: root
password: 123456
hikari:
read-only: false
#客户端等待连接池连接的最大毫秒数
connection-timeout: 60000
#允许连接在连接池中空闲的最长时间(以毫秒为单位)
idle-timeout: 60000
#连接将被测试活动的最大时间量
validation-timeout: 3000
#池中连接关闭后的最长生命周期
max-lifetime: 60000
#最大池大小
maximum-pool-size: 60
#连接池中维护的最小空闲连接数
minimum-idle: 10
#从池返回的连接的默认自动提交行为。默认值为true
auto-commit: true
#如果您的驱动程序支持JDBC4,我们强烈建议您不要设置此属性
connection-test-query: SELECT 1
#自定义连接池名称
pool-name: myHikarCp
三、创建数据表
CREATE TABLE `t_user` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '姓名',
`age` int NOT NULL DEFAULT '0' COMMENT '年龄',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户表';
四、创建对应xml和对象
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DT 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yin.demo.dao.TestMapper" >
<resultMap id="BaseResultMap" type="com.yin.demo.bean.entity.User" >
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="age" column="age" jdbcType="SMALLINT"/>
</resultMap>
</mapper>
@Data
@TableName("t_user")
public class User {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
}
五、创建mapper文件
@Mapper
public interface TestMapper extends BaseMapper<User> {
}
六、service的创建
public interface BaseService<T> extends IService<T> {
/**
* 分页查询
*
* @param entity 实体对象
* @param pageNo 页码
* @param pageSize 每页显示条数,默认20
* @return com.baomidou.mybatisplus.core.metadata.IPage<T> 分页对象
*/
IPage<T> page(T entity, Integer pageNo, Integer pageSize);
/**
* 分页查询
*
* @param entity 实体对象
* @param pageSize 起始页,默认每页显示条数20
* @return com.baomidou.mybatisplus.core.metadata.IPage<T> 分页对象
*/
default IPage<T> page(T entity, Integer pageSize) {
return this.page(entity, 1, pageSize);
}
}
public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M, T> implements BaseService<T> {
@Override
public IPage<T> page(T entity, Integer pageNo, Integer pageSize) {
return this.page(new Page<>(pageNo, pageSize), new QueryWrapper<>(entity));
}
}
public interface TestService extends BaseService<User>{
}
@Service
public class TestServiceImpl extends BaseServiceImpl<TestMapper, User> implements TestService {
}
七、controller的创建
@RestController
@RequestMapping("/mybatis")
public class TestController {
@Resource
private TestService testService;
@GetMapping()
public List<User> getData(){
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
return testService.list(queryWrapper);
}
@PostMapping()
public Boolean saveData(@RequestBody User user){
return testService.save(user);
}
}
测试类:
还没有评论,来说两句吧...