`

Ibatis 入门

阅读更多

Ibatis是一个轻便的sqlMap工具,相较于ORM的hibernate学习成本低,并且可控性更强。

 

Ibatis增删该查简单例子[ibatis版本ibatis-2.3.4.726.jar]

数据模型Customer.java

package com.pojo;
public class Customer {
	private String customerId;
	private String name;

	public String getCustomerId() {
		return customerId;
	}
	public void setCustomerId(String customerId) {
		this.customerId = customerId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

 

sqlmap映射配置Customer.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="CUSTOMER">
  <!-- 定义别名 -->
  <typeAlias alias="Customer" type="com.pojo.Customer"/>

  <!-- 定义数据库列名与类属性之间的结果映射 -->
  <resultMap id="CustomerResult" class="Customer">
    <result property="customerId" column="CUSTOMER_ID"/>
    <result property="name" column="NAME"/>
  </resultMap>

  <!-- 查询所有的Customer -->
  <select id="selectAllCusotmers" resultMap="CustomerResult">
    select * from CUSTOMER
  </select>

  <!-- 通过id查询Customer -->
  <select id="selectCustomerById" parameterClass="String" resultClass="Customer">
    select
      CUSTOMER_ID as customerId,
      NAME as name
    from CUSTOMER
    where CUSTOMER_ID = #customerId#
  </select>
   
  <!-- 插入一个Customer -->
  <insert id="insertCustomer" parameterClass="Customer">
    insert into CUSTOMER (
      CUSTOMER_ID,
      NAME)
    values (
      #customerId#, #name#
    )
  </insert>

  <!-- 更新一个Customer -->
  <update id="updateCustomer" parameterClass="Customer">
    update CUSTOMER set
      NAME = #name#
    where
      CUSTOMER_ID = #customerId#
  </update>

  <!-- 删除一个Customer -->
  <delete id="deleteCustomerById" parameterClass="String">
    delete from CUSTOMER where CUSTOMER_ID = #customerId#
  </delete>

</sqlMap>

 

 sqlmap配置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>
      
  <!-- 默认值为false,指定各个sqlMap中的namespace是否起作用,
         如果为ture,则在指定sql语句是要加入namespace名称例如 namespace.XXX -->     
  <settings useStatementNamespaces ="true" />  
  
  <!-- 指定数据库链接信息 -->
  <transactionManager type="JDBC" commitRequired="false">
    <dataSource type="SIMPLE">
      <property name="JDBC.Driver" value="加载数据驱动"/>
      <property name="JDBC.ConnectionURL" value="数据库链接URL"/>
      <property name="JDBC.Username" value="用户名"/>
      <property name="JDBC.Password" value="密码"/>
    </dataSource>
  </transactionManager>

  <!-- 引入sqlmap -->
  <sqlMap resource="com/sqlmap/Customer.xml"/>

</sqlMapConfig>

 

测试类Main.java

package com;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.pojo.Customer;
public class Main {
  private static SqlMapClient sqlMapper;
  static {
    try {
      Reader reader = Resources.getResourceAsReader("com/sqlmap/SqlMapConfig.xml");
      sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
      reader.close(); 
    } catch (IOException e) {
      throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);
    }
  }

  /** 查询所有的Customer */
  @SuppressWarnings("unchecked")
public static List<Customer> selectAllCusotmers () throws SQLException {
    return sqlMapper.queryForList("CUSTOMER.selectAllCusotmers");
  }

  /** 通过id查询Customer */
  public static Customer selectCustomerById(String customerId) throws SQLException {
    return (Customer) sqlMapper.queryForObject("CUSTOMER.selectCustomerById", customerId);
  }

  /** 插入一个Customer */
  public static void insertCustomer(Customer customer) throws SQLException {
    sqlMapper.insert("CUSTOMER.insertCustomer", customer);
  }
  /**  更新一个Customer */
  public static void updateCustomer(Customer customer) throws SQLException {
    sqlMapper.update("CUSTOMER.updateCustomer", customer);
  }
  /** 删除一个Customer */
  public static void deleteCustomerById (String id) throws SQLException {
    sqlMapper.delete("CUSTOMER.deleteCustomerById", id);
  }

}

 

 

分享到:
评论
2 楼 jiluo093 2013-09-03  
简单易懂。
1 楼 lijiejava 2013-09-02  
  good

相关推荐

    Ibatis入门例子,Ibatis教程

    在本教程中,我们将通过一个简单的Ibatis入门例子,带你逐步了解并掌握这个强大的框架。 首先,我们需要在项目中引入Ibatis的依赖。通常,我们会在Maven的pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org....

    Ibatis 入门经典 实例

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

    ibatis入门

    **Ibatis 入门教程** Ibatis 是一个优秀的 Java ORM(对象关系映射)框架,它允许程序员将数据库操作与业务逻辑分离,提供灵活的 SQL 配置和映射机制,使得开发人员能够自由地编写 SQL 而不被 ORM 的复杂性所束缚。...

    iBatis入门(三)

    **iBatis入门(三)** 在本篇中,我们将深入探讨iBatis,这是一个流行的开源持久层框架,它允许开发者将SQL语句与Java代码分离,提供更灵活的数据库操作方式。iBatis的核心是SQL Maps,这些映射文件包含了SQL语句以及...

    ibatis 入门

    标题 "ibatis 入门" 暗示我们要探讨的是关于使用和理解开源持久层框架 iBATIS 的基础知识。iBATIS 是一个优秀的 Java 应用框架,它将 SQL 查询与 Java 代码分离,提供了更灵活的数据访问方式。这篇博客(博文链接已...

    最简单的iBatis入门例子

    本教程将带你一步步走进iBatis的世界,通过一个最简单的入门例子来了解其基本概念和使用方法。 一、iBatis简介 iBatis(现在称为MyBatis)是由Apache软件基金会维护的一个开源项目,它解决了Java应用程序直接操作...

    ibatis入门教程_ibatis入门教程_源码

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得...通过学习这个Ibatis入门教程,你可以了解并掌握如何在Java应用中使用Ibatis进行数据操作,为后续的进阶学习和项目开发打下坚实的基础。

    ibatis入门到精通详细讲解

    **Ibatis 入门到精通详细讲解** Ibatis 是一个优秀的持久层框架,它允许开发者将 SQL 语句与 Java 代码分离,提供了一个灵活的映射框架,从而减轻了开发人员在数据库操作上的工作负担。这篇详细讲解将带你从入门到...

    ibatis入门与ibatis迭代的用法

    **ibatis入门** iBatis,一款轻量级的Java持久层框架,是MyBatis的前身,由美国华人开发团队开发。它提供了一个SQL、Java和XML的映射框架,将SQL语句与Java代码分离,使得开发者可以更加灵活地处理数据库操作,避免...

    ibatis ibatis入门教程

    【标题】:Ibatis Ibatis入门教程 【描述】:Ibatis是一款优秀的持久层框架,它简化了Java应用与数据库之间的交互,通过提供一个映射SQL的XML或注解方式,使得开发人员能够将精力集中在业务逻辑上,而不是繁琐的...

    ibatis 自己学的一个ibatis项目(只是打通了Oracle) 非常适合入门

    自己写了一个Ibatis入门文件 JDK用的1.4 ibatis用的2.3.0 一定要注意版本问题,不然出现本本不兼容很费劲,我调了一上午,注意一定要用JDK1.4 ibatis2.3.0! 数据库自己建一张简单的表就行了,特别说明 只适合新手...

    ibatis 入门的例子

    这个压缩包中的"ibatisJavaTest"项目应该是一个简单的Ibatis入门示例,可能包含了配置文件、映射文件、测试类等。通过分析和运行这个项目,你可以直观地了解Ibatis如何与数据库交互,以及如何编写和使用Mapper接口。...

    iBATIS入门实例测试

    **iBATIS入门实例测试** iBATIS是一个优秀的开源持久层框架,它简化了Java应用程序与数据库之间的交互,使得开发者可以专注于SQL语句本身,而无需处理大量的JDBC代码。本教程将通过一个简单的实例来介绍如何使用...

    ibatis入门学习经典案例

    【标题】"ibatis入门学习经典案例"是一个针对初学者设计的教程,旨在帮助他们快速理解和掌握MyBatis(原名iBatis)这一流行的Java持久层框架。这个案例提供了完整的部署和运行环境,使学习过程更为直观和便捷。 ...

    ibatis入门实例(全代码)

    在这个"ibatis入门实例(全代码)"中,我们将探讨如何通过 Ibatis 实现对数据库的操作,包括数据库的初始化、SQL 映射文件的编写以及 Java 代码的集成。 首先,让我们了解数据库的准备工作。在实例中,提供了数据库...

    ibatis入门实例,很方便,导入即用

    **Ibatis 入门实例详解** Ibatis 是一个优秀的、开源的 Java 数据访问框架,它简化了数据库操作,使得开发者可以更加专注于 SQL 而不需处理底层的 JDBC 编码。Ibatis 提供了一个映射框架,允许将 SQL 查询与 Java ...

    iBatis入门Helloworld

    iBatis,现已被更名为MyBatis,是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。...通过这个简单的"iBatis入门Helloworld"项目,你可以快速掌握iBatis的基础操作,并为进一步学习和应用打下坚实基础。

Global site tag (gtag.js) - Google Analytics