Spring+Ibatis集成开发实例
首先简历数据库demo(本文选mysql)
数据库脚本:
 CREATE TABLE `ibatis` (
CREATE TABLE `ibatis` ( `id` varchar(20) NOT NULL,
  `id` varchar(20) NOT NULL, `name` varchar(20) default NULL,
  `name` varchar(20) default NULL, PRIMARY KEY  (`id`)
  PRIMARY KEY  (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
 insert into ibatis values("1","1");
insert into ibatis values("1","1"); insert into ibatis values("2","2");
insert into ibatis values("2","2");
DAO接口:
 package ch10.SpringAndIbatis;
package ch10.SpringAndIbatis;
 import java.util.List;
import java.util.List;
 public interface IDAO {
public interface IDAO { public List getList();
  public List getList(); public Ibatis getByName(String name);
  public Ibatis getByName(String name); public Ibatis getById(String id);
  public Ibatis getById(String id); public void save(Ibatis ibatis);
  public void save(Ibatis ibatis); public void delete(String id);
  public void delete(String id); public void update(Ibatis ibatis);
  public void update(Ibatis ibatis); }
}
Ibatis配置文件:
 <?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE sqlMapConfig
<!DOCTYPE sqlMapConfig  PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"  "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">  <sqlMapConfig>
<sqlMapConfig> 
 <sqlMap resource="ch10/SpringAndIbatis/Ibatis.xml" />
<sqlMap resource="ch10/SpringAndIbatis/Ibatis.xml" /> 
 </sqlMapConfig>
</sqlMapConfig>
ibatis sql map文件ibatis.xml:
 <?xml version="1.0" encoding="UTF-8" ?>
<?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" >
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" > <sqlMap >
<sqlMap > <typeAlias type="ch10.SpringAndIbatis.Ibatis" alias="user"/>
  <typeAlias type="ch10.SpringAndIbatis.Ibatis" alias="user"/> <resultMap id="ibatisTest" class="user" >
  <resultMap id="ibatisTest" class="user" > <result column="id" property="id" jdbcType="VARCHAR" />
    <result column="id" property="id" jdbcType="VARCHAR" /> <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="name" property="name" jdbcType="VARCHAR" /> </resultMap>
  </resultMap> 
   <!-- 获得全查询列表 -->
  <!-- 获得全查询列表 --> <select id="getAllUsers" resultMap="ibatisTest">
  <select id="getAllUsers" resultMap="ibatisTest"> select * from Ibatis
    select * from Ibatis </select>
  </select> 
   <!-- 依据username获得用户对象 -->
   <!-- 依据username获得用户对象 --> <select id="getUsersByName" resultMap="ibatisTest">
   <select id="getUsersByName" resultMap="ibatisTest"> select * from Ibatis where name=#value#
     select * from Ibatis where name=#value# </select>
  </select>  
   <!-- 依据id获得用户对象 -->
  <!-- 依据id获得用户对象 --> <select id="getUsersById" resultMap="ibatisTest">
    <select id="getUsersById" resultMap="ibatisTest"> select * from Ibatis where id=#value#
     select * from Ibatis where id=#value# </select>
  </select>  
   <!-- 新增用户对象 -->
   <!-- 新增用户对象 --> <insert id="insertUsers" parameterClass="user">
   <insert id="insertUsers" parameterClass="user"> insert into ibatis (id,name) values (#id#,#name#)
      insert into ibatis (id,name) values (#id#,#name#) </insert>
   </insert> 
    <!-- 删除用户对象 -->
   <!-- 删除用户对象 --> <delete id="deleteUsers">
   <delete id="deleteUsers"> delete from ibatis where id=#value#
     delete from ibatis where id=#value# </delete>
   </delete> 
    <!-- 更新用户对象 -->
   <!-- 更新用户对象 --> <delete id="updateUsers" parameterClass="user">
   <delete id="updateUsers" parameterClass="user"> update ibatis set name=#name# where id=#id#
      update ibatis set name=#name# where id=#id# </delete>
   </delete> </sqlMap>
</sqlMap>
spring配置文件
 <?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?> <beans
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName">
  <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value>
    <value>com.mysql.jdbc.Driver</value> </property>
  </property> <property name="username">
  <property name="username"> <value>root</value>
    <value>root</value> </property>
  </property> <property name="password">
  <property name="password"> <value>1234</value>
    <value>1234</value> </property>
  </property> <property name="url">
  <property name="url"> <value>jdbc:mysql://localhost:3306/spring</value>
    <value>jdbc:mysql://localhost:3306/spring</value> </property>
  </property> </bean>
</bean>
 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <!-- 此处应注入ibatis配置文件,而非sqlMap文件,否则会出现“there is no statement.....异常” -->
  <!-- 此处应注入ibatis配置文件,而非sqlMap文件,否则会出现“there is no statement.....异常” --> <property name="configLocation">
  <property name="configLocation"> <value>ch10/SpringAndIbatis/sqlMapConfig.xml</value>
     <value>ch10/SpringAndIbatis/sqlMapConfig.xml</value> </property>
  </property>
 </bean>
</bean>
 <bean id="testDAO" class="ch10.SpringAndIbatis.TestDAO">
<bean id="testDAO" class="ch10.SpringAndIbatis.TestDAO"> <property name="dataSource">
   <property name="dataSource"> <ref bean="dataSource"/>
   <ref bean="dataSource"/> </property>
 </property> <property name="sqlMapClient">
  <property name="sqlMapClient"> <ref bean="sqlMapClient"/>
    <ref bean="sqlMapClient"/> </property>
  </property> </bean>
</bean>
 </beans>
</beans>DAO实现类:
 package ch10.SpringAndIbatis;
package ch10.SpringAndIbatis;
 import java.util.List;
import java.util.List;
 import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
 public class TestDAO extends SqlMapClientDaoSupport implements IDAO {
public class TestDAO extends SqlMapClientDaoSupport implements IDAO {
 public void delete(String id) {
    public void delete(String id) { getSqlMapClientTemplate().delete("deleteUsers", id);
        getSqlMapClientTemplate().delete("deleteUsers", id); }
    }
 public Ibatis getById(String id) {
    public Ibatis getById(String id) { return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersById",id);
        return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersById",id); }
    }
 public Ibatis getByName(String name) {
    public Ibatis getByName(String name) { 
         return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersByName",name);
        return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersByName",name); }
    }
 public List getList() {
    public List getList() { return getSqlMapClientTemplate().queryForList("getAllUsers",null);
        return getSqlMapClientTemplate().queryForList("getAllUsers",null); }
    }
 public void save(Ibatis ibatis) {
    public void save(Ibatis ibatis) { getSqlMapClientTemplate().insert("insertUsers",ibatis);
        getSqlMapClientTemplate().insert("insertUsers",ibatis); }
    }
 public void update(Ibatis ibatis) {
    public void update(Ibatis ibatis) { getSqlMapClientTemplate().update("updateUsers", ibatis);
        getSqlMapClientTemplate().update("updateUsers", ibatis); }
    }
 }
}
domain对象
 package ch10.SpringAndIbatis;
package ch10.SpringAndIbatis;
 public class Ibatis {
public class Ibatis { 
  
 private String id;
private String id; private String name;
   private String name; public String getId() {
   public String getId() { return id;
        return id; }
   } public void setId(String id) {
   public void setId(String id) { this.id = id;
        this.id = id; }
   } public String getName() {
   public String getName() { return name;
        return name; }
   } public void setName(String name) {
   public void setName(String name) { this.name = name;
        this.name = name; }
   } public Ibatis(){
   public Ibatis(){ 
        }
   } public Ibatis(String id, String name) {
public Ibatis(String id, String name) { super();
    super(); this.id = id;
    this.id = id; this.name = name;
    this.name = name; }
} }
}
測试代码:
 package ch10.SpringAndIbatis;
package ch10.SpringAndIbatis;
 import java.util.ArrayList;
import java.util.ArrayList; import java.util.Iterator;
import java.util.Iterator; import java.util.List;
import java.util.List;
 import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 public class Test {
public class Test {
 /**
    /** * @param args
     * @param args */
     */ public static void main(String[] args) {
    public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("ch10/SpringAndIbatis/applicationContext.xml");
        ApplicationContext context=new ClassPathXmlApplicationContext("ch10/SpringAndIbatis/applicationContext.xml"); TestDAO testDAOImpl=(TestDAO)context.getBean("testDAO");
        TestDAO testDAOImpl=(TestDAO)context.getBean("testDAO");
 //获得全查询列表
        //获得全查询列表 System.out.println("获得全查询列表");
        System.out.println("获得全查询列表"); List result=new ArrayList();
        List result=new ArrayList(); result=testDAOImpl.getList();
        result=testDAOImpl.getList(); for (Iterator iter = result.iterator(); iter.hasNext();) {
        for (Iterator iter = result.iterator(); iter.hasNext();) { Ibatis element = (Ibatis) iter.next();
            Ibatis element = (Ibatis) iter.next(); System.out.println(element.getName());
            System.out.println(element.getName());
 }
        }     
         //依据username获得用户对象
       //依据username获得用户对象 System.out.println("依据username获得用户对象");
        System.out.println("依据username获得用户对象"); Ibatis ibatis=testDAOImpl.getByName("1");
        Ibatis ibatis=testDAOImpl.getByName("1"); System.out.println(ibatis.getName());
        System.out.println(ibatis.getName()); 
         //依据id获得用户对象
       //依据id获得用户对象 System.out.println("依据id获得用户对象");
        System.out.println("依据id获得用户对象"); Ibatis ibatis1=testDAOImpl.getById("1");
        Ibatis ibatis1=testDAOImpl.getById("1"); System.out.println(ibatis.getName());
        System.out.println(ibatis.getName()); 
         //新增用户对象
       //新增用户对象 System.out.println("-----------------");
        System.out.println("-----------------"); System.out.println("新增用户对象前");
        System.out.println("新增用户对象前"); List result1=new ArrayList();
        List result1=new ArrayList(); result1=testDAOImpl.getList();
        result1=testDAOImpl.getList(); for (Iterator iter = result1.iterator(); iter.hasNext();) {
        for (Iterator iter = result1.iterator(); iter.hasNext();) { Ibatis element = (Ibatis) iter.next();
            Ibatis element = (Ibatis) iter.next(); System.out.println(element.getName());
            System.out.println(element.getName());
 }
        }     testDAOImpl.save(new Ibatis("3","3")); //新增用户
        testDAOImpl.save(new Ibatis("3","3")); //新增用户 System.out.println("新增用户对象后");
        System.out.println("新增用户对象后"); List result2=new ArrayList();
        List result2=new ArrayList(); result2=testDAOImpl.getList();
        result2=testDAOImpl.getList(); for (Iterator iter = result2.iterator(); iter.hasNext();) {
        for (Iterator iter = result2.iterator(); iter.hasNext();) { Ibatis element = (Ibatis) iter.next();
            Ibatis element = (Ibatis) iter.next(); System.out.println(element.getName());
            System.out.println(element.getName()); }
        }     System.out.println("-----------------");
        System.out.println("-----------------"); 
         //删除用户对象
        //删除用户对象 System.out.println("-----------------");
        System.out.println("-----------------"); System.out.println("删除用户对象前");
        System.out.println("删除用户对象前"); List result3=new ArrayList();
        List result3=new ArrayList(); result3=testDAOImpl.getList();
        result3=testDAOImpl.getList(); for (Iterator iter = result3.iterator(); iter.hasNext();) {
        for (Iterator iter = result3.iterator(); iter.hasNext();) { Ibatis element = (Ibatis) iter.next();
            Ibatis element = (Ibatis) iter.next(); System.out.println(element.getName());
            System.out.println(element.getName());
 }
        }     testDAOImpl.delete("3"); //删除用户
        testDAOImpl.delete("3"); //删除用户 System.out.println("删除用户对象后");
        System.out.println("删除用户对象后"); List result4=new ArrayList();
        List result4=new ArrayList(); result4=testDAOImpl.getList();
        result4=testDAOImpl.getList(); for (Iterator iter = result4.iterator(); iter.hasNext();) {
        for (Iterator iter = result4.iterator(); iter.hasNext();) { Ibatis element = (Ibatis) iter.next();
            Ibatis element = (Ibatis) iter.next(); System.out.println(element.getName());
            System.out.println(element.getName()); }
        }     System.out.println("-----------------");
        System.out.println("-----------------"); 
         
         //更新用户对象
        //更新用户对象 System.out.println("-----------------");
        System.out.println("-----------------"); System.out.println("更新用户对象前");
        System.out.println("更新用户对象前"); List result5=new ArrayList();
        List result5=new ArrayList(); result5=testDAOImpl.getList();
        result5=testDAOImpl.getList(); for (Iterator iter = result5.iterator(); iter.hasNext();) {
        for (Iterator iter = result5.iterator(); iter.hasNext();) { Ibatis element = (Ibatis) iter.next();
            Ibatis element = (Ibatis) iter.next(); System.out.println(element.getName());
            System.out.println(element.getName());
 }
        }     
         Ibatis ibatis3=testDAOImpl.getById("1");
        Ibatis ibatis3=testDAOImpl.getById("1"); ibatis3.setName("new1");
        ibatis3.setName("new1"); testDAOImpl.update(ibatis3);//更新用户对象
        testDAOImpl.update(ibatis3);//更新用户对象 
         
         System.out.println("更新用户对象后");
        System.out.println("更新用户对象后"); List result6=new ArrayList();
        List result6=new ArrayList(); result6=testDAOImpl.getList();
        result6=testDAOImpl.getList(); for (Iterator iter = result6.iterator(); iter.hasNext();) {
        for (Iterator iter = result6.iterator(); iter.hasNext();) { Ibatis element = (Ibatis) iter.next();
            Ibatis element = (Ibatis) iter.next(); System.out.println(element.getName());
            System.out.println(element.getName()); }
        }     System.out.println("-----------------");
        System.out.println("-----------------"); 
         }
     }
 }
}
測试结果:
获得全查询列表
1
2
依据username获得用户对象
1
依据id获得用户对象
1
-----------------
新增用户对象前
1
2
新增用户对象后
1
2
3
-----------------
-----------------
删除用户对象前
1
2
3
删除用户对象后
1
2
-----------------
-----------------
更新用户对象前
1
2
更新用户对象后
new1
2
-----------------
 
                    
                     
                    
                 
                    
                

 
     
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号