前些日子,一不小心看到了iBATIS技术,
哈,,感觉挺不错的,在我看来发展前景应该也是很乐观的,找了一些相关资料,顺手也写了个例子,,,
1.首先创建个web项目:iBATIS
2.创建包:com.ibatis
3.在包下创建个database.properties文件,存放数据库连接信息,内容如下:
driver=net.sourceforge.jtds.jdbc.Driver
url=jdbc:jtds:sqlserver://localhost:1433/develop_test
username=sa
password=123456
4.创建sql-map-config.xml文件(个人认为她是iBATIS的核心配置),内容如下:
<?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>
<properties resource="com/ibatis/database.properties"/><!-- 连接数据库的配置信息 -->
<!-- 更加导入的资源读取相关配置信息 -->
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property value="${driver}" name="JDBC.Driver"/>
<property value="${url}" name="JDBC.ConnectionURL"/>
<property value="${username}" name="JDBC.Username"/>
<property value="${password}" name="JDBC.Password"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/ibatis/users.xml"/><!-- 存放sql语句,个人认为一个表对应一个配置文件,包含CURD操作 -->
</sqlMapConfig>
5.创建对应表操作的users.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">
<!-- 与数据库的表对应 ,alias="user" 取是别名-->
<typeAlias alias="user" type="com.ibatis.User"/>
<!-- 调用方可以通过id进行操作 -->
<statement id="createTableTestUser" >
create table testUser(
id int identity(0,1) not null,
name varchar(16) primary key,
age char(3)
)
</statement>
<insert id="addUser" parameterClass="user"><!-- parameterClass需要参数的类型 -->
INSERT INTO testUser (name, age)
VALUES (#name#, #age#)
</insert>
<update id="updateUser" parameterClass="map">
update testUser
set age = #age#
where name = #name#
</update>
<!-- resultClass 返回的对象类型 -->
<select id="getUserByName" resultClass="user" parameterClass="java.lang.String">
SELECT name,age
FROM testUser
WHERE name = #name#
</select>
<delete id="deleteUserByName" parameterClass="java.lang.String">
delete from testUser
where name = #name#
</delete>
<statement id="dropTableTestUser">
drop table testUser
</statement>
</sqlMap>
6.编写一个javaBean,对应操作的表,包含set和get方法,内容如下:
public class User {
private String name;
private String age;
//set和get方法省略...
}
7.最后编写CURD的测试代码:
package com.ibatis;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.Reader;
import java.util.HashMap;
import java.util.Map;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String resource = "com/ibatis/sql-map-config.xml";
try {
//读取配置文件
Reader reader = Resources.getResourceAsReader(resource);
//得到SqlMapClient
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
String name = "宇宙";
String age = "22";
String update = "23";
//开始Ibatis事务
sqlMap.startTransaction();
//////////////////////////////////////////////////////////////////////
System.out.println("*****************" + "创建表:TestUser");
sqlMap.update("createTableTestUser",null);
System.out.println("创建成功!");
//////////////////////////////////////////////////////////////////////
System.out.println("*****************" + "执行插入操作:name = ‘" + name + "’ age=" + age);
User user = new User();
user.setName(name);
user.setAge(age);
//执行插入操作
Object o= sqlMap.insert("addUser", user);
if(o == null)
System.out.println("插入操作成功!");
//////////////////////////////////////////////////////////////////////
System.out.println("*****************" + "将name = ‘" + name + "’的age字段更新为‘" + update + "'");
//跟新操作
Map map = new HashMap(2);
map.put("name", name);
map.put("age", update);
int j = sqlMap.update("updateUser", map);
if(j>0)
System.out.println("跟新成功!");
else
System.out.println("跟新失败!");
//////////////////////////////////////////////////////////////////////
System.out.println("*****************" + "查询name='" + name + "'的用户信息");
//查询操作
User user02 = (User)sqlMap.queryForObject("getUserByName", name);
System.out.println("查询结果:");
System.out.println("name:" + user02.getName());
System.out.println("age:" + user02.getAge());
////////////////////////////////////////////////////////////////////// System.out.println("*****************" + "删除name='" + name + "'的用户");
//删除操作
int i = sqlMap.delete("deleteUserByName", name);
System.out.print("执行结果:");
System.out.println("删除了" + i +"条记录");
//////////////////////////////////////////////////////////////////////
System.out.println("*****************" +"删除表:TestUser");
sqlMap.update("dropTableTestUser", null);
System.out.println("删除表:TestUser,,,操作成功!");
//////////////////////////////////////////////////////////////////////
//提交IBatis事务
sqlMap.commitTransaction();
} catch (Exception e) {
e.printStackTrace();
}
}
}
执行结果:
*****************创建表:TestUser
创建成功!
*****************执行插入操作:name = ‘宇宙’ age=22
插入操作成功!
*****************将name = ‘宇宙’的age字段更新为‘23'
跟新成功!
*****************查询name='宇宙'的用户信息
查询结果:
name:宇宙
age:23
*****************删除name='宇宙'的用户
执行结果:删除了1条记录
*****************删除表:TestUser
删除表:TestUser,,,操作成功!
附上例子,见附件!
分享到:
相关推荐
这个"第一个ibatis例子"是一个典型的入门教程,旨在帮助初学者快速理解并掌握Ibatis的基本用法。 首先,Ibatis的核心组件包括XML配置文件、SqlMapConfig.xml、Mapper接口以及Mapper XML文件。在入门例子中,我们...
《第一个iBatis3工程详解》 在Java开发领域,iBatis作为一个优秀的持久层框架,因其简单易用、灵活性高而备受青睐。本篇文章将深入探讨如何搭建第一个iBatis3工程,以及该工程中涉及到的核心概念和技术点。 首先,...
标题 "iBatis 第一个程序" 暗示我们将探讨如何使用 iBatis,这是一个流行的持久层框架,用于简化 Java 应用程序中的数据库操作。iBatis 提供了一种方式,将 SQL 查询与应用程序代码分离,使得开发更加灵活且易于维护...
Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...
1. **配置文件**:Ibatis的配置文件(mybatis-config.xml)是整个框架的入口,它包含了数据源、事务管理器、SqlSessionFactory等重要设置。数据源定义了连接数据库的信息,如驱动、URL、用户名和密码;...
iBatis,一个优秀的Java持久层框架,以其轻量级、灵活的特性在众多ORM(Object-Relational Mapping)框架中独树一帜。iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,使得开发者可以自由地编写SQL...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...
1. 映射关系:Hibernate提供了一种对象关系映射(ORM)机制,自动处理对象与数据库之间的转换,而iBATIS需要开发者手动编写SQL语句。 2. 开发效率:在相同需求下,iBATIS的工作量可能大于Hibernate,因为需要手写SQL...
Ibatis3作为一款流行的持久层框架,在软件开发领域具有重要的地位。本篇文章基于“Ibatis3手册 Ibatis3参考手册”的标题及描述,深入解析Ibatis3的核心概念、架构特点以及如何进行实际操作,旨在帮助读者全面理解...
ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南
Ibatis 是一个优秀的开源持久层框架,它允许开发者将 SQL 查询与 Java 代码分离,从而避免了传统的 JDBC 编程中的大量模板代码。作为一个轻量级的框架,Ibatis 提供了灵活的映射机制,使得 XML 或注解方式的 SQL ...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...
《iBATIS实战》的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的大部分知识点,可以作为iBATIS学习和Web开发的经典案例,非常值得深入研究。 编辑推荐 《iBATIS实战》既可为广大的开发...
iBatis是一个轻量级的Java持久层框架,它提供了SQL映射框架,将SQL语句与Java代码分离,使得数据库访问更为灵活和可控。在本压缩包中,你将找到一系列关于iBatis的学习资源,包括PDF文档、实例代码等,这些都是深入...
iBATIS DAO是Java开发中的一个持久层框架,它提供了数据访问对象(DAO)的实现,使得数据库操作更加简单和灵活。在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好...
3. **iBATIS-SqlMaps-2-Tutorial_cn.pdf**:这是iBATIS SQL Maps 2的中文教程,可能包含一系列逐步的教学章节,指导初学者从零开始学习iBATIS,包括安装环境、创建第一个SQL Map、处理结果集、使用动态SQL以及处理...
一共七个分卷 iBATIS in Action中文版(iBATIS实战 有水印) 第一部分
而`OSCache`则是一个高性能的第三方缓存组件,提供了更强大的缓存功能。 总之,《ibatis开发指南》是一本详尽介绍了ibatis框架的教材,不仅涵盖了ibatis的基础概念和核心组件,还深入探讨了其高级特性和应用场景。...
自己写了一个Ibatis入门文件 JDK用的1.4 ibatis用的2.3.0 一定要注意版本问题,不然出现本本不兼容很费劲,我调了一上午,注意一定要用JDK1.4 ibatis2.3.0! 数据库自己建一张简单的表就行了,特别说明 只适合新手...