- 浏览: 150153 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
驭乐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 2134Weblogic的update和stop/s ... -
Web Service HTTP1.0 and HTTP1.1性能测试报告
2009-10-21 17:55 3063第1章 测试需求分析 1.1 测试目的 w ... -
SOA与业务敏捷
2006-08-30 00:00 779作者:TIBCO中国研发中心 胡长城(银狐999) ... -
RESTful Web Services
2006-08-23 00:00 9251. The Fundamental 1.1 What ... -
CAS学习笔记
2006-08-02 00:00 1198•相关文档 官方文档: http://www.ja- ... -
SOA学习笔记
2006-07-26 00:00 872SOA是为了解决在Internet ... -
Lucene 基础指南[转]
2006-07-12 00:00 1216Lucene 基础指南 作者:lighter, 江南白衣 ... -
OSGi入门笔记
2006-07-05 00:00 923借助网上的一些资料,对OSGi有了一些了解,将到目前的一些粗浅 ... -
x509数字证书介绍
2006-06-28 00:00 1244一、什么是数字证书 数字证书就是互联网通讯中标志通讯各方身 ... -
SSL协议及其应用
2006-06-21 00:00 2001SSL协议及其应用 ... -
JSR 168与WSRP
2006-06-07 00:00 1515作者:Rachel Greenblatt ... -
JBoss学习笔记
2006-05-31 00:00 1320JBoss架构是由JMX MBean服务器、微内核组成的。 ... -
UDDI笔记
2006-05-24 00:00 1052◆UDDI的目的实际上是想提供一个针对公众网商业用户的在全 ... -
选择Seam的十大理由
2006-05-17 00:00 908一、增加AJAX特征的最快捷方式 在功能上,Ajax改变了W ... -
Seam学习笔记
2006-05-10 00:00 1307FAQ: seam的英文意思是:缝、接合处。seamless ... -
JSF学习笔记
2006-05-03 00:00 2769FAQ: 1. JSF跟Spring如何结合? A ... -
Spring学习笔记
2006-04-26 00:00 990Spring笔记 0. 背景 Spring F ... -
Hibernate's FAQ
2006-04-05 00:00 7461. 关于session 1) 什么时机对session ... -
Hibernate学习笔记
2006-03-29 00:00 888● 相关文档: Hibernate参考文档 v3.0.2 ... -
JMX学习笔记
2006-03-22 00:00 968JMX 笔记 一些JMX的简单入门资料如下: ...
相关推荐
ibatis 学习笔记 ibatis 学习笔记 ibatis 学习笔记 ibatis 学习笔记 ibatis 学习笔记 ibatis 学习笔记 ibatis 学习笔记 ibatis 学习笔记
IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得
ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记 ibatis学习笔记
这篇iBatis 学习笔记是跟着传智播客的视频学习整理的,理解上难免有些错误,请以视频为 根本,有些地方笔记中没有整理到,因为这是我之后看着自己做的工程项目总结的,和视频 不完全一致。请谅解。
ibatis学习笔记.txtibatis学习笔记.txtibatis学习笔记.txt
iBatis学习笔记,有利于初步了解iBatis。
Ibatis学习笔记,文档,资源,6合1,有兴趣自学ibatis的童鞋的最佳选择。
iBatis是像Hibernate, JDO和EJB一样的数据持久框架,它将对象映射为SQL语句.它是个轻量级的框架并且持久性API适合持久化POJO.iBatis也与Hibernate, JDO不同,因为它使用存储过程和现有的SQL来处理数据库.
1.iBatis2学习笔记:基本原理和配置.doc 2.iBatis2学习笔记:与Spring2的整合.doc 3.iBatis2学习笔记:单表映射 .doc 4.iBatis2学习笔记:SqlMap的配置总结(18条).doc 5.iBatis2学习笔记:入参和返回值的问题.doc ...
NULL 博文链接:https://microjava.iteye.com/blog/536986
e) 在项目中新建实体类Test.java,内容如下: package com.entity; public class StuInfo { private Integer sid; private String stuName; public Integer getSid() { ... public void setSid(Integer sid) { ...