`
dreamoftch
  • 浏览: 496651 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ibatis学习(一)--ibatis介绍以及用例

阅读更多
http://www.blogjava.net/freeman1984/archive/2007/12/07/166116.html



介绍

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);

    }

}
分享到:
评论
1 楼 icando_fordream 2012-12-27  
不错、很基础、感谢楼主

相关推荐

    ibatis入门--对数据库的操作

    【ibatis入门--对数据库的操作】这篇文章主要...总的来说,这篇文章覆盖了iBatis的基本操作,包括数据库连接、SQL映射配置、数据操作(增、删、改、查)以及事务和异常处理,为初学者提供了一个完整的iBatis入门指南。

    ibatis2mybatis-master.zip

    标题“ibatis2mybatis-master.zip”所指的是一款工具或服务,用于将基于iBATIS的数据访问框架的代码自动转换为使用MyBatis框架的代码。iBATIS和MyBatis都是Java开发中常用的持久层框架,它们帮助开发者简化数据库...

    ibatis--dao的应用

    在压缩包文件"ibatisTest"中,可能包含了测试用例,比如一个简单的Java项目,其中包含了iBatis的相关配置、DAO接口、XML映射文件以及测试类。通过这些文件,你可以了解如何实际应用iBatis进行数据访问操作。 总结...

    ibatis-2.3.0.677

    此外,源码中还包含了丰富的测试用例,这些用例不仅验证了iBatis的功能,也为我们提供了实际应用中的使用示例,对于快速上手和调试都非常有帮助。 总之,通过对iBatis 2.3.0.677源码的分析,我们可以掌握其设计理念...

    maven版ibatis

    【标题】"maven版ibatis" 涉及到的知识点主要集中在Maven和iBatis两个核心组件上,Maven是Java项目管理和构建工具,而iBatis则是一个优秀的持久层框架,用于简化数据库操作。以下是这些知识点的详细说明: **1. ...

    ibatis-2000数据库

    “SSI_SimpleTest”可能是项目中的一个测试模块,可能包含了一些简单的测试用例,用于验证iBATIS与SQL Server 2000的集成是否正常工作,以及分页、增删改查等功能是否能够正确执行。通常,这样的测试文件会帮助...

    spring-ibatis

    在IT行业中,Spring框架和iBatis持久层框架的整合是一个常见的应用场景,旨在提供更加灵活且高效的数据库操作。"spring-ibatis"项目的核心目标就是将Spring的依赖注入特性和iBatis的数据访问能力结合起来,使得开发...

    spring与hibernate以及ibatis集成的实例和具体配置图解

    标题“spring与hibernate以及ibatis集成的实例和具体配置图解”表明,这个资料包主要讲解如何将这三个框架结合在一起使用,以构建一个高效、灵活的后端系统。集成这些框架可以实现数据访问层的无缝切换,同时利用...

    ibatis_test测试

    标题 "ibatis_test测试" 涉及到的是对Ibatis这一知名Java持久层框架的实战测试。Ibatis,作为一个轻量级的ORM(Object-Relational Mapping)框架,允许开发者将SQL语句直接写在配置文件中,使得数据库操作与业务逻辑...

    Ibatis初级学习案例

    这个项目可能包含了一个或多个Java类(对应Mapper接口),一个或多个XML映射文件(存放SQL语句),以及一些测试用例,用来演示如何使用Ibatis执行SQL并处理结果。 通过这个初级学习案例,你可以了解Ibatis的基础...

    第一个ibatis3工程

    本篇文章将深入探讨如何搭建第一个iBatis3工程,以及该工程中涉及到的核心概念和技术点。 首先,我们需要理解iBatis3的基本架构。iBatis3放弃了原先的SqlMapConfig.xml全局配置文件,而是采用更加灵活的注解和XML...

    spring-mvc+iBatis:maven

    Spring MVC 作为 Model-View-Controller 模式的实现,负责处理用户请求并返回响应,而 iBatis 则是一个轻量级的持久层框架,它简化了 SQL 的操作。在 Maven 的管理下,这两个框架可以更方便地集成和构建项目。下面将...

    ibatis小例子Demo

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写动态的SQL上,而无需关注JDBC代码的繁琐细节。这个"ibatis小例子Demo"是为了帮助初学者快速理解和掌握...

    spring+springMVC+iBatis+Json整合所需jar包

    而iBatis则是一个持久层框架,它简化了数据库操作。将这三者与Json整合,可以实现高效的数据交换。下面将详细介绍这三个框架及其整合过程中的关键知识点。 1. **Spring框架**:Spring的核心是依赖注入(Dependency ...

    ibatis 入门

    在"工具"这一标签下,我们可以假设博客可能还会讨论如何集成 iBATIS 到项目中,如使用 Maven 或 Gradle 进行依赖管理,以及如何在 IDE(如 IntelliJ IDEA 或 Eclipse)中配置和调试 iBATIS。 至于压缩包文件 ...

    Struts2+IBatis整合

    通过以上对Struts2和iBatis的介绍以及整合过程的讲解,我们可以理解这两个框架如何协同工作,提高开发效率并提供更优秀的Web应用程序。在实际项目中,开发者可以根据需求选择合适的整合策略,以实现高效、可维护的...

    struts2_spring_ibatis3.0整合

    本文将详细介绍如何将这三者进行整合,实现一个高效且灵活的Java Web应用。 Struts2是基于MVC设计模式的开源框架,它提供了一种用于构建Web应用的模型、视图和控制器的结构。Struts2的核心是Action,每个Action对应...

    IBatis-Abator插件自动生成代码和配置的方法

    1. **IBatis(现称MyBatis)**:是一个支持普通SQL查询、存储过程以及高级映射的优秀开源持久层框架。它消除了几乎所有的JDBC对象操作并自动将SQL语句执行结果映射成Java对象及其集合。 2. **Abator**:是MyBatis...

    DroidPilot-V2.5-Full-Ibatis.rar

    标题"DroidPilot-V2.5-Full-Ibatis.rar"暗示了这是一个关于Android应用开发的项目,其中可能包含了Ibatis这一流行的Java持久层框架。...这将是一个深入了解Android应用开发、Ibatis框架以及数据库设计实践的好机会。

Global site tag (gtag.js) - Google Analytics