sqlMapConfig.xml配置文件详解

sqlMapConfig.xml配置文件详解: 

Xml代码 复制代码


< sqlMapConfig >
   < settings 
    cacheModelsEnabled ="true"  
   enhancementEnabled="true"  
   errorTracingEnabled="true"  
   maxRequests="32"  
   maxSessions="10"  
   maxTransactions="5"  
   useStatementNamespaces="true"/>  
   < transactionManager  type ="JDBC" >   
    < dataSource  type ="SIMPLE" >   
        < property  name ="JDBC.Driver"  value ="com.mysql.jdbc.Driver" />
        < property  name ="JDBC.ConnectionURL"  value ="jdbc:mysql://localhost/test" />
        < property  name ="JDBC.Username"  value ="root" />
        < property  name ="JDBC.Password"  value ="wyq" />
        < property  name ="Pool.MaximumActiveConnections"  value ="10"   />   
        < property  name ="Pool.MaximumIdleConnections"  value ="5" />   
        < property  name ="Pool.MaximumCheckoutTime"  value ="120000" />   
        < property  name ="TimeToWait"  value ="500" />   
    
    
  
  < sqlMap  resource ="com/wyq/map/userMap.xml" />

    sqlMap节点指定了映射文件的位置, 配置文件中可以定义多个sqlMap元素,以指定项目内所包含的所有映射文件.

 

   元素的配置,它提供了允许在主配置文件之外的一个“名值对”列表,可以将其中的配置信息加载进来,而这些配置信息可以放在任何一个地方。使用properties元素,其中有两个属性,分别是:resource和url。
    使用resource属性时,类加载器会从类路径开始定位该资源;而使用url属性时,则是用java.net.URL类来处理的,提供一个有效的URL即可。之前的示例中,我们使用了resource属性来配置数据库连接信息,如:

 

Java代码 复制代码
  1. "jdbc.properties" />  

 而在jdbc.properties中,我们配置了数据库的驱动属性,连接url,用户名和密码,这样它们就可以被properties元素加载进来,使用起来非常方便。而properties配置文件中是以“名值对”的方式存储的,那么我们使用名称即可引用,这是很多人都熟悉的语法,比如:${driver}就能获取到com.mysql.jdbc.Driver,

 

一、 transactionManager节点

transactionManagerab 定义了ibatis的事务管理器,目前提供了以下几种选择:


1)  JDBC
                    通过传统JDBC Connection.commit/rollback实现事务支持.
2)  JTA
                   使用容器提供的JTA服务实现全局事务管理.
3)  EXTERNAL
                 外部事务管理,如在EJB中使用ibatis,通过EJB的部署配置即可实现自动的事务管理机制.此时ibatis将把所有事务委托给外部容器进行管理.此外,通过Spring等轻量级容量实现事务的配置化管理也是一个不错的选择. 

 dataSource 节点

dataSource 从属于 transactionManager, 用于设定ibatis运行期使用DataSource属性.

    type 属性: dataSource 元素的 type 属性指定了 dataSource 的实现类型.可选项目:

1)  SIMPLE:

SIMPLE 是 ibatis 内置的 dataSource 实现,其中实现了一个简单的数据库连接池机制,对应 ibatis 实现类为

com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory.

JDBC 使用 数据库自己的事务(局部事务),connect.beginTranstion(), connect.commit()等.

2)  DBCP

基于Apache DBCP连接池组件实现的DataSource封装,当无容器提供DataSource服务时,建议使用该选项,对应ibatis实现类为

com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory.

JTA : 使用jta 事务管理器管理事务(全局事务),使用userTranstion对象.

3)  JNDI

使用J2EE容器提供的DataSource实现, DataSource将通过指定的JNDI Name从容器中获取.对应ibatis实现类为

com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory.

Ibatis 不控制事务,事务交由外部控制,一般在CTM,或spring托管事务中使用. 


JNDI的配置大部分都在应用服务器中进行,所以在ibatis中的配置相对简单

 

(1)jdbc事务控制的JNDI配置

  

Xml代码 复制代码
< transctionManager  type ="JDBC" >
     < dataSource  type ="JNDI" >
           < property  name ="DataSource"  value ="java:comp/env/jdbc/myDataSource" />
     

 

 

 

(2)JTA事务控制的JNDI配置

  

Xml代码 复制代码
< transctionManager  type ="JTA" >
     < property  name ="UserTransaction"  value ="java:/ctx/con/UserTransaction" />
     < dataSource  type ="JNDI" >
           < property  name ="DataSource"  value ="java:comp/env/jdbc/myDataSource" />
      

 

 

你可能感兴趣的:(IBatis)