1.典型配置文件
2.解析
(1)properties节点
用来指定配置文件的位置,这样的话就可以在本配置文件中使用${属性名}的方式调用了
(2)settings节点
cacheModelsEnabled:是否启用SQLMapClient上的缓存机制。
enhancementEnabled:是否针对pojo启用字节码增强getter/setter的调用效能,避免反射所带来的性能开销。同时,也为lazy-loading带来提升
errorTracingEnabled:是否启用错误日志,在开发期间建议设置为true,方便调试
lazyLoadingEnabled:是否启用延迟加载机制,一般设置为true
maxRequests:最大并发请求数(Statement并发数)
maxTransactions:最大并发事务数
maxSession:最大并发SQLMapClient数
useStatementNameSpaces:是否使用Statement命名空间。这里的命名空间是指映射文件中sqlMap节点的namespace属性。如针对t_use
表的映射文件sqlMap节点: <sqlMap namespace="User"> 这里,指定了此sqlMap节点下定义的操作均属于"User"命名空间。 在useStatementNamespaces="true"的情况下,Statement调用需追加命名空间,如:sqlMap.update("User.updateUser",user);
否则直接通过Statement名称调用即可,如: sqlMap.update("updateUser",user); 但请注意此时需要保证所有映射文件中,Statement定义无重名。
(3)transactionManager节点
1>定义了ibatis的事务管理器,目前提供了以下几种选择:
1)JDBC
通过传统JDBC的Connection.commit/rollback来实现事务支持
2)JTA
使用JTA服务实现全局事务管理
3)EXTERNAL
外部事务管理。此时ibatis把所有事务委托给外部容器进行管理
2>dataSource节点
用来设置ibatis运行期使用的DataSource属性。
type属性:用来指定dataSource的实现类型,可选类型有:
1)SIMPLE:是ibatis内置的一个dataSource实现,其中实现了一个简单的数据库连接池机制
2)DBCP:基于Apache DBCP连接池组件实现的DataSource的封装,当无容器提供DataSource服务时,建议使用这个
3)JNDI:j2ee提供的DataSource服务
当使用SIMPLE或者DBCP的时候,可以进行以下配置:
JDBC.Driver:JDBC驱动
JDBC.URL:数据库URL
JDBC.Username:数据库用户名
JDBC.Password:数据库密码
Pool.MaximumActiveConnections:数据库连接池可以维持的最大容量
Pool.MaximumIdleConnections:数据库连接池中允许的挂起连接数
注意:如果通过spring来管理事务,整个节点就可以省略了
(4)sqlMap节点
指定了映射文件的位置,其中可以配置多个sqlMap节点