mybatis-plus03--Lesson3
mybatis-plus插件
条件选择器
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
QueryWrapper:专门用于构造查询条件,支持基本的等于、不等于、大于、小于等各种常见操作。它允许你以链式调用的方式添加多个查询条件,并且可以组合使用 and 和 or 逻辑
使用最多的也就是QueryWrapper
等值判断条件:eq
//普通等值条件判断 @Test void testEQ(){ //条件选择器 QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("age","100"); // where age = 100 List<User> users = userDao.selectList(wrapper); users.forEach(System.out::println); }
大于或小于区间判断:gt ,lt
//大于,小于区间判断 @Test void testGTLT(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.gt("age",100);// where age > 100 List<User> users = userDao.selectList(wrapper); users.forEach(System.out::println); QueryWrapper<User> wrapper1 = new QueryWrapper<>(); wrapper1.lt("age",100); // where age <100 users = userDao.selectList(wrapper1); users.forEach(System.out::println); }
区间判断:between .. and .... ;注意这里的between ... and ....是开区间(100,200)
//区间判断,between and @Test void testBA(){ QueryWrapper<User> age = new QueryWrapper<User>().between("age", 100, 120); List<User> users = userDao.selectList(age); users.forEach(System.out::println); }
空值判断:
//空值判断,查看是否为空 @Test void testNull(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.isNull("age"); //where age is null wrapper.isNotNull("name"); //where name is not null List<User> users = userDao.selectList(wrapper); }
模糊查询:like
//模糊查询 @Test void testLike(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.likeLeft("num","m"); // like %m wrapper.likeRight("name","m"); //like m% wrapper.like("name","m");//like %m% }
子查询:
//子查询 @Test void testIn(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); //where age in (select age from user where age >100) wrapper.inSql("age","select age from user where age > 100"); List<User> users = userDao.selectList(wrapper); users.forEach(System.out::println); }
排序:
//排序 @Test void testOrder(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.orderByAsc("id"); // where ORDER BY id ASC List<User> users = userDao.selectList(wrapper); users.forEach(System.out::println); }
代码生成器
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
它可以自动生成和数据库表交互的代码,比如生成实体类(controller,pojo,service,dao),以及为每个实现类实现BaseMapper等有关数据库操作的功能,极大的提升了开发效率
public static void main(String[] args) { //项目操作数据库的名字 String url = "jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=UTF-8"; //登录账户 String username = "root"; //登录密码 String password = "123456"; //项目作者,一般没什么用就是注解在类中,相当于一个标记 String author = "maming"; //写入 dao,controller,service,entity的位置Java源码级目录 String outputDir = "D:\\java\\JavaCode\\SpringBoot\\testMybati\\testMybatisPlus\\src\\main\\java"; //项目模块目录 String parentPackage = "org.cqust"; //手写mapper.xml输出的位置,虽然mybatis-plus集成了大部分,但是多表查询没有集成,有需要可以自己写 String mapperPackage = "D:\\java\\JavaCode\\SpringBoot\\testMybati\\testMybatisPlus\\src\\main\\resources\\"; FastAutoGenerator.create(url, username, password) .globalConfig(builder -> { builder.author(author) // 设置作者 .outputDir(outputDir); // 设置输出目录 }) .packageConfig(builder -> { builder.parent(parentPackage) // 设置父包名 .moduleName("system") // 设置模块名 .pathInfo(Collections.singletonMap(OutputFile.xml, mapperPackage)); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude("user") // 设置需要生成的表名 .entityBuilder() .enableLombok() // 开启lombok模型 .controllerBuilder() .enableRestStyle(); // 开启生成@RestController 控制器 }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); }
以上就是自动生成数据库操作代码的模块代码,按需求更改就好了,不同的数据库表只需要更改addInclude("user")位置,需要操作什么表就写入什么表

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号