使用Mybatis PLUS

官网点击进入

<dependencys>
    <dependency>
	  <groupId>com.baomidou</groupId>
	  <artifactId>mybatis-plus</artifactId>
	  <version>3.x.x</version>
    </dependency> 

   <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus-boot-starter</artifactId>
          <version>3.x.x</version>
   </dependency>
</dependencys>

在application.yml中配置:

mybatis-plus:
  typeAliasesPackage: cn.entiy
  configuration:
    map-underscore-to-camel-case: false
    auto-mapping-behavior: full
    use-generated-keys: true
  global-config:
    db-config:
      #主键类型  id_worker:"数据库ID自增" auto+@TableId:"可以获得主键值"
      id-type: auto
      #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
      field-strategy: not_empty
      #驼峰下划线转换
      column-underline: false
      #数据库大写下划线转换
      #capital-mode: true
      #逻辑删除配置
      logic-delete-value: 0
      logic-not-delete-value: 1
    refresh: true

MP2.x常用方法:
insert:保存
updateById:根据主键更新
deleteById:根据主键删除
selectById:根据主键查询
selectList:查询所有,参数new EntityWrapper().like(“name”, “m”)
selectPage:分页查询,参数new Page(1,10),new EntityWrapper(new User())

MP3.x常用方法:
save:保存
saveBatch:批量保存
updateById:根据主键更新
updateBatchById:根据主键批量更新
removeById:根据主键删除
removeByIds:根据多个id删除

getById:根据主键查询
getOne:根据条件返回一个结果
list:查询所有,参数new QueryWrapper()
listByIds:根据多个id查询
listMaps:参数new QueryWrapper(),返回List
listByMap:参数Map<String,Object>

page:分页查询,参数new Page(1,10),new QueryWrapper()
pageMaps:参数new QueryWrapper(),返回List

MP3.x升级日志:
升级 JDK 8 + 优化性能 Wrapper 支持 lambda 语法
模块化 MP 合理的分配各个包结构
重构注入方法,支持任意方法精简注入模式
全局配置下划线转换消灭注入 AS 语句
改造 Wrapper 更改为 QueryWrapper UpdateWrapper
重构 分页插件 消灭固定分页模型,支持 Mapper 直接返回 IPage 接口
新增 Rest Api 通用 Controller 层
实体 String 类型字段默认使用 LIKE 查询 SelectOne 默认 LIMIT 1
辅助支持 selectMaps 新增 bean map 互转工具类
增加 db2 支持 starter 改为 Spring boot 2+ 支持
重构生成器提供自定义 DB 多种模板引擎支持

MP 2.x 到 3.x 有以下改进
分页查询可以直接返回IPage的子类(下面会有详细使用说明)
Wrapper实现类的改动

    1.EntityWrapper<T>更名为QueryWrapper<T>
    2.新增一个实现类UpdateWrapper<T>用于update方法

BaseMapper<T>的改动

    1.去除了insertAllColumn(T entity)方法
    2.去除了updateAllColumn(T entity)方法
    3.新增update(T entity, Wrapper<T> updateWrapper)方法

Wrapper使用:
QueryWrapper与UpdateWrapper共有方法
方法名 说明
allEq 基于 map 内容等于=
eq 等于 =
ne 不等于 <>
gt 大于 >
ge 大于等于 >=
lt 小于 <
le 小于等于 <=
between BETWEEN 条件语句
notBetween NOT BETWEEN 条件语句
like LIKE ‘%值%’’
notLike NOT LIKE ‘%值%’
likeLeft LIKE ‘%值’
likeRight LIKE ‘值%’


isNull NULL 值查询
isNotNull NOT NULL 值查询
in IN 查询
notIn NOT IN 查询
inSql IN 查询(sql注入式)
notInSql NOT IN 查询(sql注入式)
groupBy 分组 GROUP BY
orderByAsc ASC 排序 ORDER BY
orderByDesc DESC 排序 ORDER BY
orderBy 排序 ORDER BY
having HAVING 关键词(sql注入式)


or or 拼接
apply 拼接自定义内容(sql注入式)
last 拼接在最后(sql注入式)
exists EXISTS 条件语句(sql注入式)
notExists NOT EXISTS 条件语句(sql注入式)


and(Function) AND (嵌套内容)
or(Function) OR (嵌套内容)
nested(Function) (嵌套内容)

QueryWrapper特有方法:
方法名 说明
select SQL查询字段内容,例如:id,name,age(重复设置以最后一次为准)

UpdateWrapper特有方法:
方法名 说明
set SQL SET 字段(一个字段使用一次)

分页查询:(必须配置)
@Configuration
public class MybatisPlus {
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor page = new PaginationInterceptor();
page.setDialectType(“mysql”);
page.setOverflow(true); //合理化
return page;
}
}

IPage selectPage(IPage page, Wrapper queryWrapper);
以上面的方法为例,入参一个IPage接口的子类(可以使用mp自带的一个叫Page的子类), 返回一个IPage,其实这个返回的分页类==入参的分页类, 如果你需要自定义一个分页方法只需要注意一点:入参第一位放置你使用的IPage子类!
如:
IPage page = service.page(
new Page(1,3),
new QueryWrapper().like(“title”,“山东”).orderByDesc(“id”));

自定义方法分页:
dao接口:
public IPage<Map<String,Object>> selectAll(IPage page);

service:
public IPage<Map<String,Object>> findAll(int index,int size){
Page<Map<String,Object>> page = new Page<>(index,size);
return ncMapper.selectAll(page);
}

update(T entity, Wrapper updateWrapper)使用:
只需要注意,入参第一位是需要update的实体类,updateWrapper里的实体类是用于生成where条件的

column-underline: true
实体类使用了驼峰命名将自动映射下划线表字段:如createDate->create_date
MP不是用*,都将使用下划线去查询

反向工程:

<dependency>
			
	<groupId>org.springframework.boot</groupId>
			
	<artifactId>spring-boot-starter-freemarker</artifactId>
		
</dependency>

<dependency>
			
	<groupId>com.baomidou</groupId>
			
	<artifactId>mybatis-plus-generator</artifactId>
			
	<version>3.x.x</version>
		
</dependency>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值