`
goodguyzl
  • 浏览: 47291 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Ibatis 数据源的动态配置

阅读更多

      项目中有个需求,要将一个源数据库的记录迁移到目的数据库,目的端数据库的IP,端口,数据库名,用户名和密码都是从一个配置表里临时查出来的,这就需要在运行时去配置Ibatis的sql-map-config.xml的数据源.

      Google到Ibatis支持的数据源配置方式其中一种就是通过property文件读取连接配置信息.

     sql-map-config.xml中代码如下: 

 

<sqlMapConfig>

  
<settings      
cacheModelsEnabled="true"     
enhancementEnabled="true"     
lazyLoadingEnabled="true"     
maxRequests="32"     
maxSessions="10"     
maxTransactions="5"     
useStatementNamespaces="false" 
/>  

<properties resource="database.properties"/>  
<transactionManager type="JDBC">   
  <dataSource type="SIMPLE">   
  <property value="${driver}" name="JDBC.Driver"/>   
  <property value="${url}" name="JDBC.ConnectionURL"/>   
  <property value="${username}" name="JDBC.Username"/>   
  <property value="${password}" name="JDBC.Password"/>   
  </dataSource>   
</transactionManager>  

 

 

     之前把<properties resource="config.properties"/>  放到<setting>标签和<transactionManager >之间, 得到了一个XML解析错误, 提示:

     Exception in thread "main" java.lang.RuntimeException: Error occurred.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: org.xml.sax.SAXParseException: The content of element type "sqlMapConfig" must match "(properties?,settings?,resultObjectFactory?,typeAlias*,typeHandler*,transactionManager?,sqlMap+)+".
 at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:49)

 

看了半天才晓得标签是有顺序的, 必须按错误消息的的顺序写标签才行.  汗......

 

config.properties里的配置:

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.56.101:1521:XE
username=practice
password=practice

  

 

读取sql-map-config.xml的java代码不变:

java.io.Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader ("misp/migrate/sql-map-config.xml");
SqlMapClient sqlClient = SqlMapClientBuilder.buildSqlMapClient(reader);

 

当然, 在读取sql-map-config.xml之前,应该先将连接配置用Properties类写入到config.properties文件里去.

 

 

 

 

 

 

分享到:
评论

相关推荐

    Spring3 整合MyBatis3 配置多数据源动态选择SqlSessionFactory详细教程

    Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 详细教程 本教程主要介绍了 Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 的详细教程。下面将详细介绍如何实现 Spring 整合 ...

    ibatis用xml配置文件配置使用

    1. **创建XML配置文件**:在项目中创建一个名为`mybatis-config.xml`的文件,这是iBATIS的全局配置文件,用于定义数据源、事务管理器等。同时,也需要为每个Mapper创建单独的XML文件,如`UserMapper.xml`,其中包含...

    装饰模式 切换 ibatis 多数据源

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

    Spring+ibatis 保留ibatis事务的配置

    给定的XML配置文件展示了如何在Spring中配置ibatis数据源以及ibatis事务管理器。首先,注释掉的`BasicDataSource`部分是用来配置数据源的,这里没有启用,而是选择了使用JNDI数据源。实际生产环境中,通常会使用...

    Ibatis的应用和配置

    这个文件中包含了数据源、事务管理器、环境配置、Mappers等重要元素的定义。例如: ```xml ``` 在这个配置文件中,我们定义了开发环境的数据源和事务管理器,并指定了Mapper文件的...

    IBatis.net 配置各种数据库

    全局配置文件SqlMapConfig.xml是IBatis的入口,用于配置数据源、事务管理器等信息。例如,对于MySQL数据库,可以在SqlMapConfig.xml中添加如下配置: ```xml , iBatisNet.DataProviders.MySql"/&gt; ;user=...

    ibatis 配置文件详解

    通过上述解析,我们可以看出ibatis配置文件在ibatis框架中的核心地位,它不仅定义了数据源和事务管理策略,还指定了SQL映射文件的位置,使得ibatis能够根据配置正确地执行SQL语句,完成数据库操作。

    SPRING IBATIS 保留IBATIS事务的配置方式

    -- 数据源配置 --&gt; &lt;!-- JNDI数据源配置 --&gt; &lt;value&gt;java:/oracle/payment ``` #### 配置iBatis SqlMapClient 接下来配置了iBatis的SqlMapClient,这里使用的是Spring的`...

    ibatis3应用实例(oracle数据库)

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

    ibatis源代码

    2. **Configuration**: 配置对象,存储了所有关于Ibatis的配置信息,包括数据源、映射文件、事务管理等。 3. **Mapper**: Mapper接口和Mapper XML 文件,定义了SQL操作。接口方法对应SQL的执行,XML文件中包含具体...

    iBATIS开放源代码

    1. **SqlMapConfig.xml**:这是整个iBATIS系统的配置文件,包含了数据源、事务管理器以及其他相关设置。开发者在此文件中定义数据库连接信息,以及映射文件的位置。 2. **Mapper接口/SqlMap.xml**:Mapper接口是...

    Spring+Struts+ibatis下配置数据读写分离及事务(一)

    在数据读写分离的环境中,iBATIS可以通过配置不同的数据源,分别连接读库和写库。Spring可以管理和切换这些数据源,使得在执行写操作时使用写库,而在读操作时使用读库。 为了实现上述功能,我们需要集成和配置相关...

    spring+ibatis配置实例

    2. `sqlMapConfig.xml`:iBatis的配置文件,定义了数据源、事务管理器以及映射文件的位置。 标签中提到的`springmvc`是Spring的一个模块,Spring MVC提供了模型-视图-控制器架构,用于处理HTTP请求和响应。配置...

    ibatis配置文件信息

    - **dataSource**:数据源配置,类型为`SIMPLE`,表示简单的数据源配置。 - **sqlMap**:指定SQL映射文件的位置,在本例中指向`Student.xml`。 ##### 3. Student.xml 文件 `Student.xml` 文件是具体的SQL映射文件...

    Ibatis源代码(ibatis-src.zip)

    Ibatis的配置文件(如`mybatis-config.xml`)是整个框架的核心配置,它定义了数据源、事务管理器、映射文件的位置等信息。`Mapper XML`文件则包含了SQL语句和结果映射,提供了灵活的SQL定制能力。此外,Ibatis还支持...

    ibatis配置文件

    这里的`&lt;sqlMapConfig&gt;`是配置文件的根元素,其中包含了一系列的设置和数据源配置。 ### 设置部分 配置文件中的`&lt;settings&gt;`标签包含了多个关键参数,它们控制着ibatis的行为特性: - `cacheModelsEnabled`: 控制...

    ibatis配置文件模板

    这是Ibatis的核心配置文件,它定义了数据源、事务管理器、SqlSessionFactory以及SqlMapClient等关键组件。主要元素包括: - `&lt;transactionManager&gt;`:定义事务管理器,通常使用JDBC类型的事务管理器。 - `...

    ibatis相关配置

    -- 数据源配置 --&gt; ``` 2. **映射文件(mapper.xml)** 映射文件是定义SQL语句的地方,包括插入、更新、删除、查询等操作。比如: ```xml &lt;!DOCTYPE mapper PUBLIC "-//mybatis.org//...

Global site tag (gtag.js) - Google Analytics