`
jessen163
  • 浏览: 465433 次
  • 性别: Icon_minigender_1
  • 来自: 潘多拉
社区版块
存档分类
最新评论

初遇 iBATIS

 
阅读更多
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=root

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 ibatis ibatis

    Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    《深入解析iBatis源码》 iBatis,一个优秀的Java持久层框架,以其轻量级、灵活的特性在众多ORM(Object-Relational Mapping)框架中独树一帜。iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,...

    Ibatis入门例子,Ibatis教程

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...

    ibatis教程,ibatis帮助文档

    iBATIS是一个由Clinton Begin创建,目前由Apache基金会支持的持久化框架,它专注于数据库查询的简化,尤其在JDBC编程方面提供了极大的便利。相对于全自动化ORM解决方案如Hibernate,iBATIS被称为“半自动化”ORM实现...

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    iBATIS DAO是Java开发中的一个持久层框架,它提供了数据访问对象(DAO)的实现,使得数据库操作更加简单和灵活。在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好...

    Ibatis3手册 Ibatis3参考手册

    ### Ibatis3手册知识点概述 Ibatis3作为一款流行的持久层框架,在软件开发领域具有重要的地位。本篇文章基于“Ibatis3手册 Ibatis3参考手册”的标题及描述,深入解析Ibatis3的核心概念、架构特点以及如何进行实际...

    ibatis api,ibatis文档,ibatis说明文档

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...

    ibatis2指南及ibatis包

    ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南

    iBatis开发指南和一个iBatis实例

    iBatis是一个轻量级的Java持久层框架,它提供了SQL映射框架,将SQL语句与Java代码分离,使得数据库访问更为灵活和可控。在本压缩包中,你将找到一系列关于iBatis的学习资源,包括PDF文档、实例代码等,这些都是深入...

    ibatis应对批量update

    ### ibatis应对批量update 在处理大量数据更新时,传统的for循环方式往往会导致效率低下。这是因为每一次循环都需要执行一次数据库连接操作,对于批量更新来说,这样的处理方式显然不够高效。为了解决这个问题,...

    ibatis api 帮助文档+IBATIS 开发文档

    **IBATIS API 帮助文档与IBATIS开发文档详解** IBATIS,一个由iBATIS公司开发的开源持久层框架,是Java世界中广泛使用的数据访问接口(DAO)工具。它允许开发者将SQL语句直接写在XML配置文件中,实现了SQL与Java...

    Spring与iBATIS的集成

    Spring与iBATIS的集成 iBATIS似乎已远离众说纷纭的OR框架之列,通常人们对非常流行的Hibernate情有独钟。但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比...

    Ibatis

    **Ibatis 指南** Ibatis 是一个优秀的开源持久层框架,它允许开发者将 SQL 查询与 Java 代码分离,从而避免了传统的 JDBC 编程中的大量模板代码。作为一个轻量级的框架,Ibatis 提供了灵活的映射机制,使得 XML 或...

    iBATIS实战.pdf

    《iBATIS实战》是讲述iBATIS框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。《iBATIS实战》的最后给出了一个...

    Ibatis 入门经典 实例

    《Ibatis 入门经典 实例》 Ibatis 是一款著名的轻量级 Java 持久层框架,它提供了一种映射 SQL 和 Java 对象的简单方式,从而减轻了开发人员在数据库操作中的工作负担。这篇实例教程将带你深入理解 Ibatis 的核心...

    ibatis

    Ibatis 是一个优秀的Java持久层框架,它提供了一个SQL映射框架,使开发者能够将SQL语句与Java代码分离,从而实现数据访问层的解耦合。Ibatis 的设计目标是简化开发工作,减少JDBC代码量,提高开发效率,并且在数据库...

    Spring+ibatis 保留ibatis事务的配置

    根据提供的文件信息,本文将详细解析如何在Spring与ibatis框架整合时,通过特定配置来保留ibatis事务处理机制,并实现对事务的自定义控制。文章将围绕标题、描述及部分代码片段展开讨论。 ### Spring与ibatis整合...

    C# IBatis IBatis基础 完整项目

    【标题】:“C# IBatis IBatis基础 完整项目” 【描述】中提到的是一个基于C#的IBatis学习项目,适用于初学者。IBatis是一个流行的数据访问层框架,它允许开发者将SQL语句与应用程序代码分离,提高了代码的可维护性...

    ibatis2.rar

    iBATIS是一个优秀的Java持久层框架,它提供了一个SQL映射框架,使开发者能够将SQL语句直接写在配置文件中,与Java代码分离,从而实现了数据访问逻辑和业务逻辑的解耦。"ibatis2.rar"这个压缩包文件包含了关于iBATIS ...

Global site tag (gtag.js) - Google Analytics