天天看點

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