Mybatis的DataSource和Druid的DataSource不兼容,所以需要一个代理
03 | import java.util.Properties; |
05 | import javax.sql.DataSource; |
07 | import org.apache.ibatis.datasource.DataSourceFactory; |
09 | public class DruidDataSourceFactory implements DataSourceFactory { |
10 | private DataSource dataSource; |
13 | public DataSource getDataSource() { |
14 | return this .dataSource; |
18 | public void setProperties( final Properties props) { |
20 | this .dataSource = com.alibaba.druid.pool.DruidDataSourceFactory.createDataSource(props); |
21 | } catch ( final RuntimeException e) { |
23 | } catch ( final Exception e) { |
24 | throw new RuntimeException( "init datasource error" , e); |
Mybatis配置文件Configuration.xml
01 | <? xml version = "1.0" encoding = "UTF-8" ?> |
02 | <!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN" |
03 | "http:///dtd/mybatis-3-config.dtd"> |
06 | < setting name = "lazyLoadingEnabled" value = "true" /> |
07 | < setting name = "aggressiveLazyLoading" value = "false" /> |
10 | < typeAlias type = "h2test.DruidDataSourceFactory" alias = "DRUID" /> |
12 | < environments default = "h2" > |
13 | < environment id = "derby" > |
14 | < transactionManager type = "JDBC" /> |
15 | < dataSource type = "DRUID" > |
16 | < property name = "url" value = "jdbc:derby:data/helloDB" /> |
17 | <!-- <property name="initialSize" value="2"/> --> |
18 | <!-- <property name="minIdle" value="4"/> --> |
19 | < property name = "removeAbandoned" value = "true" /> |
20 | < property name = "poolPreparedStatements" value = "true" /> |
21 | < property name = "validationQuery" value = "values 1" /> |
22 | < property name = "filters" value = "stat" /> |
26 | < transactionManager type = "JDBC" /> |
27 | < dataSource type = "DRUID" > |
28 | < property name = "driverClassName" value = "org.h2.Driver" /> |
29 | < property name = "url" value = "jdbc:h2:file:db/helloDB;IFEXISTS=TRUE;CIPHER=XTEA;FILE_LOCK=SOCKET" /> |
30 | < property name = "username" value = "admin" /> |
31 | < property name = "password" value = "admin" /> |
32 | <!-- <property name="initialSize" value="2"/> --> |
33 | <!-- <property name="minIdle" value="4"/> --> |
34 | < property name = "removeAbandoned" value = "true" /> |
35 | < property name = "poolPreparedStatements" value = "true" /> |
36 | < property name = "validationQuery" value = "select 1" /> |
37 | < property name = "filters" value = "stat" /> |
|