mybatis-plus代码模板 拿来直接用就可以
·
1.依赖
pom.xml
mybatis-plus版本和springboot版本没啥大关系,几乎随便搞
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
2.配置
application.yml
spring:
datasource:
url: jdbc:mysql://10.0.0.0:3306/mgj?useSSL=false&characterEncoding=UTF8
username: root
password: 111111
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
initial-size: 15
min-idle: 15
max-active: 50
# 配置获取连接等待超时的时间
max-wait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
#mybatis plus 设置
mybatis-plus:
# ** 代表多级 *代表一级
mapper-locations: classpath*:com/modules/**/xml/*Mapper.xml
global-config:
# 关闭MP3.0自带的banner
banner: false
db-config:
#主键类型 0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)";
id-type: 4
# 默认数据库表下划线命名
table-underline: true
configuration:
#这个配置会将执行的sql打印出来,在开发或测试的时候可以用,正式环境需要注释,可以在log日志里打印出来
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3.分页config
@Configuration
@MapperScan({com.digua.mapper})
public class MyBatisPlusConfig {
/* 旧版本配置
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}*/
/**
* 3.4版本需要改成这种分页
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
4.代码生成
mybatis-plus Generator 一键快速生成代码
5.各层介绍
数据库表结构
CREATE TABLE `users` (
`name` varchar(10) NOT NULL COMMENT '名字',
`age` varchar(2) DEFAULT NULL COMMENT '年龄'
PRIMARY KEY (`name`)
)
5.1 entity 基本类
//请注意我使用了lombok
@Data
@TableName("users")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value="users对象")
public class Users extends BaseEntity{
@TableId(type = IdType.UUID)
private String name;
//这里是ageaaa 我们数据库是age 我们可以使用这个注解进行持久化时替换
@TableField(value = "age")
private Integer ageaaa;
//比如我们数据库没有这个字段 可以我们需要在一些业务类里用到 那我们可以使用这个取消持久化
@TableField(exist = false)
private Son[] SonList;
}
5.1.1 实体类注解
@TableName
value 表名
-------------------------------------------------
@TableId
value 字段名
IdType 主键生成类型
AUTO(0), 自增
NONE(1), 未设置主键
INPUT(2), 用户自定义
ASSIGN_ID(3), 雪花算法id
ASSIGN_UUID(4) 雪花算法uuid
-------------------------------------------------
@TableField
value 字段名
jdbcType 与数据库对应的类型
insertStrategy 新增过滤
updateStrategy 修改过滤
IGNORED, 所有的都更新
NOT_NULL, 不为null时更新
NOT_EMPTY, 不为null、不为空时更新
DEFAULT, 默认NOT_EMPTY
NEVER; 从不更新
-------------------------------------------------
@TableLogic 逻辑删除,添加上后,delete 变成 update
5.2 mapper
public interface UsersMapper extends BaseMapper<User> {
List<Users> pageList(@Param("page") Page<Users> page,@Param("users") Users users);
}
5.2 .1 mapper.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/modules/mapper/UsersMapper">
<select id = "pageList" resultType = "com.modules.entity.Users">
select *from users where age = #{users.age}
</select>
</mapper>
5.3 service
public interface UserService extends IService<User> {}
5.3.1 serviceImpl
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
//返回集合信息
public void searchList(){
List<Users> userList = this.list(new QueryWrapper<Users>().eq("age","12"));
}
//返回一条信息
public void searchOne(){
Users users= this.getById("id");
}
//返回分页信息
public void searchPage(){
int page = 1;
int size = 10;
Page<User> page = new Page<>(page,size);
QueryWrapper<Users> queryWapper = new QueryWrapper<Users>();
Page<Users> usersPage = this.page(page,queryWapper);
}
//返回自定义分页查询
public void searchPageList(){
int page = 1;
int size = 10;
Page<User> page = new Page<>(page,size);
Users users = new Users();
users.setAge(12);
//从mapper里边定义
Page<Users> usersPage = this.baseMapper.pageList(page,users);
}
//修改数据
public void updateOne(){
boolean type = this.update(new UpdateWrapper<Users>().set("age","22").eq("name","id"));
boolean type2 = this.updateById(new User("id",22));
}
//修改或添加多条
public void updateBatch(){
List<Users> userList = new ArrayList<>();
boolean type = this.saveOrUpdateBatch(userList);
}
//删除信息
public void deleteOne(){
this.removeById("id");
this.remove(new QueryWrapper<Users>().eq("age",12));
this.removeByIds(Arrays.asList("id1","id2"));
}
//返回一条信息
public void save(){
this.save(new User("id",22));
List<Users> userList = new ArrayList<>();
this.saveBatch(userList);
}
//.................余下省略........................
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)