ibatis实例配置
一个典型的配置文件如下(具体配置项目的含义见后):
一个典型的配置文件如下(具体配置项目的含义见后):
<?
xml
version
="1.0"
encoding
="UTF-8"
?>
<! DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0/
"[url]http://www.ibatis.com/dtd/[/url]sql-map-config-2.dt
< sqlMapConfig >
< settings
cacheModelsEnabled ="true"
enhancementEnabled ="true"
lazyLoadingEnabled ="true"
errorTracingEnabled ="true"
maxRequests ="32"
maxSessions ="10"
maxTransactions ="5"
useStatementNamespaces ="false"
/>
< sqlMap resource ="com/ibatis/sample/User.xml" />
</ sqlMapConfig >
<! DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0/
"[url]http://www.ibatis.com/dtd/[/url]sql-map-config-2.dt
< sqlMapConfig >
< settings
cacheModelsEnabled ="true"
enhancementEnabled ="true"
lazyLoadingEnabled ="true"
errorTracingEnabled ="true"
maxRequests ="32"
maxSessions ="10"
maxTransactions ="5"
useStatementNamespaces ="false"
/>
< sqlMap resource ="com/ibatis/sample/User.xml" />
</ sqlMapConfig >
⑴ Settings 节点
cacheModelsEnabled
是否启用SqlMapClient上的缓存机制。 建议设为"true"
enhancementEnabled
是否针对POJO启用字节码增强机getter/setter的调用效能,避免Reflect所带来的性能开销。同时,这也为Lazy Loading带来提升。 建议设为"true"
errorTracingEnabled
是否启用错误日志,在开发期间建议设为"true" 以方便调试
lazyLoadingEnabled
是否启用延迟加载机制,建议设为"true"
maxRequests
最大并发请求数(Statement并发数)
maxTransactions
最大并发事务数
maxSessions 最大Session数。即当前最大允许的并发SqlMapClient数。
cacheModelsEnabled
是否启用SqlMapClient上的缓存机制。 建议设为"true"
enhancementEnabled
是否针对POJO启用字节码增强机getter/setter的调用效能,避免Reflect所带来的性能开销。同时,这也为Lazy Loading带来提升。 建议设为"true"
errorTracingEnabled
是否启用错误日志,在开发期间建议设为"true" 以方便调试
lazyLoadingEnabled
是否启用延迟加载机制,建议设为"true"
maxRequests
最大并发请求数(Statement并发数)
maxTransactions
最大并发事务数
maxSessions 最大Session数。即当前最大允许的并发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定义无重名。
是否使用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定义无重名。
核心提示:SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: sqlMap namespace=Account,在此空间外要引用此空间的元素,则需要加上命名空间名。 2、实体的别名: typeAlias alias=Account type=com.lavasoft.ibatissut.sim
SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。
1、命名空间:
<sqlMap namespace="Account">,在此空间外要引用此空间的元素,则需要加上命名空间名。
2、实体的别名:
<typeAlias alias="Account" type="com.lavasoft.ibatissut.simple.domain.entity.Account"/>
如果有用到的全名的地方,可以用别名代替,受命名空间约束。
3、插入操作
对于自增主键的表,插入可以不配置插入的主键列。否则是必须的。
4、获取主键
SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。
1、命名空间:
<sqlMap namespace="Account">,在此空间外要引用此空间的元素,则需要加上命名空间名。
2、实体的别名:
<typeAlias alias="Account" type="com.lavasoft.ibatissut.simple.domain.entity.Account"/>
如果有用到的全名的地方,可以用别名代替,受命名空间约束。
3、插入操作
对于自增主键的表,插入可以不配置插入的主键列。否则是必须的。
4、获取主键