`
wt8414
  • 浏览: 44330 次
  • 性别: Icon_minigender_1
  • 来自: 合肥市
文章分类
社区版块
存档分类
最新评论

在ibatis中使用proxool数据源

阅读更多
ibatis本身并不支持proxool的数据源连接,我们可以通过几种方法实现。
第一:采用spring将ibatis与proxool进行整合,利用spring将proxool数据源注入到sqlmapclient中去,具体配置可在网上找spring+ibatis整合的例子。
我所要说的是采用第二种方式,不依赖spring完全独立,首先我们要自定义一个DataSourceFactory类,这个类必须实现com.ibatis.sqlmap.engine.datasource.DataSourceFactory接口
代码如下:
package com.wang.ibatis;

import java.util.Map;

import javax.sql.DataSource;

import org.logicalcobwebs.proxool.ProxoolDataSource;

import com.ibatis.sqlmap.engine.datasource.DataSourceFactory;

public class ProxoolDataSourceFactory implements DataSourceFactory {
	
	/**
	 * 使用ProxoolDataSource数据源
	 */
	private ProxoolDataSource dataSource; 
	@Override
	public DataSource getDataSource() {
		return dataSource;
	}

	/**
	 * 此方法中实现对ProxoolDataSource类中相关属性的设置
	 */
	@Override
	public void initialize(Map map) {
		dataSource = new ProxoolDataSource();
		dataSource.setDriver((String)map.get("driver"));
		dataSource.setDriverUrl((String)map.get("driverUrl"));
		dataSource.setUser((String)map.get("user"));
		dataSource.setPassword((String)map.get("password"));
		dataSource.setAlias("alias");
		
	}
}

然后在sqlMapConfig.xml文件中这样设置,代码如下:
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

  <!-- Configure a built-in transaction manager.  If you're using an 
       app server, you probably want to use its transaction manager 
       and a managed datasource -->
  <transactionManager type="JDBC" commitRequired="false">
    <dataSource type="com.ufinity.ibatis.ProxoolDataSourceFactory">
      <property name="driver" value="com.mysql.jdbc.Driver"/>
      <property name="driverUrl" value="jdbc:mysql://localhost:3306/mydb"/>
      <property name="user" value="root"/>
      <property name="password" value="root"/>
      <property name="alias" value="default"/>
    </dataSource>
  </transactionManager>

  <!-- List the SQL Map XML files. They can be loaded from the 
       classpath, as they are here (com.domain.data...) -->
  <sqlMap resource="com/ufinity/ibatis/User.xml"/>
  <!-- List more here...
  <sqlMap resource="com/mydomain/data/Order.xml"/>
  <sqlMap resource="com/mydomain/data/Documents.xml"/>
  -->

</sqlMapConfig>

这样就可以正常使用proxool的数据源了。
不过在proxool-0.9.1版本以下有个问题,就必须要把数据用名与密码写到数据库连接URL里面去,这在proxool-0.9.0RC3及以下的版本中的一个BUG,不过在0.9.1的版本中已经修正过来,而0.9.1的版本又有很大家不适应的地方(具体有哪些,我没测试,网上看到的),要想使用0.9.0RC3版本又不想将用户名与密码加入URL中去,我们必须修改源码org.logicalcobwebs.proxool.ProxoolDataSource的registerPool方法,很简单,只需要将cpd.setUser(getUser())与cpd.setPassword(getPassword())两方法放到cpd.setDelegateProperties(delegateProperties)方法后面就可以了,这点在0.9.1的源码中作者有说明。
修改完,请使用jdk1.5进行重新编译, 1.6的javax.sql.DataSource接口继承了java.sql.Wrapper这个只有1.6版本的jdk才有的接口,而此接口的方法并未在ProxoolDataSource类中实现,因此编译是无法通过的。
分享到:
评论
2 楼 harbey 2009-12-08  
好像proxool里配置的数据库连接,可以注入到spring的bean中!

相关推荐

    Spring+Ibatis 访问多个数据源

    下面将详细介绍如何在Spring中配置和使用多个数据源,以及结合Ibatis进行数据访问。 首先,我们需要在`jdbc.properties`文件中配置每个数据源的相关参数,如驱动类名、URL、用户名和密码。在这个例子中,有两个数据...

    装饰模式 切换 ibatis 多数据源

    总结来说,装饰模式在切换iBatis多数据源的应用中,起到了扩展和动态切换的作用,它允许我们在不修改原有数据源实现的基础上,通过组合的方式增加新的功能,实现了在运行时选择不同数据源的目标,同时保持了代码的...

    ibatis 相关使用文档及安装包ibatis 相关使用文档及安装包

    使用iBATIS时,首先需要在项目中引入iBATIS库,然后创建数据库配置文件(如`sqlmap-config.xml`),在此文件中定义数据源和事务管理器。接着,编写SQL Map文件,其中包含具体的SQL查询和存储过程。在Java代码中,...

    ibatis中使用安全的拼接语句,动态查询,大于、小于、等于.doc

    iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...

    ibatis的使用教程

    【Ibatis 框架详解】 Ibatis 是一个基于 Java 的持久层框架,源自于“internet”和“abatis...通过合理的配置和使用,Ibatis 可以有效地帮助开发者实现数据持久化,并与其他主流框架(如Spring)集成,提高开发效率。

    如何在spring框架中解决多数据源的问题

    ### 如何在Spring框架中解决多数据源的问题 #### 问题背景及挑战 在实际的软件开发过程中,尤其是在企业级应用开发中,经常会遇到需要同时处理多个数据源的情况。例如,一个应用程序可能需要同时访问Oracle数据库...

    ibatis使用例子,源代码

    这可能是一个简单的项目,旨在帮助开发者理解如何在实际开发中使用iBATIS进行对象关系映射(ORM)。 描述中的"ibatis 代码 例子 项目 or-mapping"进一步强调了这个项目的核心内容,即通过iBATIS实现ORM。ORM是将...

    iBatis教程ppt及实例源代码

    总之,iBatis教程PPT和实例源代码将帮助你理解如何在实际项目中使用iBatis进行数据库操作,包括配置、SQL映射、动态SQL、Mapper接口的使用等。通过实践这些例子,你可以更好地掌握iBatis的精髓,提高开发效率,并为...

    SSM多数据源同包

    "SSM多数据源同包"指的是在同一个项目或应用程序中,使用SSM框架来管理并同时操作多个数据源。 首先,我们来看Spring框架的角色。Spring作为核心容器,负责管理应用对象,提供依赖注入(DI)和面向切面编程(AOP)...

    ibatis简易使用 ibatis简易使用 ibatis简易使用

    - **`sql-map-config.xml`**:这是iBATIS的全局配置文件,定义了事务管理器和数据源。`transactionManager`标签设置了事务管理类型为JDBC,`dataSource`标签内配置了数据库连接信息,包括驱动类、连接URL、用户名和...

    iBATIS in action 书和源代码

    首先,书中详细讲解了iBATIS的基本概念和架构,包括SqlMapConfig.xml配置文件的作用,它是iBATIS的核心配置,定义了数据源、事务管理器等关键元素。此外,还会介绍Mapper接口和XML映射文件,它们是定义SQL语句和结果...

    ibatis3应用实例(oracle数据库)

    1. 数据源配置:在Ibatis3中,我们需要配置Oracle的JDBC驱动,并指定数据库连接信息,如URL、用户名和密码等。 2. 映射文件:通过XML映射文件,定义SQL语句及其结果集映射。对于Oracle的特殊语法,如PL/SQL块,...

    ibatis官方中文文档

    iBatis的核心配置文件(mybatis-config.xml)定义了全局属性,包括数据源、事务管理器、类型别名、插件等。同时,每个Mapper XML文件则包含了具体的SQL映射,如插入、更新、删除和查询语句。 3. **SQL映射**: ...

    .net中使用iBATIS的小例子

    在.NET中使用iBATIS时,首先需要安装iBATIS.NET库。可以通过NuGet包管理器或者直接下载源码编译来获取。在VS2008项目中,添加对iBATIS.NET的引用,这样就可以开始配置和使用了。 接着,我们看压缩包内的"数据库.txt...

    ibatis 框架源码剖析 书籍源代码 带有详尽注释

    7. DAO(数据访问对象):DAO层是iBATIS在应用中的常见使用模式,它封装了与数据库的交互逻辑,提供了一组接口供业务层调用,将数据操作与业务逻辑解耦。 8. MyBatis:iBATIS在2010年停止开发,随后发展成为MyBatis...

    ibatis实现数据的操作

    在使用Ibatis时,首先需要配置数据源,这是通过DataSource接口实现的,常见的实现有Apache的DBCP和C3P0等。接着,我们需要创建SqlSessionFactory,它是Ibatis的核心工厂类,用于创建SqlSession对象。SqlSession对象...

    ibatis 使用手册

    开发指南会深入讲解如何初始化iBatis环境,包括设置配置文件、创建SqlMap文件、设计Mapper接口以及如何在Java代码中使用这些组件。此外,还会介绍如何处理结果集、执行批量操作、使用缓存机制等高级特性。 **iBatis...

    ibatis总结 ibatis ibatis ibatis ibatis

    Ibatis的配置文件`sqlmapConfig.xml`包含了数据源、事务管理器、SqlSessionFactory等核心设置。在Java代码中,可以使用如下的方式加载配置文件: ```java String resource = ...

Global site tag (gtag.js) - Google Analytics