十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
mybatisplus是国人再mybatis做了增强的
创新互联是一家专业提供临夏企业网站建设,专注与网站制作、做网站、H5技术、小程序制作等业务。10年已为临夏众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。原有功能都能用,做了更多加强简化开发
com.baomidou mybatis-plus-boot-starter 3.5.2
数据层
继承了BaseMapper并且指定pojo泛型之后就有了基础的增删改查功能,表名默认是小写pojo类名
@Mapper
public interface BookDao extends BaseMapper{}
分页制作
首先需要加上拦截器
@Configuration
public class MyConfig {@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor my = new MybatisPlusInterceptor();
my.addInnerInterceptor(new PaginationInnerInterceptor());
return my;
}
}
IPage page = new Page(1,2);
IPagebookIPage = bookDao.selectPage(page,null);
System.out.println(bookIPage.getRecords());
查询添加条件查询
小于
@Test
void selectBYId(){QueryWrapperQueryWrapper = new QueryWrapper<>();
QueryWrapper.lt("id",8);
Listbooks = bookDao.selectList(QueryWrapper);
System.out.println(books);
}
第二种格式lambda格式
直接通过实体类种的get方法
@Test
void selectBYId1(){LambdaQueryWrapperlqw= new LambdaQueryWrapper<>();
lqw.le(Book::getId,8);
Listbooks = bookDao.selectList(lqw);
System.out.println(books);
}
null值判定的话上面的按同样,只不过可以在前面多加一个返回布尔值的条件参数
查询投影
查询投影指的是在通过指定查询条件或者操作传给方法,达到查询结果中包含未定义的属性
lqw.select("count(*) as nums,gender")
lqw.groupBy("gender")
条件查询 : lt le ge gt eq between like
字段映射,遇到和列名不一致的dao层可以使用注解@TableField(value = “列名”) 加载属性前面进行指定
如果定义了数据库表里不存在的列也可以通过@TableField(exist=false) 注解来说明不存在
如果想要比如密码字段不参与查询全部展示,那么@TableField(value = “列名”,select = false)通过指定select查询不返回结果列
指定表名@TableName(“表名”)使用该注解在pojo类上方
id生成策略
可以控制id生成的策略方式
使用@TableId(type=IdType.xxx)
选项.AUTO 还是数据库的自增来进行自增也就是null
选项.INPUT 需要把自增关闭,这就需要自己指定id了
选项.ASSIGN_ID 通过雪花算法和一系列操作生成id
全局指定id生成策略,通过配置文件的配置来进行设定
mybatis-plus:
global-config:
db-config:
id-type: auto
多记录操作
查询多个id的信息和删除多个id的信息
lqw.selectBatchIds(传入List)和lqw.deleteBatchIds(传入一个List)
逻辑删除
逻辑删除字面意思逻辑层面删除,一个新字段标记了是否已经被删除
可以通过@TableLogic注解来设置并且指定被删除和未被删除的值
当然还是通过配置来全局指定好点
mybatis-plus:
global-config:
db-config:
logic-delete-field: deleted
logic-not-delete-value: 0
logic-delete-value: 1
指定逻辑删除之后,继承自带的删除就变成了逻辑删除语句
乐观锁拦截
通过一个每次操作不断累加的字段防止多次同时操作
首先要在前边分页拦截器那边在加上一个拦截器
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor my = new MybatisPlusInterceptor();
my.addInnerInterceptor(new PaginationInnerInterceptor());
my.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); //乐观锁拦截器
return my;
}
创建一个拦截器字段,使用的时候必须先要获取当前拦截器字段值,在每次进行修改的时候会进行自动拼接+1操作,来保证相同
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