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

数据库脚本:

 

Spring+Ibatis集成开发实例_xmlCREATE TABLE `ibatis` (
Spring+Ibatis集成开发实例_xml  `id` 
varchar(20NOT NULL,
Spring+Ibatis集成开发实例_xml  `name` 
varchar(20default NULL,
Spring+Ibatis集成开发实例_xml  
PRIMARY KEY  (`id`)
Spring+Ibatis集成开发实例_xml) ENGINE
=InnoDB DEFAULT CHARSET=gb2312;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
insert into ibatis values("1","1");
Spring+Ibatis集成开发实例_xml
insert into ibatis values("2","2");

 

DAO接口:

 

Spring+Ibatis集成开发实例_xmlpackage ch10.SpringAndIbatis;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
import java.util.List;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_java_13Spring+Ibatis集成开发实例_java_14
public interface IDAO ...{
Spring+Ibatis集成开发实例_sql_15  
public List getList();
Spring+Ibatis集成开发实例_sql_15  
public Ibatis getByName(String name);
Spring+Ibatis集成开发实例_sql_15  
public Ibatis getById(String id);
Spring+Ibatis集成开发实例_sql_15  
public void save(Ibatis ibatis);
Spring+Ibatis集成开发实例_sql_15  
public void delete(String id);
Spring+Ibatis集成开发实例_sql_15  
public void update(Ibatis ibatis);
Spring+Ibatis集成开发实例_sql_21}

Spring+Ibatis集成开发实例_xml

 

Ibatis配置文件:

 

Spring+Ibatis集成开发实例_xml<?xml version="1.0" encoding="UTF-8"?> 
Spring+Ibatis集成开发实例_xml
<!DOCTYPE sqlMapConfig 
Spring+Ibatis集成开发实例_xmlPUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
Spring+Ibatis集成开发实例_xml"http://www.ibatis.com/dtd/sql-map-config-2.dtd"
> 
Spring+Ibatis集成开发实例_xml
<sqlMapConfig> 
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
<sqlMap resource="ch10/SpringAndIbatis/Ibatis.xml" /> 
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
</sqlMapConfig>

 

ibatis sql map文件ibatis.xml:

 

Spring+Ibatis集成开发实例_xml<?xml version="1.0" encoding="UTF-8" ?>
Spring+Ibatis集成开发实例_xml
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
Spring+Ibatis集成开发实例_xml
<sqlMap >
Spring+Ibatis集成开发实例_xml  
<typeAlias type="ch10.SpringAndIbatis.Ibatis" alias="user"/>
Spring+Ibatis集成开发实例_xml  
<resultMap id="ibatisTest" class="user" >
Spring+Ibatis集成开发实例_xml    
<result column="id" property="id" jdbcType="VARCHAR" />
Spring+Ibatis集成开发实例_xml    
<result column="name" property="name" jdbcType="VARCHAR" />
Spring+Ibatis集成开发实例_xml  
</resultMap>
Spring+Ibatis集成开发实例_xml  
Spring+Ibatis集成开发实例_xml  
<!-- 获得全查询列表 -->
Spring+Ibatis集成开发实例_xml  
<select id="getAllUsers" resultMap="ibatisTest">
Spring+Ibatis集成开发实例_xml    select * from Ibatis
Spring+Ibatis集成开发实例_xml  
</select>
Spring+Ibatis集成开发实例_xml  
Spring+Ibatis集成开发实例_xml   
<!-- 依据username获得用户对象 -->
Spring+Ibatis集成开发实例_xml   
<select id="getUsersByName" resultMap="ibatisTest">
Spring+Ibatis集成开发实例_xml     select * from Ibatis where name=#value#
Spring+Ibatis集成开发实例_xml  
</select> 
Spring+Ibatis集成开发实例_xml  
Spring+Ibatis集成开发实例_xml  
<!-- 依据id获得用户对象 -->
Spring+Ibatis集成开发实例_xml    
<select id="getUsersById" resultMap="ibatisTest">
Spring+Ibatis集成开发实例_xml     select * from Ibatis where id=#value#
Spring+Ibatis集成开发实例_xml  
</select> 
Spring+Ibatis集成开发实例_xml  
Spring+Ibatis集成开发实例_xml   
<!-- 新增用户对象 -->
Spring+Ibatis集成开发实例_xml   
<insert id="insertUsers" parameterClass="user">
Spring+Ibatis集成开发实例_xml      insert into ibatis (id,name) values (#id#,#name#)
Spring+Ibatis集成开发实例_xml   
</insert>
Spring+Ibatis集成开发实例_xml   
Spring+Ibatis集成开发实例_xml   
<!-- 删除用户对象 -->
Spring+Ibatis集成开发实例_xml   
<delete id="deleteUsers">
Spring+Ibatis集成开发实例_xml     delete from ibatis where id=#value#
Spring+Ibatis集成开发实例_xml   
</delete>
Spring+Ibatis集成开发实例_xml   
Spring+Ibatis集成开发实例_xml   
<!-- 更新用户对象 -->
Spring+Ibatis集成开发实例_xml   
<delete id="updateUsers" parameterClass="user">
Spring+Ibatis集成开发实例_xml      update ibatis set name=#name# where id=#id#
Spring+Ibatis集成开发实例_xml   
</delete>
Spring+Ibatis集成开发实例_xml
</sqlMap>
Spring+Ibatis集成开发实例_xml

spring配置文件

 

Spring+Ibatis集成开发实例_xml<?xml version="1.0" encoding="UTF-8"?>
Spring+Ibatis集成开发实例_xml
<beans
Spring+Ibatis集成开发实例_xml    
xmlns="http://www.springframework.org/schema/beans"
Spring+Ibatis集成开发实例_xml    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
Spring+Ibatis集成开发实例_xml    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
Spring+Ibatis集成开发实例_xml  
<property name="driverClassName">
Spring+Ibatis集成开发实例_xml    
<value>com.mysql.jdbc.Driver</value>
Spring+Ibatis集成开发实例_xml  
</property>
Spring+Ibatis集成开发实例_xml  
<property name="username">
Spring+Ibatis集成开发实例_xml    
<value>root</value>
Spring+Ibatis集成开发实例_xml  
</property>
Spring+Ibatis集成开发实例_xml  
<property name="password">
Spring+Ibatis集成开发实例_xml    
<value>1234</value>
Spring+Ibatis集成开发实例_xml  
</property>
Spring+Ibatis集成开发实例_xml  
<property name="url">
Spring+Ibatis集成开发实例_xml    
<value>jdbc:mysql://localhost:3306/spring</value>
Spring+Ibatis集成开发实例_xml  
</property>
Spring+Ibatis集成开发实例_xml
</bean>
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
Spring+Ibatis集成开发实例_xml  
<!-- 此处应注入ibatis配置文件,而非sqlMap文件,否则会出现“there is no statement.....异常” -->
Spring+Ibatis集成开发实例_xml  
<property name="configLocation">
Spring+Ibatis集成开发实例_xml     
<value>ch10/SpringAndIbatis/sqlMapConfig.xml</value>
Spring+Ibatis集成开发实例_xml  
</property>
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
</bean>
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
<bean id="testDAO" class="ch10.SpringAndIbatis.TestDAO">
Spring+Ibatis集成开发实例_xml   
<property name="dataSource">
Spring+Ibatis集成开发实例_xml   
<ref bean="dataSource"/>
Spring+Ibatis集成开发实例_xml 
</property>
Spring+Ibatis集成开发实例_xml  
<property name="sqlMapClient">
Spring+Ibatis集成开发实例_xml    
<ref bean="sqlMapClient"/>
Spring+Ibatis集成开发实例_xml  
</property>
Spring+Ibatis集成开发实例_xml
</bean>
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
</beans>

DAO实现类:

 

Spring+Ibatis集成开发实例_xmlpackage ch10.SpringAndIbatis;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
import java.util.List;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_java_13Spring+Ibatis集成开发实例_java_14
public class TestDAO extends SqlMapClientDaoSupport implements IDAO ...{
Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122    
public void delete(String id) ...{
Spring+Ibatis集成开发实例_sql_15        getSqlMapClientTemplate().delete(
"deleteUsers", id);
Spring+Ibatis集成开发实例_spring_124    }

Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122    
public Ibatis getById(String id) ...{
Spring+Ibatis集成开发实例_sql_15        
return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersById",id);
Spring+Ibatis集成开发实例_spring_124    }

Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122    
public Ibatis getByName(String name) ...{
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_sql_15        
return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersByName",name);
Spring+Ibatis集成开发实例_spring_124    }

Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122    
public List getList() ...{
Spring+Ibatis集成开发实例_sql_15        
return getSqlMapClientTemplate().queryForList("getAllUsers",null);
Spring+Ibatis集成开发实例_spring_124    }

Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122    
public void save(Ibatis ibatis) ...{
Spring+Ibatis集成开发实例_sql_15        getSqlMapClientTemplate().insert(
"insertUsers",ibatis);
Spring+Ibatis集成开发实例_spring_124    }

Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122    
public void update(Ibatis ibatis) ...{
Spring+Ibatis集成开发实例_sql_15        getSqlMapClientTemplate().update(
"updateUsers", ibatis);
Spring+Ibatis集成开发实例_spring_124    }

Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_sql_21}

Spring+Ibatis集成开发实例_xml

domain对象

 

Spring+Ibatis集成开发实例_xmlpackage ch10.SpringAndIbatis;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_java_13Spring+Ibatis集成开发实例_java_14
public class Ibatis ...{
Spring+Ibatis集成开发实例_sql_15  
Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_sql_15
private String id;
Spring+Ibatis集成开发实例_sql_15   
private String name;
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122   
public String getId() ...{
Spring+Ibatis集成开发实例_sql_15        
return id;
Spring+Ibatis集成开发实例_spring_124   }

Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122   
public void setId(String id) ...{
Spring+Ibatis集成开发实例_sql_15        
this.id = id;
Spring+Ibatis集成开发实例_spring_124   }

Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122   
public String getName() ...{
Spring+Ibatis集成开发实例_sql_15        
return name;
Spring+Ibatis集成开发实例_spring_124   }

Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122   
public void setName(String name) ...{
Spring+Ibatis集成开发实例_sql_15        
this.name = name;
Spring+Ibatis集成开发实例_spring_124   }

Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122   
public Ibatis()...{
Spring+Ibatis集成开发实例_sql_15       
Spring+Ibatis集成开发实例_spring_124   }

Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122
public Ibatis(String id, String name) ...{
Spring+Ibatis集成开发实例_sql_15    
super();
Spring+Ibatis集成开发实例_sql_15    
this.id = id;
Spring+Ibatis集成开发实例_sql_15    
this.name = name;
Spring+Ibatis集成开发实例_spring_124}

Spring+Ibatis集成开发实例_sql_21}

Spring+Ibatis集成开发实例_xml

 

 

測试代码:

 

 

Spring+Ibatis集成开发实例_xmlpackage ch10.SpringAndIbatis;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
import java.util.ArrayList;
Spring+Ibatis集成开发实例_xml
import java.util.Iterator;
Spring+Ibatis集成开发实例_xml
import java.util.List;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_xml
import org.springframework.context.ApplicationContext;
Spring+Ibatis集成开发实例_xml
import org.springframework.context.support.ClassPathXmlApplicationContext;
Spring+Ibatis集成开发实例_xml
Spring+Ibatis集成开发实例_java_13Spring+Ibatis集成开发实例_java_14
public class Test ...{
Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122    
/** *//**
Spring+Ibatis集成开发实例_sql_15     * 
@param args
Spring+Ibatis集成开发实例_spring_124     
*/

Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122    
public static void main(String[] args) ...{
Spring+Ibatis集成开发实例_sql_15        ApplicationContext context
=new ClassPathXmlApplicationContext("ch10/SpringAndIbatis/applicationContext.xml");
Spring+Ibatis集成开发实例_sql_15        TestDAO testDAOImpl
=(TestDAO)context.getBean("testDAO");
Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_sql_15        
//获得全查询列表
Spring+Ibatis集成开发实例_sql_15
        System.out.println("获得全查询列表");
Spring+Ibatis集成开发实例_sql_15        List result
=new ArrayList();
Spring+Ibatis集成开发实例_sql_15        result
=testDAOImpl.getList();
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122        
for (Iterator iter = result.iterator(); iter.hasNext();) ...{
Spring+Ibatis集成开发实例_sql_15            Ibatis element 
= (Ibatis) iter.next();
Spring+Ibatis集成开发实例_sql_15            System.out.println(element.getName());
Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_spring_124        }
    
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_sql_15       
//依据username获得用户对象
Spring+Ibatis集成开发实例_sql_15
        System.out.println("依据username获得用户对象");
Spring+Ibatis集成开发实例_sql_15        Ibatis ibatis
=testDAOImpl.getByName("1");
Spring+Ibatis集成开发实例_sql_15        System.out.println(ibatis.getName());
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_sql_15       
//依据id获得用户对象
Spring+Ibatis集成开发实例_sql_15
        System.out.println("依据id获得用户对象");
Spring+Ibatis集成开发实例_sql_15        Ibatis ibatis1
=testDAOImpl.getById("1");
Spring+Ibatis集成开发实例_sql_15        System.out.println(ibatis.getName());
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_sql_15       
//新增用户对象
Spring+Ibatis集成开发实例_sql_15
        System.out.println("-----------------");
Spring+Ibatis集成开发实例_sql_15        System.out.println(
"新增用户对象前");
Spring+Ibatis集成开发实例_sql_15        List result1
=new ArrayList();
Spring+Ibatis集成开发实例_sql_15        result1
=testDAOImpl.getList();
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122        
for (Iterator iter = result1.iterator(); iter.hasNext();) ...{
Spring+Ibatis集成开发实例_sql_15            Ibatis element 
= (Ibatis) iter.next();
Spring+Ibatis集成开发实例_sql_15            System.out.println(element.getName());
Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_spring_124        }
    
Spring+Ibatis集成开发实例_sql_15        testDAOImpl.save(
new Ibatis("3","3")); //新增用户
Spring+Ibatis集成开发实例_sql_15
        System.out.println("新增用户对象后");
Spring+Ibatis集成开发实例_sql_15        List result2
=new ArrayList();
Spring+Ibatis集成开发实例_sql_15        result2
=testDAOImpl.getList();
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122        
for (Iterator iter = result2.iterator(); iter.hasNext();) ...{
Spring+Ibatis集成开发实例_sql_15            Ibatis element 
= (Ibatis) iter.next();
Spring+Ibatis集成开发实例_sql_15            System.out.println(element.getName());
Spring+Ibatis集成开发实例_spring_124        }
    
Spring+Ibatis集成开发实例_sql_15        System.out.println(
"-----------------");
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_sql_15        
//删除用户对象
Spring+Ibatis集成开发实例_sql_15
        System.out.println("-----------------");
Spring+Ibatis集成开发实例_sql_15        System.out.println(
"删除用户对象前");
Spring+Ibatis集成开发实例_sql_15        List result3
=new ArrayList();
Spring+Ibatis集成开发实例_sql_15        result3
=testDAOImpl.getList();
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122        
for (Iterator iter = result3.iterator(); iter.hasNext();) ...{
Spring+Ibatis集成开发实例_sql_15            Ibatis element 
= (Ibatis) iter.next();
Spring+Ibatis集成开发实例_sql_15            System.out.println(element.getName());
Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_spring_124        }
    
Spring+Ibatis集成开发实例_sql_15        testDAOImpl.delete(
"3"); //删除用户
Spring+Ibatis集成开发实例_sql_15
        System.out.println("删除用户对象后");
Spring+Ibatis集成开发实例_sql_15        List result4
=new ArrayList();
Spring+Ibatis集成开发实例_sql_15        result4
=testDAOImpl.getList();
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122        
for (Iterator iter = result4.iterator(); iter.hasNext();) ...{
Spring+Ibatis集成开发实例_sql_15            Ibatis element 
= (Ibatis) iter.next();
Spring+Ibatis集成开发实例_sql_15            System.out.println(element.getName());
Spring+Ibatis集成开发实例_spring_124        }
    
Spring+Ibatis集成开发实例_sql_15        System.out.println(
"-----------------");
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_sql_15        
//更新用户对象
Spring+Ibatis集成开发实例_sql_15
        System.out.println("-----------------");
Spring+Ibatis集成开发实例_sql_15        System.out.println(
"更新用户对象前");
Spring+Ibatis集成开发实例_sql_15        List result5
=new ArrayList();
Spring+Ibatis集成开发实例_sql_15        result5
=testDAOImpl.getList();
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122        
for (Iterator iter = result5.iterator(); iter.hasNext();) ...{
Spring+Ibatis集成开发实例_sql_15            Ibatis element 
= (Ibatis) iter.next();
Spring+Ibatis集成开发实例_sql_15            System.out.println(element.getName());
Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_spring_124        }
    
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_sql_15        Ibatis ibatis3
=testDAOImpl.getById("1");
Spring+Ibatis集成开发实例_sql_15        ibatis3.setName(
"new1");
Spring+Ibatis集成开发实例_sql_15        testDAOImpl.update(ibatis3);
//更新用户对象
Spring+Ibatis集成开发实例_sql_15
        
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_sql_15        System.out.println(
"更新用户对象后");
Spring+Ibatis集成开发实例_sql_15        List result6
=new ArrayList();
Spring+Ibatis集成开发实例_sql_15        result6
=testDAOImpl.getList();
Spring+Ibatis集成开发实例_xml_121Spring+Ibatis集成开发实例_spring_122        
for (Iterator iter = result6.iterator(); iter.hasNext();) ...{
Spring+Ibatis集成开发实例_sql_15            Ibatis element 
= (Ibatis) iter.next();
Spring+Ibatis集成开发实例_sql_15            System.out.println(element.getName());
Spring+Ibatis集成开发实例_spring_124        }
    
Spring+Ibatis集成开发实例_sql_15        System.out.println(
"-----------------");
Spring+Ibatis集成开发实例_sql_15        
Spring+Ibatis集成开发实例_spring_124     }

Spring+Ibatis集成开发实例_sql_15
Spring+Ibatis集成开发实例_sql_21}

Spring+Ibatis集成开发实例_xml

 

測试结果:

获得全查询列表
1
2
依据username获得用户对象
1
依据id获得用户对象
1
-----------------
新增用户对象前
1
2
新增用户对象后
1
2
3
-----------------
-----------------
删除用户对象前
1
2
3
删除用户对象后
1
2
-----------------
-----------------
更新用户对象前
1
2
更新用户对象后
new1
2
-----------------