spring boot之mybatis分页多种方法
来源:互联网 发布:上海网站seo公司 编辑:程序博客网 时间:2024/06/07 17:55
我们讲一下mybatis集成的四种方式(可以先翻看一下上篇博客),顺带把分页pageHelper讲了
分页插件先加上
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.1</version> </dependency>
方法一
在启动java类中添加注入bean:sqlSessionFactory和dataSource
@ComponentScan@MapperScan("org.test1.mapper")@SpringBootApplicationpublic class Application { @Bean @ConfigurationProperties(prefix="spring.datasource") public DataSource dataSource(){ return new org.apache.tomcat.jdbc.pool.DataSource(); } @Bean(name="sqlSessionFactory") public SqlSessionFactory sqlSessionFactoryBean() throws Exception{ SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource()); //分页插件 PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); //properties.setProperty("dialet", "Oracle"); properties.setProperty("resonable", "false"); properties.setProperty("pageSizeZero", "true"); pageHelper.setProperties(properties); sqlSessionFactoryBean.setPlugins(new Interceptor[]{pageHelper}); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mybatis/*.xml")); return sqlSessionFactoryBean.getObject(); } @Bean public PlatformTransactionManager transactionManager(){ return new DataSourceTransactionManager(dataSource()); } public static void main(String args[]){ SpringApplication.run(Application.class); }}
调用:
PageHelper.startPage(1,1)
;
param:第几页,页面几条数据
这是对于我们上篇博客集成mybatis的方法,直接添加个拦截就可以了;
具体的可以看上篇博客
方法二
我们再试另一种方法:
加两个config文件
通过添加@Configuration来解决的注入dataSource和sqlSessionFactory的
@Configuration@EnableTransactionManagementpublic class MyBatisConfig implements TransactionManagementConfigurer { @Autowired DataSource dataSource; @Bean(name = "sqlSessionFactory") public SqlSessionFactory sqlSessionFactoryBean() { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setTypeAliasesPackage("org.test1.mapper"); //分页插件 PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); properties.setProperty("reasonable", "true"); properties.setProperty("supportMethodsArguments", "true"); properties.setProperty("returnPageInfo", "check"); properties.setProperty("params", "count=countSql"); pageHelper.setProperties(properties); //添加插件 bean.setPlugins(new Interceptor[]{pageHelper}); //添加XML目录 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); try { bean.setMapperLocations(resolver.getResources("classpath:/mybatis/*.xml")); return bean.getObject(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } @Bean public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } @Bean public PlatformTransactionManager annotationDrivenTransactionManager() { return new DataSourceTransactionManager(dataSource); }}
@Configuration//TODO 注意,由于MapperScannerConfigurer执行的比较早,所以必须有下面的注解@AutoConfigureAfter(MyBatisConfig.class)public class MyBatisMapperScannerConfig{ @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory"); mapperScannerConfigurer.setBasePackage("org.test1.mapper"); return mapperScannerConfigurer; }}
其它没有区别;
方法三
第三种超级简单的办法:
但注意添加mapper扫描
就是把我们configuration这步给省去了;用的人家启动时默认的sqlSessionFactory;
直接在application.properties中添加:mybatis.mapperLocations: classpath:/mybatis/*.xml;
启动即可;
需要配置的话可以添加mybatis的其他参数
# MyBatis mybatis: typeAliasesPackage: com.tony.entity mapperLocations: classpath:/com/tony/mapper/*.xml configLocation: classpath:/mybatis-config.xml
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <settings> <setting name="logImpl" value="LOG4J"/> </settings> <typeAliases> <typeAlias type="org.test.mapper.testMapper" alias="Student" /> </typeAliases> <plugins> <!--mybatis分页插件--> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql"/> <property name="offsetAsPageNum" value="false"/> <property name="rowBoundsWithCount" value="false"/> <property name="pageSizeZero" value="true"/> <property name="reasonable" value="false"/> <property name="supportMethodsArguments" value="false"/> <property name="returnPageInfo" value="none"/> </plugin> </plugins> <mappers> <mapper resource="/mybatis/user.xml"/> </mappers></configuration>
参考:http://www.jianshu.com/p/5ef281100bb6/
http://blog.csdn.net/qincidong/article/details/76120968
方法四
上文提到过的,什么也不用做,直接在mapper接口中写方法就Ok了;这种功能集成太少,没有插件;
@Select("select id from table1") public int getMsg3();
前三种方法其实最终目的都一样
方法一和方法二其实差不多,都是通过手动注解的方式将mybatis和分页加载;
而方法三则是系统自动加载,个人推荐方法三;
- spring boot之mybatis分页多种方法
- Spring Boot+Mybatis+Pagehelper分页
- spring boot mybatis+分页配置
- Spring Boot+Mybatis+Pagehelper分页
- spring boot之Mybatis
- 关于spring boot mybatis 多数据源的多种方法原理概述
- Spring Boot集成MyBatis与分页插件
- Spring Boot集成MyBatis与分页插件
- spring boot和mybatis集成分页插件
- spring boot mybatis分页插件的使用
- Mybatis-分页插件(spring boot下)
- Spring Boot之整合mybatis
- Spring Boot之整合Mybatis
- Spring-Boot项目+Spring-Mybatis+分页插件+Spring单元测试整合
- spring boot学习3之mybatis+druid+事务+PageHelper分页插件+sql打印插件整合
- spring boot学习6之mybatis+PageHelper分页插件+jta多数据源事务整合
- spring boot & mybatis 集成 方法一
- Spring Boot+mybatis+thymeleaf集成通用mapper分页查询
- ExpandableLinearLayout
- 算法基础之----直接插入排序
- java的内存管理,是靠GC即垃圾回收程序来实现的,GC其实也是一个程序,是怎么编译、运行的?
- Spark --- 启动、运行、关闭过程
- 剑指offer-斐波那契数列
- spring boot之mybatis分页多种方法
- python使用unittest进行单元测试
- centos 7 install mysql
- 学习js的day3
- vlayout
- 便民服务机器人超越工业机器人!
- JavaScript 数组方法总结
- jquery.js和jquery.min.js的区别
- Ubuntu14.04 编译 /usr/bin/ld: cannot find -l*** 问题