iBATIS 动向
来源:互联网 发布:java object 方法 编辑:程序博客网 时间:2024/04/28 09:28
今年年初,有幸接触到了 iBATIS,并花了数个星期来写了点使用心得(http://www.blogjava.net/rosen/archive/2005/08/12/9931.html)。半年多过去,iBATIS 发生了很大的变化,2005 年 5月 1 日,iBATIS 孵化成功,今天已正式成为 Apache 官方项目, http://www.ibatis.com 域名已重定向到 http://ibatis.apache.org。说说变化吧,iBATIS 产品系列中,iBATIS SQL Maps 更名为 iBATIS Data Mapper 分为 for .NET 和 for Java 两个版本;iBATIS DAO 的名称未变,在原有 for Java 的基础上增加了 for .NET 版本;当然最后还包括官方的 iBATIS PetStore 范例。
目前 iBATIS Data Mapper for Java(以下简称:iBATIS Data Mapper)的版本为 2.1.5。当前以及未来的 iBATIS Data Mapper 将加入以下新特征。
来自第三方的贡献
Alex Egorov 的 SQL Map 生成器(http://alxeg.narod.ru/ibatis/index.html)。Alex 创建了一些便利的脚本来生成你所有的 SQL Maps 和 VO。如果你正在寻找这种快速开发工具,它将是个可以一试的工具。这个站点有点慢,但是这点等待总比你手工编码的时间来得快。
DDL如下:
CREATE TABLE USER_PROPERTY (
USER_ID BIGINT NOT NULL,
FIRST_NAME VARCHAR(100) DEFAULT '',
LAST_NAME VARCHAR(100),
BIRTH_DATE TIMESTAMP(8),
PRIMARY KEY (USER_ID)
);
VO如下:
package org.mystuff.db;
// WARNING: This is an autogenerated file
public class UserProperty {
// Constructors
public UserProperty() {
}
public UserProperty(long _userId) {
this.userId = _userId;
}
// Fields
private String firstName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String _firstName) {
this.firstName = _firstName;
}
private java.util.Date birthDate;
public java.util.Date getBirthDate() {
return birthDate;
}
public void setBirthDate(java.util.Date _birthDate) {
this.birthDate = _birthDate;
}
private String lastName;
public String getLastName() {
return lastName;
}
public void setLastName(String _lastName) {
this.lastName = _lastName;
}
private long userId;
public long getUserId() {
return userId;
}
public void setUserId(long _userId) {
this.userId = _userId;
}
}
映射文件如下:
<?xml version='1.0'?><!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"><!-- WARNING: This is an autogenerated file --><sqlMap name="UserProperty"> <cacheModel id="userproperty-cache" type="MEMORY"> <flushInterval hours="24"/> <flushOnExecute statement="insertUserProperty"/> <flushOnExecute statement="updateUserProperty"/> <flushOnExecute statement="deleteUserProperty"/> <property name="reference-type" value="WEAK" /> </cacheModel> <resultMap class="org.mystuff.db.UserProperty" id="userproperty-result" > <result property="firstName" column="FIRST_NAME" /> <result property="birthDate" column="BIRTH_DATE" /> <result property="lastName" column="LAST_NAME" /> <result property="userId" column="USER_ID" /> </resultMap> <select id="getUserProperty" resultClass="org.mystuff.db.UserProperty"
parameterClass="org.mystuff.db.UserProperty" resultMap="userproperty-result" > <![CDATA[ select * from USER_PROPERTY where USER_ID = #userId# ]]> </select> <update id="updateUserProperty" parameterClass="org.mystuff.db.UserProperty"> <![CDATA[ update USER_PROPERTY set FIRST_NAME = #firstName# , BIRTH_DATE = #birthDate#
, LAST_NAME = #lastName# where USER_ID = #userId# ]]> </update> <insert id="insertUserProperty" parameterClass="org.mystuff.db.UserProperty"> <![CDATA[ insert into USER_PROPERTY(FIRST_NAME, BIRTH_DATE, LAST_NAME, USER_ID) values(#firstName#, #birthDate#, #lastName#, #userId#) ]]> </insert> <delete id="deleteUserProperty" parameterClass="org.mystuff.db.UserProperty"> <![CDATA[ delete from USER_PROPERTY where USER_ID = #userId# ]]> </delete></sqlMap>
Jasmine IDE iBATIS GUI(http://jasmineide.sourceforge.net)。在构建映射文件、VO、DAO 类(不是 iBATIS 的 DAO,而是一个调用 sqlclient 方法的 java 类)方面这是最好的了,通过点击几下鼠标就可生成。这个工具允许你建立一个项目并设置 DB 连接连同所有通常用到的配置文件。(首先你需要设置自己的 DB 连接,确定你的驱动程序和所有 jar 都在系统类路径中)
我想,随着时间的推移,会有更多的开发者加入为 iBATIS 添砖加瓦的行列。
重要改进议题
http://wiki.apache.org/ibatis/Improved_Dynamic_SQL_Whiteboard 这里正在讨论关于改进动态 SQL 的白板,让 iBATIS Data Mapper 在动态 SQL 方面更强大。另外,当开发某个有着大量查询和大量数据的系统时,通常也会对这些数据的子集进行开发。“记录长时间运行的查询”功能将加快开发进度,能帮助开发者或 DBA 了解哪个查询慢或尚未优化,找出潜在瓶颈。为了引入这种新特性,也许会修改 sqlmap 配置文件(比如默认临界值),也会在 mapped statement 中增加新属性(用来覆盖默认临界值)。
原作者:Rosen Jiang 出处:http://www.blogjava.net/rosen
- iBATIS 动向
- iBATIS 动向
- 编程动向
- 技术动向
- 开启新的动向
- android动向分析
- 经济动向a
- 经济动向f
- 经济动向g
- ibatis
- iBatis
- ibatis
- iBatis
- ibatis
- ibatis
- IBATIS
- ibatis
- iBATIS
- COBOL语言
- 《struts2权威指南》学习笔记之struts2文件上传
- 使用Gnu gprof进行Linux平台下的程序分析
- C/C++程序员应聘常见面试题
- C语言函数库
- iBATIS 动向
- Apache2.2.6+php5.2.5-win32+MySQL5.0
- js脚本_小写金额转换成大写(支持千分位格式及负数输入,整数部分可达44位-千正~元,小数部分可达5位-角~丝) AmountInWords(dValue, maxDec)
- JSP和Servlet对中文的处理
- 命令大全
- abstract class和interface
- Spring XML配置技巧
- 远程重新启用3389
- WMI无法初始化核心