专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » ibatis:ibatis配置祥解-拷贝 »正文

ibatis:ibatis配置祥解-拷贝

来源: 发布时间:星期日, 2008年12月21日 浏览:84次 评论:0
ibatis基础代码包括:
1. ibatis例子配置
个典型配置文件如下(具体配置项目含义见后):
<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0/
"http://www.ibatis.com/dtd/sql-map-config-2.dt

<sqlMapConfig >

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

< transactionManager type ="JDBC" >
< dataSource type ="SIMPLE" >
< property name ="JDBC.Driver" value ="com.p6spy.engine.spy.P6SpyDriver" />
< property name ="JDBC.ConnectionURL" value ="jdbc:mysql://localhost/sample" />
< property name ="JDBC.Username" value ="user" />
< property name ="JDBC.Password" value ="mypass" />
< property name ="Pool.MaximumActiveConnections" value ="10" />
< property name ="Pool.MaximumIdleConnections" value ="5" />
< property name ="Pool.MaximumCheckoutTime" value ="120000" />
< property name ="Pool.TimeToWait" value ="500" />
< property name ="Pool.PingQuery" value ="select 1 from ACCOUNT" />
< property name ="Pool.PingEnabled" value ="false" />
< property name ="Pool.PingConnectionsOlderThan" value ="1" />
< property name ="Pool.PingConnectionsNotUsedFor" value ="1" />
</ dataSource >
</ transactionManager >

< sqlMap resource ="com/ibatis/sample/User.xml" />

</ sqlMapConfig >

⑴ Settings 节点
cacheModelsEnabled
是否启用SqlMapClient上缓存Cache机制 建议设为"true"
enhancementEnabled
是否针对POJO启用字节码增强机getter/ter效能避免Reflect所带来性能开销同时这也为Lazy Loading带来提升 建议设为"true"
errorTracingEnabled
是否启用日志在开发期间建议设为"true" 以方便调试
lazyLoadingEnabled
是否启用延迟加载机制建议设为"true"
maxRequests
最大并发请求数(Statement并发数)
maxTransactions
最大并发事务数
maxSessions 最大Session数即当前最大允许并发SqlMapClient数

useStatementNamespaces
是否使用Statement命名空间
这里命名空间指是映射文件中sqlMap节属性如在上例中针对t_use
映射文件sqlMap节点: <sqlMap ="User"> 这里指定了此sqlMap节点下定义操作均属于"User"命名空间 在useStatementNamespaces="true"情况下Statement需追加命名空间如:sqlMap.update("User.updateUser",user);
否则直接通过Statement名称即可如: sqlMap.update("updateUser",user); 但请注意此时需要保证所有映射文件中Statement定义无重名

transactionManager节点
transactionManager节点定义了ibatis事务管理器目前提供了以下几种选择:
JDBC
通过传统JDBC Connection.commit/rollback实现事务支持
JTA
使用容器提供JTA服务实现全局事务管理
EXTERNAL
外部事务管理如在EJB中使用ibatis通过EJB部署配置即可实现自
事务管理机制此时ibatis将把所有事务委托给外部容器进行管理
dataSource节点
dataSource从属于transactionManager节点用于设定ibatis运行期使用DataSource属性
type属性:
dataSource节点type属性指定了dataSource实现类型 可选项目:
SIMPLE:
SIMPLE是ibatis内置dataSource实现其中实现了个简单
数据库连接池机制对应 ibatis 实现类为
com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory

DBCP:
基于Apache DBCP连接池组件实现DataSource封装当无容器提
供DataSource服务时建议使用该选项对应ibatis实现类为
com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory

JNDI:
使用J2EE容器提供DataSource实现DataSource将通过指定
JNDI Name从容器中获取对应 ibatis实现类为
com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory

dataSource子节点介绍说明(SIMPLE&DBCP):
JDBC.Driver JDBC 驱动
如:org.gjt.mm.mysql.Driver
JDBC.ConnectionURL
数据库URL
如:jdbc:mysql://localhost/sample
如果用是SQLServer JDBC Driver需要
在url后追加SelectMethod=Cursor以获得
JDBC事务多Statement支持
JDBC.Username
数据库用户名
JDBC.Password
数据库用户密码
Pool.MaximumActiveConnections
数据库连接池可维持最大容量
Pool.MaximumIdleConnections
数据库连接池中允许挂起(idle)连接数
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" >
< property name ="UserTransaction" value ="java:/ctx/con/UserTransaction" />
< dataSource type ="JNDI" >
< property name ="DataSource" value ="java:comp/env/jdbc/myDataSource" />
</ dataSource >
sqlMap节点
sqlMap节点指定了映射文件位置配置中可出现多个sqlMap节点以指定
项目内所包含所有映射文件
ibatis基础语义
XmlSqlMapClientBuilder
XmlSqlMapClientBuilder是ibatis 2.0的后版本新引入组件用以替代1.x
版本中XmlSqlMapBuilder其作用是根据配置文件创建SqlMapClient例子

SqlMapClient
SqlMapClient是ibatis核心组件提供数据操作基础平台SqlMapClient
可通过XmlSqlMapClientBuilder创建:

String resource = " com/ibatis/sample/SqlMapConfig.xml " ;
Reader reader;

reader = Resources.getResourceAsReader(resource);

XmlSqlMapClientBuilder xmlBuilder =
XmlSqlMapClientBuilder;

SqlMapClient sqlMap = xmlBuilder.buildSqlMap(reader);
"com/ibatis/sample/SqlMapConfig.xml"指明了配置文件在CLASSPATH
相对路径XmlSqlMapClientBuilder通过接受个Reader类型配置文
[ft=,,]件句捊
标签:ibatis
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: