天天看点

Spring+Ibatis集成开发实例

<a href="http://blog.csdn.net/daryl715/article/details/1760793">http://blog.csdn.net/daryl715/article/details/1760793</a>

首先简历数据库demo(本文选mysql)

数据库脚本:

Spring+Ibatis集成开发实例

CREATE TABLE `ibatis` (

Spring+Ibatis集成开发实例

  `id` varchar(20) NOT NULL,

Spring+Ibatis集成开发实例

  `name` varchar(20) default NULL,

Spring+Ibatis集成开发实例

  PRIMARY KEY  (`id`)

Spring+Ibatis集成开发实例

) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

insert into ibatis values("1","1");

Spring+Ibatis集成开发实例

insert into ibatis values("2","2");

DAO接口:

Spring+Ibatis集成开发实例

package ch10.SpringAndIbatis;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

import java.util.List;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

public interface IDAO ...{

Spring+Ibatis集成开发实例

  public List getList();

Spring+Ibatis集成开发实例

  public Ibatis getByName(String name);

Spring+Ibatis集成开发实例

  public Ibatis getById(String id);

Spring+Ibatis集成开发实例

  public void save(Ibatis ibatis);

Spring+Ibatis集成开发实例

  public void delete(String id);

Spring+Ibatis集成开发实例

  public void update(Ibatis ibatis);

Spring+Ibatis集成开发实例

}

Spring+Ibatis集成开发实例

Ibatis配置文件:

Spring+Ibatis集成开发实例

&lt;?xml version="1.0" encoding="UTF-8"?&gt; 

Spring+Ibatis集成开发实例

&lt;!DOCTYPE sqlMapConfig 

Spring+Ibatis集成开发实例

PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 

Spring+Ibatis集成开发实例

"http://www.ibatis.com/dtd/sql-map-config-2.dtd"&gt; 

Spring+Ibatis集成开发实例

&lt;sqlMapConfig&gt; 

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

&lt;sqlMap resource="ch10/SpringAndIbatis/Ibatis.xml" /&gt; 

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

&lt;/sqlMapConfig&gt;

ibatis sql map文件ibatis.xml:

Spring+Ibatis集成开发实例

&lt;?xml version="1.0" encoding="UTF-8" ?&gt;

Spring+Ibatis集成开发实例

&lt;!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" &gt;

Spring+Ibatis集成开发实例

&lt;sqlMap &gt;

Spring+Ibatis集成开发实例

  &lt;typeAlias type="ch10.SpringAndIbatis.Ibatis" alias="user"/&gt;

Spring+Ibatis集成开发实例

  &lt;resultMap id="ibatisTest" class="user" &gt;

Spring+Ibatis集成开发实例

    &lt;result column="id" property="id" jdbcType="VARCHAR" /&gt;

Spring+Ibatis集成开发实例

    &lt;result column="name" property="name" jdbcType="VARCHAR" /&gt;

Spring+Ibatis集成开发实例

  &lt;/resultMap&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

  &lt;!-- 获得全查询列表 --&gt;

Spring+Ibatis集成开发实例

  &lt;select id="getAllUsers" resultMap="ibatisTest"&gt;

Spring+Ibatis集成开发实例

    select * from Ibatis

Spring+Ibatis集成开发实例

  &lt;/select&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

   &lt;!-- 根据用户名获得用户对象 --&gt;

Spring+Ibatis集成开发实例

   &lt;select id="getUsersByName" resultMap="ibatisTest"&gt;

Spring+Ibatis集成开发实例

     select * from Ibatis where name=#value#

Spring+Ibatis集成开发实例

  &lt;/select&gt; 

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

  &lt;!-- 根据id获得用户对象 --&gt;

Spring+Ibatis集成开发实例

    &lt;select id="getUsersById" resultMap="ibatisTest"&gt;

Spring+Ibatis集成开发实例

     select * from Ibatis where id=#value#

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

   &lt;!-- 新增用户对象 --&gt;

Spring+Ibatis集成开发实例

   &lt;insert id="insertUsers" parameterClass="user"&gt;

Spring+Ibatis集成开发实例

      insert into ibatis (id,name) values (#id#,#name#)

Spring+Ibatis集成开发实例

   &lt;/insert&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

   &lt;!-- 删除用户对象 --&gt;

Spring+Ibatis集成开发实例

   &lt;delete id="deleteUsers"&gt;

Spring+Ibatis集成开发实例

     delete from ibatis where id=#value#

Spring+Ibatis集成开发实例

   &lt;/delete&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

   &lt;!-- 更新用户对象 --&gt;

Spring+Ibatis集成开发实例

   &lt;delete id="updateUsers" parameterClass="user"&gt;

Spring+Ibatis集成开发实例

      update ibatis set name=#name# where id=#id#

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

&lt;/sqlMap&gt;

Spring+Ibatis集成开发实例

spring配置文件

Spring+Ibatis集成开发实例

&lt;?xml version="1.0" encoding="UTF-8"?&gt;

Spring+Ibatis集成开发实例

&lt;beans

Spring+Ibatis集成开发实例

    xmlns="http://www.springframework.org/schema/beans"

Spring+Ibatis集成开发实例

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Spring+Ibatis集成开发实例

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

&lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"&gt;

Spring+Ibatis集成开发实例

  &lt;property name="driverClassName"&gt;

Spring+Ibatis集成开发实例

    &lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt;

Spring+Ibatis集成开发实例

  &lt;/property&gt;

Spring+Ibatis集成开发实例

  &lt;property name="username"&gt;

Spring+Ibatis集成开发实例

    &lt;value&gt;root&lt;/value&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

  &lt;property name="password"&gt;

Spring+Ibatis集成开发实例

    &lt;value&gt;1234&lt;/value&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

  &lt;property name="url"&gt;

Spring+Ibatis集成开发实例

    &lt;value&gt;jdbc:mysql://localhost:3306/spring&lt;/value&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

&lt;/bean&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

&lt;bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"&gt;

Spring+Ibatis集成开发实例

  &lt;!-- 此处应注入ibatis配置文件,而非sqlMap文件,否则会出现“there is no statement.....异常” --&gt;

Spring+Ibatis集成开发实例

  &lt;property name="configLocation"&gt;

Spring+Ibatis集成开发实例

     &lt;value&gt;ch10/SpringAndIbatis/sqlMapConfig.xml&lt;/value&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

&lt;bean id="testDAO" class="ch10.SpringAndIbatis.TestDAO"&gt;

Spring+Ibatis集成开发实例

   &lt;property name="dataSource"&gt;

Spring+Ibatis集成开发实例

   &lt;ref bean="dataSource"/&gt;

Spring+Ibatis集成开发实例

 &lt;/property&gt;

Spring+Ibatis集成开发实例

  &lt;property name="sqlMapClient"&gt;

Spring+Ibatis集成开发实例

    &lt;ref bean="sqlMapClient"/&gt;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

&lt;/beans&gt;

DAO实现类:

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

public class TestDAO extends SqlMapClientDaoSupport implements IDAO ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

    public void delete(String id) ...{

Spring+Ibatis集成开发实例

        getSqlMapClientTemplate().delete("deleteUsers", id);

Spring+Ibatis集成开发实例

    }

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

    public Ibatis getById(String id) ...{

Spring+Ibatis集成开发实例

        return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersById",id);

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

    public Ibatis getByName(String name) ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersByName",name);

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

    public List getList() ...{

Spring+Ibatis集成开发实例

        return getSqlMapClientTemplate().queryForList("getAllUsers",null);

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

    public void save(Ibatis ibatis) ...{

Spring+Ibatis集成开发实例

        getSqlMapClientTemplate().insert("insertUsers",ibatis);

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

    public void update(Ibatis ibatis) ...{

Spring+Ibatis集成开发实例

        getSqlMapClientTemplate().update("updateUsers", ibatis);

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

domain对象

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

public class Ibatis ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

private String id;

Spring+Ibatis集成开发实例

   private String name;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

   public String getId() ...{

Spring+Ibatis集成开发实例

        return id;

Spring+Ibatis集成开发实例

   }

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

   public void setId(String id) ...{

Spring+Ibatis集成开发实例

        this.id = id;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

   public String getName() ...{

Spring+Ibatis集成开发实例

        return name;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

   public void setName(String name) ...{

Spring+Ibatis集成开发实例

        this.name = name;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

   public Ibatis()...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

public Ibatis(String id, String name) ...{

Spring+Ibatis集成开发实例

    super();

Spring+Ibatis集成开发实例

    this.id = id;

Spring+Ibatis集成开发实例

    this.name = name;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

测试代码:

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

import java.util.ArrayList;

Spring+Ibatis集成开发实例

import java.util.Iterator;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

import org.springframework.context.ApplicationContext;

Spring+Ibatis集成开发实例

import org.springframework.context.support.ClassPathXmlApplicationContext;

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

public class Test ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

    /** *//**

Spring+Ibatis集成开发实例

     * @param args

Spring+Ibatis集成开发实例

     */

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

    public static void main(String[] args) ...{

Spring+Ibatis集成开发实例

        ApplicationContext context=new ClassPathXmlApplicationContext("ch10/SpringAndIbatis/applicationContext.xml");

Spring+Ibatis集成开发实例

        TestDAO testDAOImpl=(TestDAO)context.getBean("testDAO");

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        //获得全查询列表

Spring+Ibatis集成开发实例

        System.out.println("获得全查询列表");

Spring+Ibatis集成开发实例

        List result=new ArrayList();

Spring+Ibatis集成开发实例

        result=testDAOImpl.getList();

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        for (Iterator iter = result.iterator(); iter.hasNext();) ...{

Spring+Ibatis集成开发实例

            Ibatis element = (Ibatis) iter.next();

Spring+Ibatis集成开发实例

            System.out.println(element.getName());

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        }    

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

       //根据用户名获得用户对象

Spring+Ibatis集成开发实例

        System.out.println("根据用户名获得用户对象");

Spring+Ibatis集成开发实例

        Ibatis ibatis=testDAOImpl.getByName("1");

Spring+Ibatis集成开发实例

        System.out.println(ibatis.getName());

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

       //根据id获得用户对象

Spring+Ibatis集成开发实例

        System.out.println("根据id获得用户对象");

Spring+Ibatis集成开发实例

        Ibatis ibatis1=testDAOImpl.getById("1");

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

       //新增用户对象

Spring+Ibatis集成开发实例

        System.out.println("-----------------");

Spring+Ibatis集成开发实例

        System.out.println("新增用户对象前");

Spring+Ibatis集成开发实例

        List result1=new ArrayList();

Spring+Ibatis集成开发实例

        result1=testDAOImpl.getList();

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        for (Iterator iter = result1.iterator(); iter.hasNext();) ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        testDAOImpl.save(new Ibatis("3","3")); //新增用户

Spring+Ibatis集成开发实例

        System.out.println("新增用户对象后");

Spring+Ibatis集成开发实例

        List result2=new ArrayList();

Spring+Ibatis集成开发实例

        result2=testDAOImpl.getList();

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        for (Iterator iter = result2.iterator(); iter.hasNext();) ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        //删除用户对象

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        System.out.println("删除用户对象前");

Spring+Ibatis集成开发实例

        List result3=new ArrayList();

Spring+Ibatis集成开发实例

        result3=testDAOImpl.getList();

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        for (Iterator iter = result3.iterator(); iter.hasNext();) ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        testDAOImpl.delete("3"); //删除用户

Spring+Ibatis集成开发实例

        System.out.println("删除用户对象后");

Spring+Ibatis集成开发实例

        List result4=new ArrayList();

Spring+Ibatis集成开发实例

        result4=testDAOImpl.getList();

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        for (Iterator iter = result4.iterator(); iter.hasNext();) ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        //更新用户对象

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        System.out.println("更新用户对象前");

Spring+Ibatis集成开发实例

        List result5=new ArrayList();

Spring+Ibatis集成开发实例

        result5=testDAOImpl.getList();

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        for (Iterator iter = result5.iterator(); iter.hasNext();) ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        Ibatis ibatis3=testDAOImpl.getById("1");

Spring+Ibatis集成开发实例

        ibatis3.setName("new1");

Spring+Ibatis集成开发实例

        testDAOImpl.update(ibatis3);//更新用户对象

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        System.out.println("更新用户对象后");

Spring+Ibatis集成开发实例

        List result6=new ArrayList();

Spring+Ibatis集成开发实例

        result6=testDAOImpl.getList();

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

        for (Iterator iter = result6.iterator(); iter.hasNext();) ...{

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

     }

Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例

测试结果:

获得全查询列表

1

2

根据用户名获得用户对象

根据id获得用户对象

-----------------

新增用户对象前

新增用户对象后

3

删除用户对象前

删除用户对象后

更新用户对象前

更新用户对象后

new1