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 UserDefineDataSourceFactoryextends 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

 



 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值