当你修改了数据库中的 表名字时候 通过TableName进行配制,告诉你这个实体类和新的表产生了新的表明。
数据库的一些特点优化。
雪花算法 解决Id冲突问题。 这样可以启动雪花算法。
雪花算法一定要配合 这个进行使用,这样告诉它这是id 或者直接加一个映射,将id映射到数据库中的uid上去。 这是主键自增策略,记得需要数据库去配合, 数据库里设置好自增这个策略。
可以在配制文件中设置好 这个是全局自增策略,让全局所有id都是自增状态。
设置新增时间和建立时间
可以修正好数据库和实类中数据名不一样的问题。 这样就可以随着更新而更新了,比较稳定一些。
顺手把currentTIMESTAMP也给勾选上。 这样实际上它是根据维护表时候就会进行更新。
刚才说的是从数据库角度怎么增加 我们从服务层角度做这些也是可以的
第一步是加注解 第二部是创建Handler类 通过实现接口的方式,你来告诉他们,怎么进行自动更新。 实现处理好这两个接口就可以了
这就是在业务层进行处理的一个方法。 自动对某个数值进行填充。 1.首先要加上那个注解 2.我们再handler接口中进行处理 3.我们重写接口中方法,设置填充什么 4,为了进行优化,我们会对所有类进行判断 5.判断这个实体里面是不是真的有这个属性,有这个属性再进行填充。
判断一下我们动的那个属性有没有被赋值 如果没有,我们再进行填充,不然的话就是多此一举。
逻辑删除,很像数据被放进了回收站,以后还可以被找回来。
MYSQL底层没有boolean值 实际上用的tinyint作为boolean值
逻辑删除表示,表示这个是不是逻辑上被删除了。 需要给is_deleted一个默认值为0 说明没被删除同时在实体类中去建立一个映射 这样就可以进行逻辑删除了。 这样他会默认将is_delete从0 变成1 默认这个表被删除了。 当然使用前要将所有is_delete = 0全都设置好。 持久层分页功能 1.首先建立一个类,配置类
将持久层配制都放这里。
@Configuration
@MapperScan("com.atguigu.mybatisplus.mapper")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
配制一下分页 然后配制完就可以直接用了 比如在Test里面
package com.atguigu.mybatisplus;
import com.atguigu.mybatisplus.entity.User;
import com.atguigu.mybatisplus.mapper.UserMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
import java.util.List;
@SpringBootTest
public class InterceptorTests {
@Resource
private UserMapper userMapper;
@Test
public void testSelectPage(){
Page<User> pageParam = new Page<>(1, 5);
userMapper.selectPage(pageParam, null);
List<User> users = pageParam.getRecords();
users.forEach(System.out::println);
long total = pageParam.getTotal();
System.out.println(total);
boolean bn = pageParam.hasNext();
System.out.println("下一页?" + bn);
boolean bp = pageParam.hasPrevious();
System.out.println("上一页?" + bp);
}
@Test
public void testSelectPageByAge(){
Page<User> pageParam = new Page<>(1, 5);
userMapper.selectPageByAge(pageParam, 400);
List<User> users = pageParam.getRecords();
users.forEach(System.out::println);
}
}
或者说我们利用xml进行配制 直接在UserMapper中加一个方法 然后实现了就行
在UserMapper。xml中去实现这个方法
或者使用resultMap对结果的列进行映射。
或者在这里直接给一个别名进行处理就行了。
结果集合映射方法 https://blog.csdn.net/qq_42780864/article/details/81429114
|