亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

溫溫醬 2018-08-04 13:01:06
系統環境:SpringBoot(配置方式全部采用javaBean)MyBatis數據庫:Oracle以下是sqlSessionFactory的配置我想在現在的配置中增加mybatis的分頁插件,經過一些嘗試沒有成功。由于使用的javaBean的配置個人不太熟練,然后在開源的插件配置上都是xml的配置,哪位同學有經驗請指教。以下是我的一些參考資料參考資料:https://github.com/abel533/My...http://blog.csdn.net/isea533/...
查看完整描述

2 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

@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;

    }


}


查看完整回答
反對 回復 2018-08-07
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

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});


查看完整回答
反對 回復 2018-08-07
  • 2 回答
  • 0 關注
  • 2042 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號