- Mybatis+Mybatis-Plus
- Spring+Mybatis+Mybatis-Plus
- Spring Boot+Mybatis+Mybatis-Plus
- Mybatis-Plus通用CRUD
- Mybatis-Plus配置
- Mybatis-Plus條件構造器
- Mybatis-Plus ActiveRecord模式CRUD
- Mybatis-Plus Oracle 主鍵Sequence
- Mybatis-Plus插件
- Mybatis-Plus Sql 注入器
- Mybatis-Plus自動填充功能
- Mybatis-Plus邏輯删除
解決了繁瑣的配置,讓 mybatis 優雅的使用枚舉屬性!
修改表結構
定義枚舉
public enum SexEnum implements IEnum<Integer> {
MAN(1, "男"), WOMAN(2, "女");
private int value;
private String desc;
SexEnum(int value, String desc) {
this.value = value;
this.desc = desc;
}
@Override
public Integer getValue() {
return this.value;
}
@Override
public String toString() {
return this.desc;
}
}
配置
# 枚舉包掃描
mybatis-plus.type-enums-package=cn.com.javakf.enums
修改實體
測試
插入SQL@Test public void testInsert() { User user = new User(); user.setUserName("diaochan"); user.setPassword("123456"); user.setAge(20); user.setName("貂蟬"); user.setMail("[email protected]"); user.setVersion(1); user.setSex(SexEnum.WOMAN); // 使用的是枚舉 // 調用AR的insert方法進行插入資料 boolean insert = user.insert(); System.out.println("result => " + insert); }
[main] [cn.com.javakf.mapper.UserMapper.insert]-[DEBUG] ==> Preparing: INSERT INTO tb_user ( user_name, password, name, age, email, version, sex ) VALUES ( ?, ?, ?, ?, ?, ?, ? ) [main] [cn.com.javakf.mapper.UserMapper.insert]-[DEBUG] ==> Parameters: diaochan(String), 123456(String), 貂蟬(String), 20(Integer), [email protected].com(String), 1(Integer), 2(Integer) [main] [cn.com.javakf.mapper.UserMapper.insert]-[DEBUG] <== Updates: 1 Time:43 ms - ID:cn.com.javakf.mapper.UserMapper.insert Execute SQL: INSERT INTO tb_user ( user_name, password, name, age, email, version, sex ) VALUES ( 'diaochan', '123456', '貂蟬', 20, '[email protected]', 1, 2 ) [main] [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Closing non transactional SqlSession [[email protected]] result => true
![]()
Mybatis-Plus通用枚舉
查詢SQL@Test public void testSelectById() { User user = new User(); user.setId(11L); User user1 = user.selectById(); System.out.println(user1); }
從測試可以看出,可以很友善的使用枚舉了。[main] [cn.com.javakf.mapper.UserMapper.selectById]-[DEBUG] ==> Preparing: SELECT id,user_name,name,age,email AS mail,version,deleted,sex FROM tb_user WHERE id=? AND deleted=0 [main] [cn.com.javakf.mapper.UserMapper.selectById]-[DEBUG] ==> Parameters: 12(Long) [main] [cn.com.javakf.mapper.UserMapper.selectById]-[DEBUG] <== Total: 1 [main] [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Closing non transactional SqlSession [[email protected]] User(id=12, userName=diaochan, password=null, name=貂蟬, age=20, [email protected].com, address=null, version=1, deleted=0, sex=女)
條件查詢SQL@Test public void testSelectBySex() { User user = new User(); QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("sex", SexEnum.WOMAN); // 查詢性别為女的資料 List<User> users = user.selectList(wrapper); for (User user1 : users) { System.out.println(user1); } }
[main] [cn.com.javakf.mapper.UserMapper.selectList]-[DEBUG] ==> Preparing: SELECT id,user_name,name,age,email AS mail,version,deleted,sex FROM tb_user WHERE deleted=0 AND sex = ? [main] [cn.com.javakf.mapper.UserMapper.selectList]-[DEBUG] ==> Parameters: 2(Integer) [main] [cn.com.javakf.mapper.UserMapper.selectList]-[DEBUG] <== Total: 1 Time:15 ms - ID:cn.com.javakf.mapper.UserMapper.selectList Execute SQL: SELECT id, user_name, name, age, email AS mail, version, deleted, sex FROM tb_user WHERE deleted=0 AND sex = 2 [main] [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Closing non transactional SqlSession [[email protected]] User(id=12, userName=diaochan, password=null, name=貂蟬, age=20, [email protected].com, address=null, version=1, deleted=0, sex=女)