SpringBoot如何使用JavaBean配置mybatis分页插件

系统环境:
SpringBoot(配置方式全部采用javaBean)
MyBatis
数据库:Oracle
以下是sqlSessionFactory的配置

https://img.mukewang.com/5b69aa260001612208000294.jpg

我想在现在的配置中增加mybatis的分页插件,经过一些尝试没有成功。
由于使用的javaBean的配置个人不太熟练,然后在开源的插件配置上都是xml的配置,哪位同学有经验请指教。
以下是我的一些参考资料

参考资料:
https://github.com/abel533/My...
http://blog.csdn.net/isea533/...


温温酱
浏览 1940回答 2
2回答

慕的地10843

@Configuration@EnableTransactionManagement@MapperScan(basePackages = "com.example.schedule.dao")@PropertySource("classpath:application.yml")public class MyBatisConfig {    @Autowired    private Environment env;    @Bean    public DataSource dataSource() {        DruidDataSource dataSource = new DruidDataSource();        dataSource.setUrl(env.getProperty("druid.url"));        dataSource.setUsername(env.getProperty("druid.username"));        dataSource.setPassword(env.getProperty("druid.password"));        dataSource.setInitialSize(Integer.parseInt(env.getProperty("druid.initial-size")));        dataSource.setMinIdle(Integer.parseInt(env.getProperty("druid.min-idle")));        dataSource.setMaxActive(Integer.parseInt(env.getProperty("druid.max-active")));        dataSource.setTestOnBorrow(Boolean.valueOf(env.getProperty("druid.test-on-borrow")));        try {            dataSource.init();        } catch (SQLException e) {            throw new RuntimeException(e);        }        return dataSource;    }    @Bean    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) {        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();        bean.setDataSource(dataSource);        //分页插件        PageHelper pageHelper = new PageHelper();        Properties props = new Properties();        props.setProperty("reasonable", "true");        props.setProperty("supportMethodsArguments", "true");        props.setProperty("returnPageInfo", "check");        props.setProperty("params", "count=countSql");        pageHelper.setProperties(props);        //添加插件        bean.setPlugins(new Interceptor[]{pageHelper});        try {            //指定基包            bean.setTypeAliasesPackage(env.getProperty("mybatis.type-aliases-package"));            bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("mapper/*.xml"));            return bean.getObject();        } catch (Exception e) {            e.printStackTrace();            return null;        }    }    @Bean    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {        return new SqlSessionTemplate(sqlSessionFactory);    }    @Bean    public DataSourceTransactionManager transactionManager(DataSource dataSource) {        DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();        dataSourceTransactionManager.setDataSource(dataSource);        return dataSourceTransactionManager;    }}

开满天机

PageHelper pageHelper这个没有实现Interceptor接口怎么给new Interceptor[]?新版本中有个PageInterceptor类实现了Interceptor接口,这个时候赋值给new Interceptor[]才可行。        // 设置MyBatis分页插件        PageInterceptor pageInterceptor = new PageInterceptor();        Properties properties = new Properties();        properties.setProperty("helperDialect", "oracle");        properties.setProperty("offsetAsPageNum", "true");        properties.setProperty("rowBoundsWithCount", "true");        pageInterceptor.setProperties(properties);        bean.setPlugins(new Interceptor[]{pageInterceptor});
打开App,查看更多内容
随时随地看视频慕课网APP