首先在ITEye上面看到一个同标题文章,在此说明,此文并非转载自 http://iintothewind.iteye.com/blog/2069522 ,因为这篇文章根本就是错误的,照着上面做,工程可以跑,但是dataSource根本不是druid的

首先说明一下我使用的各个软件版本:

druid版本:1.0.8

<!-- mysql数据库连接池 pool -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.8</version>
</dependency>

mybatis版本:3.2.8

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>

MyBatis在非Spring环境下第三方DataSource设置  ,代码如下:

mybatis.xml:

<?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="com.chenjun.mysite.common.MyselfDefineDataSourceFactory">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/site-aliyun"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mappings/modules/sys/userDao.xml"/>
</mappers>
</configuration>
MyselfDefineDataSourceFactory是 ,自定义datasourceFactory ,作为type属性给上面的mybatis.xml文件
package com.chenjun.mysite.common;

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

import com.alibaba.druid.pool.DruidDataSource;

public class MyselfDefineDataSourceFactory extends UnpooledDataSourceFactory {
public MyselfDefineDataSourceFactory() {
this.dataSource = new DruidDataSource();
}
}

验证结论:

public class UserDao {
private static final String NAME_SPACE = "com.chenjun.mysite.entity.User";
public User test1(){
User user = new User();
SqlSessionFactory sqlSessionFactory;
try {
sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis.xml"),"userDefine");
SqlSession session = sqlSessionFactory.openSession();
System.out.println("class="+session.getConfiguration().getEnvironment().getDataSource().getClass().getName());
DataSource ds = session.getConfiguration().getEnvironment().getDataSource();
if(ds instanceof DruidDataSource){
System.out.println("Yes");
}else{
System.out.println("No");
}
user = session.selectOne(NAME_SPACE+"."+"test1");
} catch (IOException e) {
e.printStackTrace();
}
return user;
} }

  最后输出

class=com.alibaba.druid.pool.DruidDataSource
Yes
15:55:09.817 [qtp2104354711-23] DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction - Opening JDBC Connection
15:55:09.850 [qtp2104354711-23] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited

这才是集成druid的正确打开方式!!!

MyBatis在非Spring环境下第三方DataSource设置-Druid篇的更多相关文章

  1. Mybatis在非spring环境下配置文件中使用外部数据源(druidDatasource)

    Spring环境下, MyBatis可以通过其本身的增强mybatis-spring提供的org.mybatis.spring.SqlSessionFactoryBean来注入第三方DataSourc ...

  2. 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用

    一.什么是 RestTemplate? RestTemplate是执行HTTP请求的同步阻塞式的客户端,它在HTTP客户端库(例如JDK HttpURLConnection,Apache HttpCo ...

  3. 非Spring环境下使用Mybatis操作数据库的流程

    准备工作 1,  导入mybatis-3.2.7.jar,mysql-connector-5.1.25-bin.jar两个jar包 2,  在数据库中创建一个db_test数据库,库中有一个表为use ...

  4. MyBatis在Spring环境下的事务管理

    MyBatis的设计思想很简单,可以看做是对JDBC的一次封装,并提供强大的动态SQL映射功能.但是由于它本身也有一些缓存.事务管理等功能,所以实际使用中还是会碰到一些问题--另外,最近接触了JFin ...

  5. 七年开发小结MyBatis 在 Spring 环境下的事务管理

    MyBatis的设计思想很简单,可以看做是对JDBC的一次封装,并提供强大的动态SQL映射功能.但是由于它本身也有一些缓存.事务管理等功能,所以实际使用中还是会碰到一些问题——另外,最近接触了JFin ...

  6. Quartz —— Spring 环境下的使用

    一.在 Spring 环境下 Quartz 的使用超级简单. 二.具体使用 1.添加对应的 spring-quartz 的配置文件. 2.新建要执行定时任务的目标类和目标方法,不需要继承 Job 接口 ...

  7. Shiro —— Spring 环境下的使用

    一.使用 1.搭建基础环境 (1)导入 Spring 和 Shiro 的 Jar 包 正常导入 spring jar包 导入日志包 log4j-1.2.15.jar slf4j-api-1.6.1.j ...

  8. Redis(十五)Redis 的一些常用技术(Spring 环境下)

    一.Redis 事务与锁机制 1.Redis的基础事务 在Redis中开启事务的命令是 multi 命令, 而执行事务的命令是 exec 命令.multi 到 exec 命令之间的 Redis 命令将 ...

  9. 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法

    非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...

随机推荐

  1. PHP 浮点型转整型的一个奇怪现象

    起因 最近通过一个学长的题了解php弱类型的时候,发现了一个奇怪的现象. 正文 主要问题在这样一段代码: $c=(int)((0.1+$b)*10); 当$b=0.6,0.8以及其他值的时候都正常 将 ...

  2. myhaits if test判断字符串

    判断参数是否为字符串0 <if test='Type=="0"'><!-- 注意单双引号 --> <include refid="selec ...

  3. 转*SqlSever查询某个表的列名称、说明、备注、注释,类型等

    @原文地址 关键部分如下: ------sqlserver 查询某个表的列名称.说明.备注.类型等 SELECT 表名 then d.name else '' end, 表说明 then isnull ...

  4. idea连接mysql

    https://blog.csdn.net/Golden_soft/article/details/80952243

  5. 4-21 嵌套选择器 、块级元素和内联元素、光标、布局-overflow

    1.嵌套选择器 p{ }: 为所有 p 元素指定一个样式.(默认,,也就是说可以被改变样式) .marked{ }: 为所有 class="marked" 的元素指定一个样式. . ...

  6. 监控服务器配置(三)-----Node_exporter安装配置

    此安装主要是为了监控服务器运行状况 1.下载node_exporter安装包(linux版)到 /opt/minitor/node_exporter . 下载地址:https://download.c ...

  7. docker-2 tomcat

    启动容器命令 docker run -d -p 8080:8080 -v /root/tomcat/webapps:/usr/local/tomcat/webapps -v /root/tomcat/ ...

  8. 获取Control请求路径

    对于多个uri映射到同一个control方法时,需根据不同的uri返回的数据结构进行区分,因此需要再方法体内获取到RequestUri,再对其做相应的判断实现对应的业务逻辑 @Resource pri ...

  9. jquery datatables+MVC+WCF

    view @{ Layout = null;} <!DOCTYPE html><html><head> <title>111</title> ...

  10. maven 在clean package时,出现:找不到符号 [ERROR] 符号: 方法 sqlDdlFilter(java.lang.String) 解决办法

    另一个项目中增加了,sqlDdlFilter 在调用的项目中clean package时,出现 找不到符号[ERROR] 符号: 方法 sqlDdlFilter(java.lang.String) 原 ...