古镇营销型网站建设,云南建设招标网站首页,上海外贸网站推广,网页设计培训计划Mybatis-Plus--条件构造器与代码生成器 1 条件构造器1.1 1.2 in notin1.3 between...1.4 orderBy...1.5 like... 2 代码生成器2.1 引入依赖2.2 生成器代码 1 条件构造器 通过条件构造器可以更加轻松的完成条件查询与更新(底层就是动态SQL) 1.1 ge 小于 1.2 in notin1.3 between...1.4 orderBy...1.5 like... 2 代码生成器2.1 引入依赖2.2 生成器代码 1 条件构造器 通过条件构造器可以更加轻松的完成条件查询与更新(底层就是动态SQL) 1.1 ge 小于 例: lt(age, 18)—age 18 gt 大于 例: gt(age, 18)—age 18 eq 等于 例: eq(name, 老王)—name 老王 Test
public void test1(){QueryWrapperUser queryWrapper new QueryWrapper();//查询年龄大于24岁用户,姓名为tomqueryWrapper.ge(age,24).eq(name,tom);ListUser userList userMapper.selectList(queryWrapper);userList.forEach(System.out::println);
}1.2 in notin in in(R column, Collection? value)
in(boolean condition, R column, Collection? value)字段 IN (value.get(0), value.get(1), …) 例: in(age,{1,2,3})—age in (1,2,3) in(R column, Object... values)
in(boolean condition, R column, Object... values)字段 IN (v0, v1, …) 例: in(age, 1, 2, 3)—age in (1,2,3) notIn otIn(R column, Collection? value)
notIn(boolean condition, R column, Collection? value)字段 NOT IN (value.get(0), value.get(1), …) 例: notIn(age,{1,2,3})—age not in (1,2,3) notIn(R column, Object... values)
notIn(boolean condition, R column, Object... values)字段 NOT IN (v0, v1, …) 例: notIn(age, 1, 2, 3)—age not in (1,2,3) Test
public void test2(){QueryWrapperUser queryWrapper new QueryWrapper();//查询id为1,3,5queryWrapper.in(id,1,3,5);ListUser userList userMapper.selectList(queryWrapper);userList.forEach(System.out::println);
}1.3 between… between between(R column, Object val1, Object val2)
between(boolean condition, R column, Object val1, Object val2)BETWEEN 值1 AND 值2 例: between(age, 18, 30)—age between 18 and 30 notBetween notBetween(R column, Object val1, Object val2)
notBetween(boolean condition, R column, Object val1, Object val2)NOT BETWEEN 值1 AND 值2 例: notBetween(age, 18, 30)—age not between 18 and 30 Test
public void test3(){QueryWrapperUser queryWrapper new QueryWrapper();//查询年龄在20~28之间queryWrapper.between(age,20,28);ListUser userList userMapper.selectList(queryWrapper);userList.forEach(System.out::println);
}1.4 orderBy… orderByAsc orderByAsc(R... columns)
orderByAsc(boolean condition, R... columns)排序ORDER BY 字段, … ASC 例: orderByAsc(id, name)—order by id ASC,name ASC orderByDesc orderByDesc(R... columns)
orderByDesc(boolean condition, R... columns)排序ORDER BY 字段, … DESC 例: orderByDesc(id, name)—order by id DESC,name DESC orderBy orderBy(boolean condition, boolean isAsc, R... columns)排序ORDER BY 字段, …例: orderBy(true, true, id, name)—order by id ASC,name ASC Test
public void test4(){QueryWrapperUser queryWrapper new QueryWrapper();//查询按照年龄降序如果年龄相等按照姓名降序queryWrapper.orderByDesc(age,name);ListUser userList userMapper.selectList(queryWrapper);userList.forEach(System.out::println);
}Test
public void test5(){QueryWrapperUser queryWrapper new QueryWrapper();//查询姓名中包含%S%//queryWrapper.like(name,s);//查询姓名中包含%S//queryWrapper.likeLeft(name,s);//查询姓名中包含S%queryWrapper.likeRight(name,s);ListUser userList userMapper.selectList(queryWrapper);userList.forEach(System.out::println);
}1.5 like… like like(R column, Object val)
like(boolean condition, R column, Object val)LIKE ‘%值%’ 例: like(name, 王)—name like %王% notLike notLike(R column, Object val)
notLike(boolean condition, R column, Object val)NOT LIKE ‘%值%’ 例: notLike(name, 王)—name not like %王% likeLeft likeLeft(R column, Object val)
likeLeft(boolean condition, R column, Object val)LIKE ‘%值’ 例: likeLeft(name, 王)—name like %王 likeRight likeRight(R column, Object val)
likeRight(boolean condition, R column, Object val)LIKE ‘值%’ 例: likeRight(name, 王)—name like 王% notLikeLeft notLikeLeft(R column, Object val)
notLikeLeft(boolean condition, R column, Object val)NOT LIKE ‘%值’ 例: notLikeLeft(name, 王)—name not like %王 notLikeRight notLikeRight(R column, Object val)
notLikeRight(boolean condition, R column, Object val)NOT LIKE ‘值%’ 例: notLikeRight(name, 王)—name not like 王% isNull isNull(R column)
isNull(boolean condition, R column)字段 IS NULL 例: isNull(name)—name is null isNotNull isNotNull(R column)
isNotNull(boolean condition, R column)字段 IS NOT NULL 例: isNotNull(name)—name is not null Test
public void test6(){UpdateWrapperUser updateWrapper new UpdateWrapper();//修改姓名中不包含s的用户updateWrapper.notLike(name,s);User user new User();user.setName(尼古拉斯);userMapper.update(user,updateWrapper);
}2 代码生成器 AutoGenerator 是 MyBatis-Plus 的代码生成器通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码极大的提升了开发效率。 2.1 引入依赖 代码生成器依赖模板引擎 依赖日志依赖 !-- 代码生成器依赖 --
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-generator/artifactIdversion3.4.1/version
/dependency
!-- 模板引擎 依赖 --
dependencygroupIdorg.apache.velocity/groupIdartifactIdvelocity-engine-core/artifactIdversion2.3/version
/dependency
!-- 日志依赖 --
dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.7.30/version
/dependency2.2 生成器代码 代码生成器相关诶之数据源配置包配置策略配置其他配置 public class CodeGenerator {public static void main(String[] args) {// 代码生成器AutoGenerator mpg new AutoGenerator();// 全局配置GlobalConfig gc new GlobalConfig();//获取当前路径String projectPath System.getProperty(user.dir);//设置生成代码位置gc.setOutputDir(projectPath /src/main/java);//设置代码文件头作者gc.setAuthor(ying);//设置是否在资源管理器打开gc.setOpen(false);//设置生成代码是否覆盖gc.setFileOverride(true);//设置去除生成代码接口中的Igc.setServiceName(%sService);mpg.setGlobalConfig(gc);// 数据源配置DataSourceConfig dsc new DataSourceConfig();dsc.setUrl(jdbc:mysql:///java11);dsc.setDriverName(com.mysql.jdbc.Driver);dsc.setUsername(root);dsc.setPassword(123456);mpg.setDataSource(dsc);// 包配置PackageConfig pc new PackageConfig();//设置模块名称//pc.setModuleName(shopping);pc.setParent(com.ying);pc.setEntity(pojo);pc.setMapper(mapper);pc.setService(service);pc.setController(controller);mpg.setPackageInfo(pc);// 策略配置StrategyConfig strategy new StrategyConfig();//表名 下划线转驼峰strategy.setNaming(NamingStrategy.underline_to_camel);//字段名 下划线转驼峰strategy.setColumnNaming(NamingStrategy.underline_to_camel);//实体类是否使用lombokstrategy.setEntityLombokModel(true);//Controller是否使用RESTful风格(RestController)strategy.setRestControllerStyle(true);//设置逻辑删除字段(数据库中需要有deleted字段)strategy.setLogicDeleteFieldName(deleted);//设置乐观锁注解(数据库中需要有version字段)strategy.setVersionFieldName(version);//设置生成的表名strategy.setInclude(user);mpg.setStrategy(strategy);mpg.execute();}
}