1:添加mybatis-plus的依赖:
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> </dependency>
3:使用分页,需要配置拦截器类不然无法使用分页
4:
@TableField(exist = false) //数据库sql不查询改实体类属性
@TableField(value = "passWord") //映射数据库的字段
@TableName("user")//对应数据库表名
5:myBatis-plus代码生成器:
1:添加依赖:
<!--mp代码生成器--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency> <!--velocity代码生成使用模板 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> </dependency>
6:条件查询 QueryWrapper<AppUser> wrapper = new QueryWrapper<>(); //where 的 = //wrapper.eq("uid",3); //查询等于3的 wrapper.between("uid",3,10); //在二者之间查询 //前只能为小,后面为大 //模糊查询 wrapper.like("userName","张"); //模糊包含 wrapper.likeLeft("userName","j"); //查询已j结尾的数据 wrapper.likeRight("userName","j"); //查询已j开头的数据 //le<= ge>= //wrapper.lt("uid",3).gt("uid",1);; //lt是<,gt是> 这个and关系 wrapper.lt("uid",3).or().gt("uid",1);; //lt是<,gt是> 这个or关系 //链式编程 String age = null; wrapper.lt(age!=null,"age",39); //为true就不执行 = <if test="age != null ">age,</if> // //分页 Page<AppUser> page = new Page<>(1,5); Page<AppUser> appUserPage = userDao.selectPage(page, null); List<AppUser> records = appUserPage.getRecords(); //返回具体的查询数据 long total = appUserPage.getTotal(); //返回的total // 设置需要查询的字段 // QueryWrapper<AppUser> wrappers = new QueryWrapper<>(); // wrappers.select("uid","userName","password"); // List<AppUser> appUsers = userDao.selectList(wrappers); // System.err.println(appUsers); QueryWrapper<AppUser> wrappers = new QueryWrapper<>(); wrappers.select("count(*) as count"); //统计数量取别名count 为map的key wrappers.groupBy("uid"); //分组查询 List<Map<String, Object>> maps = userDao.selectMaps(wrappers); System.err.println(maps); //统计的结果返回map
//批量处理
List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4); QueryWrapper<AppUser> wrapperb = new QueryWrapper<>(); //包含 批量删除 wrapperb.in("uid",list); int delete = userDao.delete(wrapperb); System.err.println(delete);