File: Account.java
public class Account {
private int id;
private String firstName;
private String lastName;
private String emailAddress;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
}
File: Account.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="Account">
<!-- Use type aliases to avoid typing the full classname every time. -->
<typeAlias alias="Account" type="Account"/>
<!-- Result maps describe the mapping between the columns returned
from a query, and the class properties. A result map isn't
necessary if the columns (or aliases) match to the properties
exactly. -->
<resultMap id="AccountResult" class="Account">
<result property="id" column="ACC_ID"/>
<result property="firstName" column="ACC_FIRST_NAME"/>
<result property="lastName" column="ACC_LAST_NAME"/>
<result property="emailAddress" column="ACC_EMAIL"/>
</resultMap>
<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAllAccounts" resultMap="AccountResult">
select * from ACCOUNT
</select>
<!-- A simpler select example without the result map. Note the
aliases to match the properties of the target result class. -->
<select id="selectAccountById" parameterClass="int" resultClass="Account">
select
ACC_ID as id,
ACC_FIRST_NAME as firstName,
ACC_LAST_NAME as lastName,
ACC_EMAIL as emailAddress
from ACCOUNT
where ACC_ID = #id#
</select>
<!-- Insert example, using the Account parameter class -->
<insert id="insertAccount" parameterClass="Account">
insert into ACCOUNT (
ACC_ID,
ACC_FIRST_NAME,
ACC_LAST_NAME,
ACC_EMAIL
)values (
#id#, #firstName#, #lastName#, #emailAddress#
)
</insert>
<!-- Update example, using the Account parameter class -->
<update id="updateAccount" parameterClass="Account">
update ACCOUNT set
ACC_FIRST_NAME = #firstName#,
ACC_LAST_NAME = #lastName#,
ACC_EMAIL = #emailAddress#
where
ACC_ID = #id#
</update>
<!-- Delete example, using an integer as the parameter class -->
<delete id="deleteAccountById" parameterClass="int">
delete from ACCOUNT where ACC_ID = #id#
</delete>
</sqlMap>
File: SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- Configure a built-in transaction manager. If you're using an
app server, you probably want to use its transaction manager
and a managed datasource -->
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
<property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
<property name="JDBC.Username" value="sa"/>
<property name="JDBC.Password" value=""/>
</dataSource>
</transactionManager>
<!-- List the SQL Map XML files. They can be loaded from the
classpath, as they are here (com.domain.data...) -->
<sqlMap resource="Account.xml"/>
<!-- List more here...
<sqlMap resource="com/mydomain/data/Order.xml"/>
<sqlMap resource="com/mydomain/data/Documents.xml"/>
-->
</sqlMapConfig>
File: Main.java
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;
public class Main{
public static void main(String[] a) throws Exception{
Util util = new Util();
util.executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
SqlMapClient sqlMapper = util.getSqlMapClient();
Account account = new Account();
account.setId(1);
account.setEmailAddress("e");
account.setFirstName("first");
account.setLastName("last");
sqlMapper.insert("insertAccount", account);
util.checkData("select * from account");
List list = sqlMapper.queryForList("selectAllAccounts");
}
}
File: Util.java
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class Util {
Statement st;
public Util() throws Exception{
// Load the JDBC driver.
Class.forName("org.hsqldb.jdbcDriver");
System.out.println("Driver Loaded.");
// Establish the connection to the database.
String url = "jdbc:hsqldb:data/tutorial";
Connection conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");
st = conn.createStatement();
}
public SqlMapClient getSqlMapClient() throws Exception{
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
return sqlMapper;
}
public void executeSQLCommand(String sql) throws Exception {
st.executeUpdate(sql);
}
public void checkData(String sql) throws Exception {
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData();
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.print("\t"+ metadata.getColumnLabel(i + 1));
}
System.out.println("\n----------------------------------");
while (rs.next()) {
for (int i = 0; i < metadata.getColumnCount(); i++) {
Object value = rs.getObject(i + 1);
if (value == null) {
System.out.print("\t ");
} else {
System.out.print("\t"+value.toString().trim());
}
}
System.out.println("");
}
}
}
分享到:
相关推荐
然而,在设计数据库和对象模型时,仍建议遵循最佳实践以获得更好的性能和更清晰的设计。 - **开始设计**:设计通常从分析应用的业务逻辑入手,明确业务对象、数据模型及其之间的关系。例如,本教程中使用了一个简单...
iBatis,作为一款轻量级的Java持久层框架,以其灵活、高效的特点,在许多项目中得到了广泛应用。本文将针对iBatis 2.3.4.726版本的源代码进行详尽解读,帮助开发者深入了解其内部机制,提升开发与调试能力。 1. **...
iBATIS,作为Java开发中的一个著名持久层框架,由Clinton Begin在2001年创建,其名称融合了“Internet”和“Abatis”,起初是致力于密码软件的开发,随着时间的发展,它逐渐演变为专注于数据库操作的工具,并在开源...
SqlMap是iBATIS的核心组件,它是一个XML配置文件,用于定义数据库操作(如增删改查)与Java对象之间的映射关系。SqlMap通过动态SQL生成合适的SQL语句,并将结果映射到Java对象,避免了手动编写大量的DAO(Data ...
- iBATIS 不像其他 ORM(对象关系映射)框架那样完全将 SQL 语句封装在框架内部,而是允许开发者直接编写 SQL 语句,并提供了灵活的参数映射和结果集映射机制。 #### 二、开始使用 iBATIS - **构建 ...
iBatis并非ORM(对象关系映射)框架,而是一种SQL映射框架,它允许开发者将SQL语句直接写在XML配置文件中,解决了JDBC代码冗长、难以维护的问题。在2.3.0.677版本中,iBatis提供了一种更加优雅的方式将业务逻辑与...
iBatis,作为一款轻量级的Java持久层框架,以其灵活、高效的特点,在许多项目中得到了广泛应用。本文将针对iBatis 2.3.0.677版本的源码进行深入剖析,旨在帮助开发者更好地理解和运用这一强大的数据访问工具。 首先...
- **获取 SqlSession**:通过 `SqlSessionFactory.openSession()` 方法可以获得 `SqlSession` 对象。`SqlSession` 提供了执行 SQL 命令的能力,并管理这些命令的执行上下文。 - **示例**: ```java ...
- **性能敏感的应用**:在某些高性能要求的应用场景下,ibatis的高效性得到了很好的体现。 通过上述知识点的介绍,我们可以看到ibatis作为一款经典的开源插件,在数据库操作方面具有独特的优势,尤其是在那些需要...
GT_Grid在前端显示由iBatis查询得到的数据,它提供了丰富的功能,如排序、分页、过滤等,提高了数据的可操作性。GT_Grid可能需要与Struts1.2的ActionSupport或ActionForm类配合,通过HTTP响应返回JSON或XML格式的...
在业务代码中,通过SqlSession调用这个方法,即可得到查询结果并转换为User对象。 总结,iBatis以其简单易用、灵活高效的特点,成为Java持久层框架的热门选择。通过对ibatis-2.3.0.677.jar的深入了解,开发者可以更...
执行对象的变更反映了iBATIS在不同版本中对于对象模型的设计理念的变化。 - **得到执行:** - **iBATIS v1**:通过`XMLSqlMapBuilder`构建`SqlMap`对象。 - **iBATIS v2**:使用`SqlMapClientBuilder`构建`...
Ibatis-2.3.0.677是Ibatis的一个较早版本,它提供了一种不同于传统的Hibernate等ORM(对象关系映射)框架的解决方案。Ibatis的核心思想是SQL Map,它允许开发者直接编写SQL语句,然后将这些SQL语句与Java代码集成,...
【标题】"ibatis扩展包"涉及的核心技术是iBatis,这是一款开源的Java持久层框架,它允许开发者将SQL映射到Java代码中,实现了数据库操作与业务逻辑的解耦,提高了开发效率和代码的可维护性。扩展包"ibatis-2.3.0.677...
在Ibatis 2.3版本中,这个理念得到了充分的体现。这个压缩包包含的是Ibatis 2.3.4.726的jar包以及相关的PDF教程,对于学习和使用Ibatis 2.3具有重要的参考价值。 **Ibatis-2.3.4.726.jar** 是Ibatis 2.3的核心库...
iBATIS的核心功能包括执行SQL语句、获取结果集并将其转换为Java对象,以及管理事务。它的设计思想是减少代码量,提高开发效率,同时保持对底层SQL语句的完全控制,适合于那些希望保留SQL灵活性的高级用户。 ### ...
iBatis.Net提供了灵活的数据访问层解决方案,它允许开发者手动编写SQL语句以获得更好的性能,同时通过映射文件减少了重复代码。通过集成日志记录框架和使用其API,可以简化事务管理和其他高级特性。无论是对于初学者...
描述 "编辑ibatis xml文件是添加不提示 添加dtd文件" 暗示用户可能遇到了在XML文件中添加DTD引用的困扰,没有得到IDE(集成开发环境)的自动提示或支持。这可能是由于IDE的配置问题,或者用户对如何正确引用DTD文件...
在这个"最新的ibatis 3.0(包含源码)"压缩包中,我们得到了Ibatis 3.0版本的核心库文件`ibatis-core-3.0`,这个版本是官方发布的,但需要注意的是,它与Spring 3.0.1存在兼容性问题。 Ibatis 3.0的主要改进和特性...
它主要用于简化JDBC编程,提供一种“半自动化”的ORM(对象关系映射)实现,与Hibernate等“一站式”ORM解决方案相比,iBATIS强调的是SQL的灵活性和可控性。 在理论体系中,iBATIS的核心价值在于SQL Maps。SQL Maps...