ibatis 开始之旅
来源:百度文库 编辑:神马文学网 时间:2024/04/19 18:53:49
ibatis 开始之旅
用了很久hibernate ,突然想换个别的orm 工具,当然在orm领域中,hibernate是老大。看了一下ibatis,发现如果对于crud操作不是很多的系统来说,是个不错的选择,尤其是适合那些对sql和性能热衷的开发者。综合来说ibatis不能算orm工具,只能算个半成品。不过比起直接用jdbc写,那还是方便多了。主要的好处是分离了sql和代码,如果你想追求性能,那么sql是你很好的利器,当然ibatis的缓存也不错。比起hibernate,ibatis就简单多了,估计也就3天能够基本掌握了,这大大减少了学习成本。
说了那么多废话,下面开始正题,通过一个简单的实例开始ibatis之旅,文章大部分参考网上的ibatis 开发指南一文。
主要的jar:ibatis 2.3.0,spring 2.0.1,log4j 1.2.9,commons-logging 1.0.4,hsqldb 1.8.0
ibatis实例配置:
创建POJO对象:
package com.esoft.bo;
public class Account {
private String emailAddress;
private String firstName;
private int id;
private String lastName;
public String getEmailAddress() {
return emailAddress;
}
public String getFirstName() {
return firstName;
}
public int getId() {
return id;
}
public String getLastName() {
return lastName;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setId(int id) {
this.id = id;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
映射文件,感觉比较的麻烦。以后有机会的话一定自动生成此文件,尤其现在jpa当道。
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
insert into ACCOUNT ( ACC_ID,
ACC_FIRST_NAME, ACC_LAST_NAME, ACC_EMAIL) values ( #id#, #firstName#,
#lastName#, #emailAddress# )
update ACCOUNT set
ACC_FIRST_NAME = #firstName#, ACC_LAST_NAME = #lastName#, ACC_EMAIL =
#emailAddress# where ACC_ID = #id#
delete from ACCOUNT where
ACC_ID = #id#
delete from ACCOUNT
spring 配置:
...
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
${jdbc.driverClassName}
${jdbc.url}
${jdbc.username}
${jdbc.password}
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
SqlMapConfig.xml
主要的代码:
public class AccountDaoImpl
extends SqlMapClientDaoSupport {
public PK save(Account obj) {
return (PK) getSqlMapClientTemplate().insert("insertAccount", obj);
}
public void update(Accountobj) {
getSqlMapClientTemplate().update("updateAccount", obj);
}
public void delete(Account obj) {
getSqlMapClientTemplate().delete(
"deleteAccountById",
obj.getPk());
}
public Account get(PK primaryKey) {
return (Account) getSqlMapClientTemplate().queryForObject(
"selectAccountById",
primaryKey);
}
}
用了很久hibernate ,突然想换个别的orm 工具,当然在orm领域中,hibernate是老大。看了一下ibatis,发现如果对于crud操作不是很多的系统来说,是个不错的选择,尤其是适合那些对sql和性能热衷的开发者。综合来说ibatis不能算orm工具,只能算个半成品。不过比起直接用jdbc写,那还是方便多了。主要的好处是分离了sql和代码,如果你想追求性能,那么sql是你很好的利器,当然ibatis的缓存也不错。比起hibernate,ibatis就简单多了,估计也就3天能够基本掌握了,这大大减少了学习成本。
说了那么多废话,下面开始正题,通过一个简单的实例开始ibatis之旅,文章大部分参考网上的ibatis 开发指南一文。
主要的jar:ibatis 2.3.0,spring 2.0.1,log4j 1.2.9,commons-logging 1.0.4,hsqldb 1.8.0
ibatis实例配置:
创建POJO对象:
package com.esoft.bo;
public class Account {
private String emailAddress;
private String firstName;
private int id;
private String lastName;
public String getEmailAddress() {
return emailAddress;
}
public String getFirstName() {
return firstName;
}
public int getId() {
return id;
}
public String getLastName() {
return lastName;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setId(int id) {
this.id = id;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
映射文件,感觉比较的麻烦。以后有机会的话一定自动生成此文件,尤其现在jpa当道。
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
ACC_FIRST_NAME, ACC_LAST_NAME, ACC_EMAIL) values ( #id#, #firstName#,
#lastName#, #emailAddress# )
ACC_FIRST_NAME = #firstName#, ACC_LAST_NAME = #lastName#, ACC_EMAIL =
#emailAddress# where ACC_ID = #id#
ACC_ID = #id#
spring 配置:
...
主要的代码:
public class AccountDaoImpl
extends SqlMapClientDaoSupport {
public PK save(Account obj) {
return (PK) getSqlMapClientTemplate().insert("insertAccount", obj);
}
public void update(Accountobj) {
getSqlMapClientTemplate().update("updateAccount", obj);
}
public void delete(Account obj) {
getSqlMapClientTemplate().delete(
"deleteAccountById",
obj.getPk());
}
public Account get(PK primaryKey) {
return (Account) getSqlMapClientTemplate().queryForObject(
"selectAccountById",
primaryKey);
}
}
ibatis 开始之旅
iBatis
iBatis
陈水扁开始“群峰之旅”
ibatis介绍
Spring+Ibatis
ibatis介绍
ibatis配置
应用AXIS开始Web 服务之旅
"理财时空-财富之旅"开始了!
12宫之旅开始了!
应用AXIS开始Web 服务之旅
入门品酒者开始红酒之旅
入门品酒者开始红酒之旅
巨型冰山开始“危险之旅”
ibatis缓存使用
Ibatis简明教程
ibatis详细配置2
spring和ibatis的
iBATIS与Hibernate比较
ibatis 打印SQL语句
俄罗斯总统普京开始南非之旅
让我们一起开始: 理财时空-财富之旅!
“阿特兰蒂斯”号航天飞机开始回家之旅[组图]