分享

Mybatis整合Druid和H2嵌入式数据库

 昵称13039494 2013-12-28

Mybatis的DataSource和Druid的DataSource不兼容,所以需要一个代理

01package h2test;
02 
03import java.util.Properties;
04 
05import javax.sql.DataSource;
06 
07import org.apache.ibatis.datasource.DataSourceFactory;
08 
09public class DruidDataSourceFactory implements DataSourceFactory {
10    private DataSource dataSource;
11 
12    @Override
13    public DataSource getDataSource() {
14        return this.dataSource;
15    }
16 
17    @Override
18    public void setProperties(final Properties props) {
19        try {
20            this.dataSource = com.alibaba.druid.pool.DruidDataSourceFactory.createDataSource(props);
21        } catch (final RuntimeException e) {
22            throw e;
23        } catch (final Exception e) {
24            throw new RuntimeException("init datasource error", e);
25        }
26    }
27}

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">
04<configuration>
05    <settings>
06        <setting name="lazyLoadingEnabled" value="true"/>
07        <setting name="aggressiveLazyLoading" value="false"/>
08    </settings>
09    <typeAliases>
10        <typeAlias type="h2test.DruidDataSourceFactory"  alias="DRUID" />
11    </typeAliases>
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"/>
23            </dataSource>
24        </environment>
25        <environment id="h2">
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"/>
38            </dataSource>
39        </environment>
40    </environments>
41</configuration>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约