2016-10-17 42 views
0

是的,我的意思是純java。我有我的mybatis這樣config。現在我的大部分項目都使用java base config但是mybatis。如何將mybatis設置轉換爲java base config

<configuration> 
    <settings> 
     <setting name="cacheEnabled" value="true" /> 
     <setting name="lazyLoadingEnabled" value="true" /> 
     <setting name="multipleResultSetsEnabled" value="true" /> 
     <setting name="useColumnLabel" value="true" /> 
     <setting name="useGeneratedKeys" value="false" /> 
     ... 
    </settings> 
</configuration> 

如何在java文件中配置這些文件? 這是我的db配置。

@Configuration 
@MapperScan("com.xxxx.basis.dao") 
public class DBConfig { 
    @Resource 
    private Environment env; 

    @Bean(destroyMethod = "close") 
    public DruidDataSource dataSource() { 
     DruidDataSource dataSource = new DruidDataSource(); 
     // ... 
     return dataSource; 
    } 

    @Bean 
    public DataSourceTransactionManager transactionManager() { 
     return new DataSourceTransactionManager(dataSource()); 
    } 

    @Bean 
    public SqlSessionFactoryBean sqlSessionFactory() throws Exception { 
     SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); 
     sessionFactory.setDataSource(dataSource()); 
     sessionFactory.setTypeAliasesPackage("com.xxx.basis.domain"); 
     return sessionFactory; 
    } 

} 
+0

我認爲這是不可能的....沒有提到過,sqlmap配置文件可以在java..even在mybatis文檔中我們只能看到xml配置。 –

+0

謝謝。我認爲導入java文件中的xml文件是唯一的方法。@ PrasannaKumar –

+0

是的..這是mybatis的規範 –

回答

0

@Bean 公共SqlSessionFactoryBean會的SqlSessionFactory(){

SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); 
    sqlSessionFactoryBean.setConfigLocation(applicationContext.getResource("classpath:mybatis.xml")); 
    sqlSessionFactoryBean.setDataSource(dataSource()); 
    return sqlSessionFactoryBean; 
} 
0

試試這個。

SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); 
sessionFactory.setDataSource(dataSource()); 
sessionFactory.setTypeAliasesPackage("com.xxx.basis.domain"); 

SqlSessionFactory factory = sessionFactory.getObject(); 
factory.getConfiguration().setCacheEnabled(true); 
factory.getConfiguration().setUseColumnLabel(true); 
return sessionFactory;