zoukankan      html  css  js  c++  java
  • Ibatis—sqlMapConfig.xml配置文件详解

    • <? xml version="1.0" encoding="UTF-8" ?>  
    • <! DOCTYPE sqlMapConfig   
    • PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"   
    • "http://www.ibatis.com/dtd/sql-map-config-2.dtd" >  
    • < sqlMapConfig >  
    •    < settings    
    •     cacheModelsEnabled ="true"  <!--是否启用缓存机制-- >  
    •    lazyLoadingEnabled="true"  <!-- 是否启用延迟加载机制 -->  
    •    enhancementEnabled="true"  <!-- 是否启用字节码增强机制 -->  
    •    errorTracingEnabled="true"  <!-- 是否启用错误处理机制 -->  
    •    maxRequests="32"  <!-- 最大并发请求数 -->  
    •    maxSessions="10"  <!-- 最大Session数 -->  
    •    maxTransactions="5"  <!-- 最大并发事务数 -->  
    •    useStatementNamespaces="true"/>  <!-- 是否启用名称空间 -->  
    •    < transactionManager  type ="JDBC" >   <!-- 定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL) -->  
    •     < dataSource  type ="SIMPLE" >   <!-- type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI) -->  
    •         < 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" />   <!-- 线程允许等待的最大时间 -->  
    •        
    •     </ dataSource >  
    •   </ transactionManager >  
    •   < sqlMap  resource ="com/wyq/map/userMap.xml" />  
    • </ sqlMapConfig >  

    一 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配置

    < transctionManager  type ="JDBC" >  

         < dataSource  type ="JNDI" >  

               < property  name ="DataSource"  value ="java:comp/env/jdbc/myDataSource" />  

         </ dataSource >  

    </ transctionManager >  

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

     

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

    < transctionManager  type ="JTA" >  

         < property  name ="UserTransaction"  value ="java:/ctx/con/UserTransaction" />  

         < dataSource  type ="JNDI" >  

               < property  name ="DataSource"  value ="java:comp/env/jdbc/myDataSource" />  

          </ dataSource >  

    </ transctionManager >  

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

       

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

  • 相关阅读:
    unexpected inconsistency;run fsck manually esxi断电后虚拟机启动故障
    centos 安装mysql 5.7
    centos 7 卸载mysql
    centos7 在线安装mysql5.6,客户端远程连接mysql
    ubuntu 14.04配置ip和dns
    centos7 上搭建mqtt服务
    windows eclipse IDE打开当前类所在文件路径
    git 在非空文件夹clone新项目
    eclipse中java build path下 allow output folders for source folders 无法勾选,该如何解决 eclipse中java build path下 allow output folders for source folders 无法勾选,
    Eclipse Kepler中配置JadClipse
  • 原文地址:https://www.cnblogs.com/ataosoft/p/sqlMapConfig.html
Copyright © 2011-2022 走看看