jdbc.properties
#do Oracle JDBC
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:你的数据库
jdbc.username=
jdbc.password=
jdbc.dialect=org.hibernate.dialect.OracleDialect
数据库的连接
@Configuration
@EnableTransactionManagement
@PropertySource(value = { "classpath:jdbc.properties" })
public class MyBatisConfig implements TransactionManagementConfigurer{
@Value("${jdbc.url}")
private String Url;
@Value("${jdbc.driverClassName}")
private String DriverClassName;
@Value("${jdbc.username}")
private String Username;
@Value("${jdbc.password}")
private String Password;
@Bean(destroyMethod = "close")
@Primary
public DataSource mysqlDataSource() throws Exception {
BoneCPDataSource boneCPDataSource = new BoneCPDataSource();
// 数据库驱动
boneCPDataSource.setDriverClass(DriverClassName);
// 相应驱动的jdbcUrl
boneCPDataSource.setJdbcUrl(Url);
// 数据库的用户名
boneCPDataSource.setUsername(Username);
// 数据库的密码
boneCPDataSource.setPassword(Password);
// 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0
boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
// 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0
boneCPDataSource.setIdleMaxAgeInMinutes(30);
// 每个分区最大的连接数
boneCPDataSource.setMaxConnectionsPerPartition(10);
// 每个分区最小的连接数
boneCPDataSource.setMinConnectionsPerPartition(2);
boneCPDataSource.setIdleConnectionTestPeriodInSeconds(30);
boneCPDataSource.setConnectionTestStatement(" SELECT 1 FROM DUAL ");
return boneCPDataSource;
}
@Bean(name="mysqlSqlSessionFactoryBean")
@Primary
public SqlSessionFactoryBean mysqlSqlSessionFactoryBean() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(mysqlDataSource());
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:mybatis/mappers/*.xml"));
return sqlSessionFactoryBean;
}
public PlatformTransactionManager annotationDrivenTransactionManager() {
DataSourceTransactionManager mysql_dtm = null;
try {
mysql_dtm = new DataSourceTransactionManager(mysqlDataSource());
} catch (Exception e) {
e.printStackTrace();
}
ChainedTransactionManager ctm = new ChainedTransactionManager(mysql_dtm);
return ctm;
}
}