以SpringMVC为例 SpringBoot构建方式( 四 )


根据条件查询,.();参数为查询封装器类型分页条件查询,MP里有内置的分页工具,其原理应该是类似拦截器,或者像代理? 返回值其实就是那个参数Page类,和分页插件一样, 第二个参数也是,同条件查询,要想分页生效需要配置拦截器
IPage page = new Page(1,5);bookMapper.selectPage(page,null);/*要想分页生效需要配置拦截器,*/System.out.println(page.getRecords()); // 包含数据System.out.println(page.getPages()); // 共几页System.out.println(page.getTotal()); // 数据总数
使用MP简化层实现也可以通过注解或xml配置进行开发,与MP都可以这样配置
#mybatis:配置好像不行mybatis-plus:configuration:map-underscore-to-camel-case: falsemapper-locations: classpath:UserMapper.xm#配置Mybatis映射文件type-aliases-package: com.muyu.pojo#给相应包起别名#config-location: classpath:sqlMapConfig.xml#配置核心配置类#mapperLocations:它表示我们的Mapper文件存放的位置,当我们的Mapper文件跟对应的Mapper接口处于同一位置的时候可以不用指定该属性的值# configLocation:用于指定Mybatis的配置文件位置 。如果指定了该属性,那么会以该配置文件的内容作为配置信息构建对应的SqlSessionFactoryBuilder,但是后续属性指定的内容会覆盖该配置文件里面指定的对应内容# typeAliasesPackage:它一般对应我们的实体类所在的包,这个时候会自动取对应包中不包括包名的简单类名作为包括包名的别名 。多个package之间可以用逗号或者分号等来进行分隔(value的值一定要是包的全)# typeAliases:数组类型,用来指定别名的 。指定了这个属性后,Mybatis会把这个类型的短名称作为这个类型的别名,前提是该类上没有标注@Alias注解,否则将使用该注解对应的值作为此种类型的别名(value的值一定要是类的完全限定名)# plugins:数组类型,用来指定Mybatis的Interceptor# typeHandlersPackage:用来指定TypeHandler所在的包,如果指定了该属性,SqlSessionFactoryBean会自动把该包下面的类注册为对应的TypeHandler 。多个package之间可以用逗号或者分号等来进行分隔# typeHandlers:数组类型,表示TypeHandler# mapper: #不知道是什么,暂且挌下#mappers: com.pinyu.miniprogram.mysql.mappers.BaseMapper#identity: mysql
插入方法,与实现层一样,也需要配置自动注解,详情看上面
Book book = new Book();bookService.save(book);
根据id删除方法
bookService.removeById(17);
根据id修改方法
Book book = new Book();book.setId(15);book.setName("Service测试数据123");bookService.updateById(book);
根据id查询
Book byId = bookService.getById(12);
根据条件查询,与一样
LambdaQueryWrapper lqw = new LambdaQueryWrapper();lqw.like(Book::getName, "spring");List objects = bookService.listObjs(lqw);//查询所有,两种方法List objects1 = bookService.listObjs();List objects2 = bookService.list();
分页条件查询,与同理
IPage page = new Page(2,5);bookService.page(page);//分页条件查询LambdaQueryWrapper lqw = new LambdaQueryWrapper();bookService.page(page,lqw);
Boot整合Druid,总结整合过程 添加相应的坐标,选中或手工添加
com.alibaba