mybatis-plusCRUD
CRUD扩展
Insert
@Test
void insetTest(){
User user = new User();
user.setName("张三");
user.setAge(22);
user.setEmail("test6@baomidou.com");
userMapper.insert(user);
}
输出日志:
==> Preparing: INSERT INTO user ( id, name, age, email ) VALUES ( ?, ?, ?, ? )
==> **Parameters: 1515522523939737601(String)**, 张三(String), 22(Integer), test6@baomidou.com(String)
<== Updates: 1
数据库插入的id的默认值为:全局的唯—id
主键生成策略
分布式系统唯一Id生成:https://www.cnblogs.com/haoxinyue/p/5208136.html
@TableId(type = IdType.AUTO)
/**
* AUTO 自增
* NONE 无
* ASSIGN_ID 全球唯一代替了ID_WORDKER
* ASSIGN_UUID UUID
* INPUT 需要手动输入
**/
private String id;
Update
@Test
void updateTest(){
User user = new User();
user.setId("1515522523939737601");
user.setName("Bob");
userMapper.updateById(user);
}
Select
多个查询
//BatchIds给id赋予多个值
@Test
void selectBatchIds(){
List<User> userList = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
for (User user : userList) {
System.out.println(user);
}
}
map查询
//条件查询
@Test
void selectByMap(){
Map<String, Object> map = new HashMap<>();
map.put("name","Jone");
List<User> userList = userMapper.selectByMap(map);
for (User user : userList) {
System.out.println(user);
}
}
分页查询
分页在网站的使用十分之多!
1、原始的limit分页
2、pageHelper第三方插件
3、MybatisPlus其实也内置了分页插件!
如何使用:
1、配置拦截器组件
//配置类上加注解
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor paginationInnerInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor =new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return mybatisPlusInterceptor;
}
}
2、直接使用page对象即可
@Test
void setUserMapper(){
Page<User> page = new Page<>(2,3);
Page<User> userPage = userMapper.selectPage(page, null);
List<User> records = page.getRecords();
records.forEach(System.out::println);
}
Delete
跟update差不多
@Test
void delete(){
userMapper.deleteById(7);
userMapper.deleteBatchIds(Arrays.asList(7,8));
Map<String, Object> map = new HashMap<>();
map.put("name","John");
userMapper.deleteByMap(map);
}
逻辑删除
物理删除:从数据库中直接删除 (回收站)
逻辑删除:在数据库中没有被删除,而是通过一个变量来使他失效! deleted=0 ==> deleted=1 (假删除)
1、在数据表中增加一个deleted字段
2、实体类中添加对应属性
@TableLogic//逻辑删除注解private Integer deleted;
3、配置!
#逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
4、测试
@Test
void testDeleteById(){
userMapper.deleteById(7);
}
浙公网安备 33010602011771号