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类中实现,因此编译是无法通过的。
分享到:
相关推荐
下面将详细介绍如何在Spring中配置和使用多个数据源,以及结合Ibatis进行数据访问。 首先,我们需要在`jdbc.properties`文件中配置每个数据源的相关参数,如驱动类名、URL、用户名和密码。在这个例子中,有两个数据...
总结来说,装饰模式在切换iBatis多数据源的应用中,起到了扩展和动态切换的作用,它允许我们在不修改原有数据源实现的基础上,通过组合的方式增加新的功能,实现了在运行时选择不同数据源的目标,同时保持了代码的...
使用iBATIS时,首先需要在项目中引入iBATIS库,然后创建数据库配置文件(如`sqlmap-config.xml`),在此文件中定义数据源和事务管理器。接着,编写SQL Map文件,其中包含具体的SQL查询和存储过程。在Java代码中,...
iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...
【Ibatis 框架详解】 Ibatis 是一个基于 Java 的持久层框架,源自于“internet”和“abatis...通过合理的配置和使用,Ibatis 可以有效地帮助开发者实现数据持久化,并与其他主流框架(如Spring)集成,提高开发效率。
### 如何在Spring框架中解决多数据源的问题 #### 问题背景及挑战 在实际的软件开发过程中,尤其是在企业级应用开发中,经常会遇到需要同时处理多个数据源的情况。例如,一个应用程序可能需要同时访问Oracle数据库...
这可能是一个简单的项目,旨在帮助开发者理解如何在实际开发中使用iBATIS进行对象关系映射(ORM)。 描述中的"ibatis 代码 例子 项目 or-mapping"进一步强调了这个项目的核心内容,即通过iBATIS实现ORM。ORM是将...
总之,iBatis教程PPT和实例源代码将帮助你理解如何在实际项目中使用iBatis进行数据库操作,包括配置、SQL映射、动态SQL、Mapper接口的使用等。通过实践这些例子,你可以更好地掌握iBatis的精髓,提高开发效率,并为...
"SSM多数据源同包"指的是在同一个项目或应用程序中,使用SSM框架来管理并同时操作多个数据源。 首先,我们来看Spring框架的角色。Spring作为核心容器,负责管理应用对象,提供依赖注入(DI)和面向切面编程(AOP)...
- **`sql-map-config.xml`**:这是iBATIS的全局配置文件,定义了事务管理器和数据源。`transactionManager`标签设置了事务管理类型为JDBC,`dataSource`标签内配置了数据库连接信息,包括驱动类、连接URL、用户名和...
首先,书中详细讲解了iBATIS的基本概念和架构,包括SqlMapConfig.xml配置文件的作用,它是iBATIS的核心配置,定义了数据源、事务管理器等关键元素。此外,还会介绍Mapper接口和XML映射文件,它们是定义SQL语句和结果...
1. 数据源配置:在Ibatis3中,我们需要配置Oracle的JDBC驱动,并指定数据库连接信息,如URL、用户名和密码等。 2. 映射文件:通过XML映射文件,定义SQL语句及其结果集映射。对于Oracle的特殊语法,如PL/SQL块,...
iBatis的核心配置文件(mybatis-config.xml)定义了全局属性,包括数据源、事务管理器、类型别名、插件等。同时,每个Mapper XML文件则包含了具体的SQL映射,如插入、更新、删除和查询语句。 3. **SQL映射**: ...
在.NET中使用iBATIS时,首先需要安装iBATIS.NET库。可以通过NuGet包管理器或者直接下载源码编译来获取。在VS2008项目中,添加对iBATIS.NET的引用,这样就可以开始配置和使用了。 接着,我们看压缩包内的"数据库.txt...
7. DAO(数据访问对象):DAO层是iBATIS在应用中的常见使用模式,它封装了与数据库的交互逻辑,提供了一组接口供业务层调用,将数据操作与业务逻辑解耦。 8. MyBatis:iBATIS在2010年停止开发,随后发展成为MyBatis...
在使用Ibatis时,首先需要配置数据源,这是通过DataSource接口实现的,常见的实现有Apache的DBCP和C3P0等。接着,我们需要创建SqlSessionFactory,它是Ibatis的核心工厂类,用于创建SqlSession对象。SqlSession对象...
开发指南会深入讲解如何初始化iBatis环境,包括设置配置文件、创建SqlMap文件、设计Mapper接口以及如何在Java代码中使用这些组件。此外,还会介绍如何处理结果集、执行批量操作、使用缓存机制等高级特性。 **iBatis...
Ibatis的配置文件`sqlmapConfig.xml`包含了数据源、事务管理器、SqlSessionFactory等核心设置。在Java代码中,可以使用如下的方式加载配置文件: ```java String resource = ...