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

发布于 2022-09-05 15:45:07 字数 603 浏览 10 评论 0

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

clipboard.png

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

嘿哥们儿 2022-09-12 15:45:07

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});
醉生梦死 2022-09-12 15:45:07
@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;
    }

}
池木 2022-09-12 15:45:07
    @Bean
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource, PageHelper pageHelper) throws IOException {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        bean.setDataSource(dataSource);
        bean.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
        bean.setPlugins(new Interceptor[]{pageHelper});
        bean.setConfiguration(mybatisSettings());
        return bean;
    }


    @Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("dialect", env.getProperty("mybatis.dialect"));
        pageHelper.setProperties(properties);
        return pageHelper;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文