- 浏览: 154959 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
驭乐MJ:
好!谢谢啦!正在学习使用sean中。。
Seam学习笔记 -
laorer:
00 -现在,互联网造就了一批富翁,但那时,似乎什么都不会去想 ...
如果时光能够回流到八年前 -
liuqizhi0925:
八年前,OMG ,能改变的事情真的很多...
如果时光能够回流到八年前
1. iBATIS
关于iBATIS,iBATIS是一个Data Mapper 框架,并非一个ORM框架,他利用反射和数据库返回结果集的ResetSetMetaData,省去了JDBC传递参数和设置结果集的麻烦。简单是他相对于其他ORM工具的最大特性。他是直接调用你编写的SQL语句或存储过程。他还可以动态构造SQL语句。
2. iBATIS的代码生成工具:
abator (http://ibatis.apache.org/abator.html)
http://www.iteye.com/topic/138361
1) 首先配置好 abatorConfig.xml,范例参考官方文档.例如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE abatorConfiguration
PUBLIC "-//Apache Software Foundation//DTD Abator for iBATIS Configuration 1.0//EN"
"http://ibatis.apache.org/dtd/abator-config_1_0.dtd">
<abatorConfiguration>
<abatorContext id="DB2Tables" generatorSet="Java2">
<jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver"
connectionURL="jdbc:db2:TEST"
userId="db2admin"
password="db2admin">
<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<javaModelGenerator targetPackage="test.model" targetProject="\AbatorTestProject\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="test.xml" targetProject="\AbatorTestProject\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<daoGenerator type="SPRING" targetPackage="test.dao" targetProject="\AbatorTestProject\src">
<property name="enableSubPackages" value="true" />
</daoGenerator>
<table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" >
<property name="useActualColumnNames" value="true"/>
<generatedKey column="ID" sqlStatement="DB2" identity="true" />
<columnOverride column="DATE_FIELD" property="startDate" />
<ignoreColumn column="FRED" />
<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
</table>
</abatorContext>
</abatorConfiguration>
2) 可以将abator.jar加入到项目工程的lib下,然后在eclipse中用Java Application的方式来运行该jar包(eclipse会自动找到Main Class:org.apache.ibatis.abator.api.AbatorRunner)
加入参数: abatorConfig.xml true
也可以在控制台运行命令: java -jar abator.jar abatorConfig.xml true
3. iBATIS的占位符
$中间的变量就是直接替换成值的
#会根据变量的类型来进行转换
比如articleTitle的类型是string, 值是"标题"的时候
$articleTitle$ = 标题
#articleTitle# = '标题'
4. iBATIS的使用
使用动态条件查询时候,记得每一个条件表达式,都使用prepend="AND"
而且里面的SQL语句注意 函数名跟()括号之间不要有空格。
编写SQL语句时,因为大多是有abator来生成,注意要对表的default值做处理,以免导致将null值插入到有default值的字段中。
5. 尽量使用批处理
批处理和没批处理,相差性能很大。
try {
getSqlMapClient().startTransaction();
List<Phone> phones = (List<Phone>) getSqlMapClient().queryForList(
"selectPhone");
int effected = 1;
//getSqlMapClient().startBatch();
for (Phone ph : phones) {
getSqlMapClient().update("updatePhone", ph);
}
//getSqlMapClient().executeBatch();
getSqlMapClient().commitTransaction();
return effected;
} catch (SQLException e) {
e.printStackTrace();
return -1;
} finally {
try {
getSqlMapClient().endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
同样的代码,如果没有使用批处理,则更新2000条数据使用了 15,938ms。使用批处理仅需1,188ms。
发表评论
-
Weblogic的update和stop/start的区别
2009-10-28 19:50 2173Weblogic的update和stop/s ... -
Web Service HTTP1.0 and HTTP1.1性能测试报告
2009-10-21 17:55 3098第1章 测试需求分析 1.1 测试目的 w ... -
SOA与业务敏捷
2006-08-30 00:00 815作者:TIBCO中国研发中心 胡长城(银狐999) ... -
RESTful Web Services
2006-08-23 00:00 9611. The Fundamental 1.1 What ... -
CAS学习笔记
2006-08-02 00:00 1246•相关文档 官方文档: http://www.ja- ... -
SOA学习笔记
2006-07-26 00:00 920SOA是为了解决在Internet ... -
Lucene 基础指南[转]
2006-07-12 00:00 1265Lucene 基础指南 作者:lighter, 江南白衣 ... -
OSGi入门笔记
2006-07-05 00:00 954借助网上的一些资料,对OSGi有了一些了解,将到目前的一些粗浅 ... -
x509数字证书介绍
2006-06-28 00:00 1298一、什么是数字证书 数字证书就是互联网通讯中标志通讯各方身 ... -
SSL协议及其应用
2006-06-21 00:00 2084SSL协议及其应用 ... -
JSR 168与WSRP
2006-06-07 00:00 1582作者:Rachel Greenblatt ... -
JBoss学习笔记
2006-05-31 00:00 1355JBoss架构是由JMX MBean服务器、微内核组成的。 ... -
UDDI笔记
2006-05-24 00:00 1086◆UDDI的目的实际上是想提供一个针对公众网商业用户的在全 ... -
选择Seam的十大理由
2006-05-17 00:00 943一、增加AJAX特征的最快捷方式 在功能上,Ajax改变了W ... -
Seam学习笔记
2006-05-10 00:00 1352FAQ: seam的英文意思是:缝、接合处。seamless ... -
JSF学习笔记
2006-05-03 00:00 2834FAQ: 1. JSF跟Spring如何结合? A ... -
Spring学习笔记
2006-04-26 00:00 1057Spring笔记 0. 背景 Spring F ... -
Hibernate's FAQ
2006-04-05 00:00 7811. 关于session 1) 什么时机对session ... -
Hibernate学习笔记
2006-03-29 00:00 943● 相关文档: Hibernate参考文档 v3.0.2 ... -
JMX学习笔记
2006-03-22 00:00 998JMX 笔记 一些JMX的简单入门资料如下: ...
相关推荐
IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得
ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记
### iBatis 学习笔记知识点总结 #### 一、iBatis 概念与特点 **1.1 iBatis 定义** - **iBatis** 是一个基于 Java 的开源持久层框架,它专注于 SQL 映射,提供了一种将对象与数据库交互过程中的 SQL 语句进行分离的...
### IBATIS学习笔记知识点详解 #### 一、IBATIS简介 iBatis是一个用于Java的数据持久化框架,类似于Hibernate、JDO和EJB等技术。它的主要特点是将对象映射为SQL语句,这使得开发人员可以更加灵活地控制SQL的执行,...
这篇“ibatis学习笔记(一)”可能是博主对Ibatis基础概念、安装配置以及基本使用的介绍,让我们通过标签“源码”和“工具”来深入探讨Ibatis的相关知识。 首先,Ibatis是一个轻量级的Java ORM(对象关系映射)框架...