IBatis的入门讲例

Ⅰ 、Ibatis项目机构

打开资源包,可以看到里面有一个simple_exzample的文件夹,在MyEclipse8.5中新建一个JAVA项目,将刚才的文件夹中内容复制到项目SRC下,这样的话呢,可以看到这样一个目录

Ⅱ、Ibatis的SQL语句配置类MySqlMapConfig.xml

<span style="font-size: medium;"><?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:3306/ibatis"/>
      <property name="JDBC.Username" value="root"/>
      <property name="JDBC.Password" value="root"/>
    </dataSource>
  </transactionManager>
  <sqlMap resource="com/mydomain/data/Employee.xml"/>

</sqlMapConfig>
</span>

使用的是MySQL数据库,所以要添加数据库驱动包,还有ibatis核心包,在看看数据库表该怎么建立,这得查看下Employee.xml了

Ⅲ、Employee.xml

<span style="font-size: medium;"><?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="Employee">

  <typeAlias alias="Employee" type="com.mydomain.domain.Employee"/>

  <resultMap id="AccountResult" class="Employee">
    <result property="id" column="ACC_ID"/>
    <result property="firstName" column="ACC_FIRST_NAME"/>
    <result property="lastName" column="ACC_LAST_NAME"/>
    <result property="emailAddress" column="ACC_EMAIL"/>
  </resultMap>

  <select id="selectAllAccounts" resultMap="AccountResult">
    select * from Employee
  </select>

  <select id="selectAccountById" parameterClass="int" resultClass="Employee">
    select
      ACC_ID as id,
      ACC_FIRST_NAME as firstName,
      ACC_LAST_NAME as lastName,
      ACC_EMAIL as emailAddress
    from Employee
    where ACC_ID = #id#
  </select>

  <insert id="insertAccount" parameterClass="Employee">
    insert into Employee (
      ACC_FIRST_NAME,
      ACC_LAST_NAME,
      ACC_EMAIL
    )values (
      #firstName#, #lastName#, #emailAddress#
    )
  </insert>

  <update id="updateAccount" parameterClass="Employee">
    update Employee set
      ACC_FIRST_NAME = #firstName#,
      ACC_LAST_NAME = #lastName#,
      ACC_EMAIL = #emailAddress#
    where
      ACC_ID = #id#
  </update>

  <delete id="deleteAccountById" parameterClass="int">
    delete from Employee where ACC_ID = #id#
  </delete>

</sqlMap></span>

上面的<ResultMap>标签中有指定每个Account属性对应的数据库的列名,所以就新建数据库了
 这样数据建立完成后,我们就可以测试了,这回就用到了SimpleExample.java类了

Ⅳ、SimpleExample.java

package com.mydomain.data;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.ibatis.common.resources.Resources;
import com.mydomain.domain.Account;

import java.io.Reader;
import java.io.IOException;
import java.util.List;
import java.sql.SQLException;

public class SimpleExample {

  private static SqlMapClient sqlMapper;

  static {
    try {
      Reader reader = Resources.getResourceAsReader("com/mydomain/data/MySqlMapConfig.xml");
      sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
      reader.close();
    } catch (IOException e) {
      throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);
    }
  }

  public static List selectAllAccounts () throws SQLException {
    return sqlMapper.queryForList("selectAllAccounts");
  }

  public static Account selectAccountById  (int id) throws SQLException {
    return (Account) sqlMapper.queryForObject("selectAccountById", id);
  }

  public static void insertAccount (Account account) throws SQLException {
    sqlMapper.insert("insertAccount", account);
  }

  public static void updateAccount (Account account) throws SQLException {
    sqlMapper.update("updateAccount", account);
  }

  public static void deleteAccount (int id) throws SQLException {
    sqlMapper.delete("deleteAccountById", id);
  }

}

像上面的增删改查中用到的代替SQL语句的映射KEY,也是可以加上相应的XML文件的配置名称的,如:return sqlMapper.queryForList("Employee.selectAllAccounts")那么这个Account就是Account.xml的名称了
真正想看到测试结果得另写个JUNIT测试类,添加junit的jar包,这里我写了MyTest.java

Ⅴ、MyTest.java

package com.mydomain.data;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.junit.Test;

import com.mydomain.domain.Account;

