sqlMapConfig

来源:互联网 发布:淘宝开店规定 编辑:程序博客网 时间:2024/06/06 17:45

 

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfigPUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN""http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig><!--cacheModelsEnabled 是否启用SqlMapClient上的缓存机制。建议设为"true"enhancementEnabled 是否针对POJO启用字节码增强机制以提升getter/setter的调用效能,避免使用Java Reflect所带来的性能开销。同时,这也为Lazy Loading带来了极大的性能提升。建议设为"true"errorTracingEnabled 是否启用错误日志,在开发期间建议设为"true"以方便调试lazyLoadingEnabled 是否启用延迟加载机制,建议设为"true"maxRequests 最大并发请求数(Statement并发数)maxTransactions 最大并发事务数maxSessions 最大Session 数。即当前最大允许的并发SqlMapClient数。maxSessions设定必须介于maxTransactions和maxRequests之间,即maxTransactions<maxSessions=<maxRequestsuseStatementNamespaces 是否使用Statement命名空间。这里的命名空间指的是映射文件中,sqlMap节点的namespace属性,如在上例中针对t_user表的映射文件sqlMap节点:<sqlMap namespace="User">这里,指定了此sqlMap节点下定义的操作均从属于"User"命名空间。在useStatementNamespaces="true"的情况下,Statement调用需追加命名空间,如:sqlMap.update("User.updateUser",user);否则直接通过Statement名称调用即可,如:sqlMap.update("updateUser",user);但请注意此时需要保证所有映射文件中,Statement定义无重名。--><settings cacheModelsEnabled="true" enhancementEnabled="true"lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="50"maxSessions="20" maxTransactions="10" useStatementNamespaces="true" /><!--transactionManager 节点定义了ibatis 的事务管理器,目前提供了以下几种选择:? JDBC通过传统JDBC Connection.commit/rollback实现事务支持。? JTA使用容器提供的JTA服务实现全局事务管理。? EXTERNAL外部事务管理,如在EJB中使用ibatis,通过EJB的部署配置即可实现自动的事务管理机制。此时ibatis 将把所有事务委托给外部容器进行管理。此外,通过Spring 等轻量级容器实现事务的配置化管理也是一个不错的选择。关于结合容器实现事务管理,参见“高级特性”中的描述。--><!--JDBC.Driver JDBC 驱动。如:org.gjt.mm.mysql.DriverJDBC.ConnectionURL 数据库URL。如:jdbc:mysql://localhost/sample如果用的是SQLServer JDBC Driver,需要在url后追加SelectMethod=Cursor以获得JDBC事务的多Statement支持。JDBC.Username 数据库用户名JDBC.Password 数据库用户密码Pool.MaximumActiveConnections 数据库连接池可维持的最大容量。Pool.MaximumIdleConnections 数据库连接池中允许的挂起(idle)连接数。--><!--Pool.MaximumCheckoutTime 数据库联接池中,连接被某个任务所允许占用的最大时间,如果超过这个时间限定,连接将被强制收回。(毫秒)Pool.TimeToWait 当线程试图从连接池中获取连接时,连接池中无可用连接可供使用,此时线程将进入等待状态,直到池中出现空闲连接。此参数设定了线程所允许等待的最长时间。(毫秒)Pool.PingQuery 数据库连接状态检测语句。某些数据库在连接在某段时间持续处于空闲状态时会将其断开。而连接池管理器将通过此语句检测池中连接是否可用。检测语句应该是一个最简化的无逻辑SQL。如“select 1 from t_user”,如果执行此语句成功,连接池管理器将认为此连接处于可用状态。Pool.PingEnabled 是否允许检测连接状态。Pool.PingConnectionsOlderThan对持续连接时间超过设定值(毫秒)的连接进行检测。Pool.PingConnectionsNotUsedFor对空闲超过设定值(毫秒)的连接进行检测。DBCP:参数 描述Pool.MaximumWait 当线程试图从连接池中获取连接时,连接池中无可用连接可供使用,此时线程将进入等待状态,直到池中出现空闲连接。此参数设定了线程所允许等待的最长时间。(毫秒)Pool.ValidationQuery 数据库连接状态检测语句。某些数据库在连接在某段时间持续处于空闲状态时会将其断开。而连接池管理器将通过此语句检测池中连接是否可用。检测语句应该是一个最简化的无逻辑SQL。如“select 1 from t_user”,如果执行此语句成功,连接池管理器将认为此连接处于可用状态。Pool.LogAbandoned 当数据库连接被废弃时,是否打印日志。Pool.RemoveAbandonedTimeout 数据库连接被废弃的最大超时时间Pool.RemoveAbandoned 当连接空闲时间超过RemoveAbandonedTimeout时,是否将其废弃。--><!-- Configure a built-in transaction manager. If you're using anapp server, you probably want to use its transaction managerand a managed datasource --><!-- transactionManager type="JDBC" commitRequired="false"><dataSource type="SIMPLE"><property name="JDBC.Driver" value="com.mysql.jdbc.Driver" /><property name="JDBC.ConnectionURL"value="jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8" /><property name="JDBC.Username" value="root" /><property name="JDBC.Password" value="root" /></dataSource></transactionManager--><!--JNDI由于大部分配置是在应用服务器中进行,因此ibatis中的配置相对简单,下面是分别使用JDBC和JTA事务管理的JDNI配置:使用JDBC事务管理的JNDI DataSource配置<transactionManager type="JDBC" ><dataSource type="JNDI"><property name="DataSource" value="java:comp/env/jdbc/myDataSource"/></dataSource></transactionManager><transactionManager type="JTA" ><dataSource type="JNDI"><property name="UserTransaction" value="java:/ctx/con/UserTransaction"/><property name="DataSource" value="java:comp/env/jdbc/myDataSource"/></dataSource></transactionManager>--><!-- List the SQL Map XML files. They can be loaded from theclasspath把 SQL Map xml文件列在下面,这些文件能够从classpath中加载进来。--><sqlMap resource="../conf/dao/lminfo_SqlMap.xml"/><sqlMap resource="../conf/dao/tyinfo_SqlMap.xml"/></sqlMapConfig>