介绍
iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。
iBATIS不同于一般的OR映射框架(eg:hibernate)。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。因此可以说,iBATIS做的是SQL Mapping的工作。它把SQL语句看成输入以及输出,结果集就是输出,而where后面的条件参数则是输入。iBATIS能将输入的普通POJO对象、Map、XML等映射到SQL的条件参数上,同时也可以将查询结果映射到普通POJO对象(集合)、Map、XML等上面。
iBATIS使用xml文件来映射这些输入以及输出。能大大减少数据库存储部分的代码量,而且可以非常方便的利用SQL中的一些小技巧。
简单示例
基于ibatis-2.3.0.677版本。
1、 创建新的项目,并引入jar包
a) ibatis-2.3.0.677.jar
b) mysql驱动
2、 在类路径中(classes下)提供ibatis的配置文件: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>
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1/ibatis"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="mysql"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/ibatis/model/User.xml"/>
</sqlMapConfig>
|
3、创建实体类:User.java
package com.ibatis.model;
publicclass User {
privateintid;
private String username;
private String password;
publicint getId() {
returnid;
}
publicvoid setId(int id) {
this.id = id;
}
public String getPassword() {
returnpassword;
}
publicvoid setPassword(String password) {
this.password = password;
}
public String getUsername() {
returnusername;
}
publicvoid setUsername(String username) {
this.username = username;
}
}
|
4、创建针对User对象的CRUD的xml映射配置:User.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="User">
<!-- Use type aliases to avoid typing the full classname every time. -->
<typeAlias alias="User" type="com.ibatis.model.User"/>
<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAllUsers" resultClass="User">
select * from t_user
</select>
<select id="selectUser" resultClass="User" parameterClass="int">
select * from t_user where id=#id#
</select>
<insert id="insertUser" parameterClass="User">
insert into t_user values (
null,#username#,#password#
)
</insert>
<update id="updateUser" parameterClass="User">
update t_user set username = #username#,password=#password#
where id=#id#
</update>
<delete id="deleteUser" parameterClass="int">
delete from t_user where id=#id#
</delete>
</sqlMap>
|
5、创建测试程序测试:
package com.crm.model;
import java.io.Reader;
import java.util.Iterator;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
/**
*最简单的形式!
*@authorq
*
*/
publicclass UserTest {
/**
*@paramargs
*/
publicstaticvoid main(String[] args) throws Exception{
//从配置文件中得到SqlMapClient对象
Reader reader = Resources.getResourceAsReader("sqlMapConfig.xml");
SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
//创建用户数据
for(int i=0; i<10; i++){
User user = new User();
user.setUsername("用户"+i);
user.setPassword("密码"+i);
sqlMapper.insert("insertUser", user);
}
//查询用户数据
List users = sqlMapper.queryForList("selectAllUsers");
for (Iterator iter = users.iterator(); iter.hasNext();) {
User user = (User) iter.next();
System.out.println(user.getUsername());
}
//查询特定用户的数据
User user = (User)sqlMapper.queryForObject("selectUser", 1);
System.out.println("用户【id="+1+"】的名称是:"+user.getUsername());
//更新用户的信息
user = new User();
user.setId(3);
user.setUsername("更改之后的用户名称");
user.setPassword("密码被更改");
sqlMapper.update("updateUser", user);
//删除用户的信息
sqlMapper.delete("deleteUser", 6);
}
}
|
分享到:
相关推荐
【ibatis入门--对数据库的操作】这篇文章主要...总的来说,这篇文章覆盖了iBatis的基本操作,包括数据库连接、SQL映射配置、数据操作(增、删、改、查)以及事务和异常处理,为初学者提供了一个完整的iBatis入门指南。
标题“ibatis2mybatis-master.zip”所指的是一款工具或服务,用于将基于iBATIS的数据访问框架的代码自动转换为使用MyBatis框架的代码。iBATIS和MyBatis都是Java开发中常用的持久层框架,它们帮助开发者简化数据库...
在压缩包文件"ibatisTest"中,可能包含了测试用例,比如一个简单的Java项目,其中包含了iBatis的相关配置、DAO接口、XML映射文件以及测试类。通过这些文件,你可以了解如何实际应用iBatis进行数据访问操作。 总结...
此外,源码中还包含了丰富的测试用例,这些用例不仅验证了iBatis的功能,也为我们提供了实际应用中的使用示例,对于快速上手和调试都非常有帮助。 总之,通过对iBatis 2.3.0.677源码的分析,我们可以掌握其设计理念...
【标题】"maven版ibatis" 涉及到的知识点主要集中在Maven和iBatis两个核心组件上,Maven是Java项目管理和构建工具,而iBatis则是一个优秀的持久层框架,用于简化数据库操作。以下是这些知识点的详细说明: **1. ...
“SSI_SimpleTest”可能是项目中的一个测试模块,可能包含了一些简单的测试用例,用于验证iBATIS与SQL Server 2000的集成是否正常工作,以及分页、增删改查等功能是否能够正确执行。通常,这样的测试文件会帮助...
在IT行业中,Spring框架和iBatis持久层框架的整合是一个常见的应用场景,旨在提供更加灵活且高效的数据库操作。"spring-ibatis"项目的核心目标就是将Spring的依赖注入特性和iBatis的数据访问能力结合起来,使得开发...
标题“spring与hibernate以及ibatis集成的实例和具体配置图解”表明,这个资料包主要讲解如何将这三个框架结合在一起使用,以构建一个高效、灵活的后端系统。集成这些框架可以实现数据访问层的无缝切换,同时利用...
标题 "ibatis_test测试" 涉及到的是对Ibatis这一知名Java持久层框架的实战测试。Ibatis,作为一个轻量级的ORM(Object-Relational Mapping)框架,允许开发者将SQL语句直接写在配置文件中,使得数据库操作与业务逻辑...
这个项目可能包含了一个或多个Java类(对应Mapper接口),一个或多个XML映射文件(存放SQL语句),以及一些测试用例,用来演示如何使用Ibatis执行SQL并处理结果。 通过这个初级学习案例,你可以了解Ibatis的基础...
本篇文章将深入探讨如何搭建第一个iBatis3工程,以及该工程中涉及到的核心概念和技术点。 首先,我们需要理解iBatis3的基本架构。iBatis3放弃了原先的SqlMapConfig.xml全局配置文件,而是采用更加灵活的注解和XML...
Spring MVC 作为 Model-View-Controller 模式的实现,负责处理用户请求并返回响应,而 iBatis 则是一个轻量级的持久层框架,它简化了 SQL 的操作。在 Maven 的管理下,这两个框架可以更方便地集成和构建项目。下面将...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写动态的SQL上,而无需关注JDBC代码的繁琐细节。这个"ibatis小例子Demo"是为了帮助初学者快速理解和掌握...
而iBatis则是一个持久层框架,它简化了数据库操作。将这三者与Json整合,可以实现高效的数据交换。下面将详细介绍这三个框架及其整合过程中的关键知识点。 1. **Spring框架**:Spring的核心是依赖注入(Dependency ...
在"工具"这一标签下,我们可以假设博客可能还会讨论如何集成 iBATIS 到项目中,如使用 Maven 或 Gradle 进行依赖管理,以及如何在 IDE(如 IntelliJ IDEA 或 Eclipse)中配置和调试 iBATIS。 至于压缩包文件 ...
通过以上对Struts2和iBatis的介绍以及整合过程的讲解,我们可以理解这两个框架如何协同工作,提高开发效率并提供更优秀的Web应用程序。在实际项目中,开发者可以根据需求选择合适的整合策略,以实现高效、可维护的...
本文将详细介绍如何将这三者进行整合,实现一个高效且灵活的Java Web应用。 Struts2是基于MVC设计模式的开源框架,它提供了一种用于构建Web应用的模型、视图和控制器的结构。Struts2的核心是Action,每个Action对应...
1. **IBatis(现称MyBatis)**:是一个支持普通SQL查询、存储过程以及高级映射的优秀开源持久层框架。它消除了几乎所有的JDBC对象操作并自动将SQL语句执行结果映射成Java对象及其集合。 2. **Abator**:是MyBatis...
标题"DroidPilot-V2.5-Full-Ibatis.rar"暗示了这是一个关于Android应用开发的项目,其中可能包含了Ibatis这一流行的Java持久层框架。...这将是一个深入了解Android应用开发、Ibatis框架以及数据库设计实践的好机会。