搜索
您的当前位置:首页MybatisPlus相关

MybatisPlus相关

来源:世旅网

//创建条件构造器
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq(“name”, “老王”)//name = ‘老王’
.ne(“name”, “老王”)//>name <> ‘老王’
.gt(“age”, 18)//age > 18
.ge(“age”, 18)//age >= 18
.lt(“age”, 18)//age < 18
.le(“age”, 18)//age <= 18
.between(“age”, 18, 30)//age between 18 and 30
.notBetween(“age”, 18, 30)//age not between 18 and 30
.like(“name”, “王”)//name like ‘%王%’
.notLike(“name”, “王”)//name not like ‘%王%’
.likeLeft(“name”, “王”)//name like ‘%王’
.likeRight(“name”, “王”)//name like ‘王%’
.isNull(“name”)//name is null
.isNotNull(“name”)//name is not null
.in(“age”,{1,2,3})//age in (1,2,3)
.in(“age”, 1, 2, 3)//age in (1,2,3)
.notIn(“age”,{1,2,3})//age not in (1,2,3)
.notIn(“age”, 1, 2, 3)//age not in (1,2,3)
.inSql(“age”, “1,2,3,4,5,6”)//age in (1,2,3,4,5,6)
.inSql(“id”, “select id from table where id < 3”)//id in (select id from table where id < 3)
.notInSql(“id”, “select id from table where id < 3”)//id not in (select id from table where id < 3)
.groupBy(“id”, “name”)//group by id,name
.orderByAsc(“id”, “name”)//order by id ASC,name ASC
.orderByDesc(“id”, “name”)//order by id DESC,name DESC
.orderBy(true, true, “id”, “name”)//order by id ASC,name ASC
.having(“sum(age) > 10”)//having sum(age) > 10
.eq(“id”,1).or().eq(“name”,“老王”)//id = 1 or name = ‘老王’

自定义SQL
// 注意事项:需要mybatis-plus版本 >= 3.0.7 param 参数名要么叫ew,要么加上注解@Param(Constants.WRAPPER) 使用${ew.customSqlSegment} 不支持 Wrapper 内的entity生成where语句
//1.用注解
@Select(“select * from mysql_data ${ew.customSqlSegment}”)
List getAll(@Param(Constants.WRAPPER) Wrapper wrapper);
//2.用XML
List getAll(Wrapper ew);

<select id="getAll" resultType="MysqlData">
	SELECT * FROM mysql_data ${ew.customSqlSegment}
</select>

MybatisPlus的代码生成器
public static void main(String[] args) {
// 构建一个代码自动生成器对象
AutoGenerator mpg = new AutoGenerator();
// 配置策略
// 1. 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty(“user.dir”);
gc.setOutputDir(projectPath + “/time-wall-service/src/main/java”);
gc.setAuthor(“Dawn”);
gc.setOpen(false);
// 是否覆盖
gc.setFileOverride(false);
// 去掉Service I前缀
gc.setServiceName("%sService");
gc.setIdType(IdType.ASSIGN_ID);
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(true);
mpg.setGlobalConfig(gc);
// 2.设置数据源
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl(“jdbc:mysql://127.0.0.1:3306/timewall?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8”);
dsc.setDriverName(“com.mysql.cj.jdbc.Driver”);
dsc.setUsername(“root”);
dsc.setPassword(“root”);
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 3. 包的配置
PackageConfig pc = new PackageConfig();
//pc.setModuleName(scanner(“模块名”));
pc.setParent(“cn.weakup”);
pc.setModuleName(“temp”);
pc.setEntity(“entity”);
pc.setMapper(“mapper”);
pc.setService(“service”);
pc.setServiceImpl(“service.impl”);
pc.setController(“controller”);
mpg.setPackageInfo(pc);
// 4. 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// 自动设置Lombok
strategy.setEntityLombokModel(true);
// 配置逻辑删除字段
strategy.setLogicDeleteFieldName(“deleted”);
// 自动填充配置
TableFill createTime = new TableFill(“create_time”, FieldFill.INSERT);
TableFill updateTime = new TableFill(“update_time”, FieldFill.INSERT_UPDATE);
ArrayList tableFills = new ArrayList<>();
tableFills.add(createTime);
tableFills.add(updateTime);
strategy.setTableFillList(tableFills);
// 乐观锁配置
strategy.setVersionFieldName(“version”);
strategy.setRestControllerStyle(true);
strategy.setControllerMappingHyphenStyle(true);
mpg.setStrategy(strategy);
mpg.execute();
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top