public class MyTest {
    @Test
    public void selectAllAccounts(){
        try {
            List list=SimpleExample.selectAllAccounts();
            System.out.println(Arrays.toString(list.toArray()));
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void selectAccountById(){
        try {
            Account account=SimpleExample.selectAccountById(1);
            System.out.println(account);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void insertAccount(){
        Account account=new Account();
        account.setFirstName("tom");
        account.setLastName("jam");
        account.setEmailAddress("china");
        try {
            SimpleExample.insertAccount(account);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void updateAccount(){
        try {
            Account account=SimpleExample.selectAccountById(2);
            account.setFirstName("gates");
            SimpleExample.updateAccount(account);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void deleteAccount(){
        try {
            SimpleExample.deleteAccount(1);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

Ⅵ、顺便介绍下MyBatis

MyBatis来源于iBATIS,iBATIS是一个由Clinton Begin在2001年发起的开放源代码项目,iBATIS一词来源于“internet”和“abatis”的组合。该项目最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),它是著名的ORM开发框架,分为Java和.NET版本,有着众多的追随者。

iBATIS更名为MyBatis并迁移到Google Code,此次项目迁移后,将启用新的网站http://www.mybatis.org/,由于目前只是改了名字,因此仍然可直接浏览iBatis的文档。
MyBatis开发团队希望脱离Apache而独立发展,并保证不会修改授权协议(Apache License)、代码完全兼容、包名不会更改、也不会删除 Apache站上的任何相关资源。改名后的第一次版本MyBatis 3.0.1已经发布,基于iBatis 3.0版本,该版本非常稳定,已经有很多用户使用了数周时间,修复了一些小bug。欲下载 MyBatis 3.0.1请到它新的网站http://www.mybatis.org/。 目前版本是3.0.2

时间: 2025-01-18 04:19:37

IBatis的入门讲例的相关文章

iBatis.net入门指南

iBatis.net入门指南    - 1 - 什么是iBatis.net ?    - 3 - iBatis.net的原理    - 3 - 新人指路    - 3 - iBatis.net的优缺点    - 4 - SQL Mapping金典案例    - 5 - 情景一 基本标签(insert,update ,select)及属性(parameterClass,resultClass)    - 5 - 情景二 子标签(<sql /><include />)及转义处理    

iBatis简单入门教程

iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经改名为Mybatis 了. 官网为:http://www.mybatis.org/ 搭建iBatis 开发环境: 1 .导入相关的jar 包,ibatis-2.3.0.677.jar .mysql-connector-java-5.1.6

C#入门220例(第三章)

if else switch while for break continue radiobutton处理代码 if(rbt_true.Checked) { MessageBox.Show("yes"); } else { MessageBox.Show("no"); } 控制台应用程序的设定长以及宽,标题 以及利用for来显示时间(每次显示时间后停留一秒,运行完就清掉信息,再次下一次循环) class Program { static void Main(stri

Spring Boot入门样例-001-Java和Maven安装配置

Spring Boot入门样例-001-Java和Maven安装配置 本文说明Java和Maven在windows下的安装和配置 前言 本Spring Boot入门样例准备工作参考: Spring Boot入门样例-001-Java和Maven安装配置 Spring Boot入门样例-003-idea 安装配置和插件 Spring Boot入门样例-005-如何运行 1. 下载 下载地址:https://www.oracle.com/technetwork/java/javase/downloa

jbpm入门样例

1.      jBPM的简介 jBPM是JBOSS下的一个开源java工作流项目,该项目提供eclipse插件,基于Hibernate实现数据持久化存储. 參考 http://www.jboss.com/products/jbpm 2.      jBPM和myeclipse的冲突 当eclipse安装了myeclipse和jBPM时候,可能有冲突,详细表如今jBPM的流程设计器不能在eclipse中使用. 3.      Hibernate连接mysql数据库的一般參数 以下的配置參数,依据

ibatis轻松入门

近日,由于公司项目应用开发的逻辑层使用的是iBatis.上网查了些资料,自己写了点demo入门.感觉良好.iBatis实在是比Hibernate很容易入门,贡献出来与各路菜鸟分享(后文附源码),希望得到大神指教.转载请保留本文出处:http://itred.cnblogs.com ; 作者:itRed. ORM框架中操作数据库的逻辑层中,Hibernate和iBatis相对来说是比较受欢迎的.Hibernate是“全自动”的,能够完全生成SQL语句:而iBatis是“半自动化”的,需要程序员根据

Spring与Ibatis整合入门

Ibatis作为一个将java对象与sql中的数据进行映射的工具,可以将一个应用中常用的sql操作抽象为模版,在应用后续与数据库的交互中,将输入sql语句简化为更改一部分参数. ibatis整合到springmvc项目中包括以下的内容: 1. 创建一个与数据表相对应的java简单对象POJO 例如:我们的数据表结构如下: 相应的,我们创建一个java对象AttendDO: public class AttendDO { private String username; private Date

ibatis新手入门

ibatis 是什么 iBATIS是以SQL为中心的持久化层框架. 能支持懒载入.关联查询.继承等特性. iBATIS不同于一般的OR映射框架. OR映射框架,将数据库表.字段等映射到类.属性,那是一种元数据(meta-data)映射. iBATIS则是将SQL查询的參数和结果集映射到类. 所以,iBATIS做的是SQL Mapping的工作. 它把SQL语句看成输入以及输出.结果集就是输出,而where后面的条件參数则是输入. iBATIS能将输入的普通POJO对象.Map.XML等映射到SQ

Direct3D 9 入门样例程序 圆锥体

介绍 Directx3D 9 什么是DirectX,非常好说了,Win32 C++ API.主要是多媒体编程方面的,长处体如今高性能了,如今我知道的版本号最高是D3D11,可是我是学习入门的,从D3D9開始,不算非常是落伍. Directx3D 元素 D3D元素非常多,这里说的元素是程序中用到的元素. 1〉D3D 编程的起点.能够理解成出所用的D3D SDK程序集. 2〉D3D present parameter .呈现參数,专业的參数是通过一顿检測配置成最好的.程序中的參数简单的用默认的显示參