`
gaojingsong
  • 浏览: 1155102 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Mybatis自定义DataSource使用druid】

阅读更多

一、mybatis配置文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <environments default="userDefine">

        <environment id="userDefine">

            <transactionManager type="JDBC" />

            <!-- 配置数据库连接信息 -->

            <dataSource type="cn.com.ibatisdemo.ibatisdemo.UserDefineDataSourceFactory">

                <property name="driver" value="com.mysql.jdbc.Driver" />

                <property name="url" value="jdbc:mysql://localhost:3306/db1" />

                <property name="username" value="root" />

                <property name="password" value="root" />

                 <!-- 初始化连接大小 

                    <property name="initialSize" value="0" />-->

                   <!-- 连接池最大使用连接数量-->

                   <property name="maxActive" value="20" /> 

                 <!-- 连接池最小空闲 -->

                    <property name="minIdle" value="0" />

            </dataSource>

        </environment>

    </environments>

      <mappers>

        <mapper resource="sql.xml"/>

    </mappers>

</configuration>

 

二、自定义数据源的两种写法

自定义数据源整合阿里巴巴温少的druid数据库连接池

方案一:

extends DruidDataSourceFactory implements DataSourceFactory

方案二:

extends UnpooledDataSourceFactory

 

package cn.com.ibatisdemo.ibatisdemo;

 

import java.util.Map;

import java.util.Properties;

 

import javax.sql.DataSource;

 

import org.apache.ibatis.datasource.DataSourceFactory;

import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;

 

import com.alibaba.druid.pool.DruidDataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

 

public class UserDefineDataSourceFactory extends DruidDataSourceFactory implements DataSourceFactory{

protected Properties properties;

@Override

public void setProperties(Properties props) {

this.properties= props;

}

@Override

public DataSource getDataSource() {

try {

return  createDataSource(properties);

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

 

} /*extends UnpooledDataSourceFactory {

protected DataSource dataSource;

public UserDefineDataSourceFactory() {

this.dataSource = new DruidDataSource();

}

}*/

 

 测试代码:

package cn.com.ibatisdemo.ibatisdemo;

 

import java.io.IOException;

import java.io.Reader;

 

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

 

import com.alibaba.druid.pool.DruidDataSourceFactory;

 

public class TestDruidDemo {

 

/**

* @param args

* @throws Exception

*/

public static void main(String[] args) throws Exception {

String resource = "conf.xml";

// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)

Reader reader = Resources.getResourceAsReader(resource);

// 构建sqlSession的工厂

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()

.build(reader,"userDefine");

 

SqlSession session = sessionFactory.openSession();

System.out.println(session);

session = sessionFactory.openSession();

System.out.println(session);

 

 

DruidDataSourceFactory f;

}

 

}

 

三、测试结果

方案一:

extends DruidDataSourceFactory implements DataSourceFactory


 方案二:

extends UnpooledDataSourceFactory

 



 

 

 

 

  • pom.rar (758 Bytes)
  • 下载次数: 26
  • 大小: 49 KB
  • 大小: 56.8 KB
1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics