博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring+Ibatis集成开发实例
阅读量:5825 次
发布时间:2019-06-18

本文共 7567 字,大约阅读时间需要 25 分钟。

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

数据库脚本:

 

CREATE
 
TABLE
 `ibatis` (
  `id` 
varchar
(
20
NOT
 
NULL
,
  `name` 
varchar
(
20
default
 
NULL
,
  
PRIMARY
 
KEY
  (`id`)
) ENGINE
=
InnoDB 
DEFAULT
 CHARSET
=
gb2312;
insert
 
into
 ibatis 
values
("
1
","
1
");
insert
 
into
 ibatis 
values
("
2
","
2
");

 

DAO接口:

 

package
 ch10.SpringAndIbatis;
import
 java.util.List;
public
 
interface
 IDAO 
...
{
  
public List getList();
  
public Ibatis getByName(String name);
  
public Ibatis getById(String id);
  
public void save(Ibatis ibatis);
  
public void delete(String id);
  
public void update(Ibatis ibatis);
}

 

Ibatis配置文件:

 

<?
xml version="1.0" encoding="UTF-8"
?>
 
<!
DOCTYPE sqlMapConfig 
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
"http://www.ibatis.com/dtd/sql-map-config-2.dtd"
>
 
<
sqlMapConfig
>
 
<
sqlMap 
resource
="ch10/SpringAndIbatis/Ibatis.xml"
 
/>
 
</
sqlMapConfig
>

 

ibatis sql map文件ibatis.xml:

 

<?
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 
>
  
<
typeAlias 
type
="ch10.SpringAndIbatis.Ibatis"
 alias
="user"
/>
  
<
resultMap 
id
="ibatisTest"
 class
="user"
 
>
    
<
result 
column
="id"
 property
="id"
 jdbcType
="VARCHAR"
 
/>
    
<
result 
column
="name"
 property
="name"
 jdbcType
="VARCHAR"
 
/>
  
</
resultMap
>
  
  
<!--
 获得全查询列表 
-->
  
<
select 
id
="getAllUsers"
 resultMap
="ibatisTest"
>
    select * from Ibatis
  
</
select
>
  
   
<!--
 依据username获得用户对象 
-->
   
<
select 
id
="getUsersByName"
 resultMap
="ibatisTest"
>
     select * from Ibatis where name=#value#
  
</
select
>
 
  
  
<!--
 依据id获得用户对象 
-->
    
<
select 
id
="getUsersById"
 resultMap
="ibatisTest"
>
     select * from Ibatis where id=#value#
  
</
select
>
 
  
   
<!--
 新增用户对象 
-->
   
<
insert 
id
="insertUsers"
 parameterClass
="user"
>
      insert into ibatis (id,name) values (#id#,#name#)
   
</
insert
>
   
   
<!--
 删除用户对象 
-->
   
<
delete 
id
="deleteUsers"
>
     delete from ibatis where id=#value#
   
</
delete
>
   
   
<!--
 更新用户对象 
-->
   
<
delete 
id
="updateUsers"
 parameterClass
="user"
>
      update ibatis set name=#name# where id=#id#
   
</
delete
>
</
sqlMap
>

spring配置文件

 

<?
xml version="1.0" encoding="UTF-8"
?>
<
beans
    
xmlns
="http://www.springframework.org/schema/beans"
    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"
>
<
bean 
id
="dataSource"
 class
="org.apache.commons.dbcp.BasicDataSource"
>
  
<
property 
name
="driverClassName"
>
    
<
value
>
com.mysql.jdbc.Driver
</
value
>
  
</
property
>
  
<
property 
name
="username"
>
    
<
value
>
root
</
value
>
  
</
property
>
  
<
property 
name
="password"
>
    
<
value
>
1234
</
value
>
  
</
property
>
  
<
property 
name
="url"
>
    
<
value
>
jdbc:mysql://localhost:3306/spring
</
value
>
  
</
property
>
</
bean
>
<
bean 
id
="sqlMapClient"
 class
="org.springframework.orm.ibatis.SqlMapClientFactoryBean"
>
  
<!--
 此处应注入ibatis配置文件,而非sqlMap文件,否则会出现“there is no statement.....异常” 
-->
  
<
property 
name
="configLocation"
>
     
<
value
>
ch10/SpringAndIbatis/sqlMapConfig.xml
</
value
>
  
</
property
>
</
bean
>
<
bean 
id
="testDAO"
 class
="ch10.SpringAndIbatis.TestDAO"
>
   
<
property 
name
="dataSource"
>
   
<
ref 
bean
="dataSource"
/>
 
</
property
>
  
<
property 
name
="sqlMapClient"
>
    
<
ref 
bean
="sqlMapClient"
/>
  
</
property
>
</
bean
>
</
beans
>

DAO实现类:

 

package
 ch10.SpringAndIbatis;
import
 java.util.List;
import
 org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
public
 
class
 TestDAO 
extends
 SqlMapClientDaoSupport 
implements
 IDAO 
...
{
    
public void delete(String id) ...{
        getSqlMapClientTemplate().delete(
"deleteUsers", id);
    }
    
public Ibatis getById(String id) ...{
        
return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersById",id);
    }
    
public Ibatis getByName(String name) ...{
        
        
return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersByName",name);
    }
    
public List getList() ...{
        
return getSqlMapClientTemplate().queryForList("getAllUsers",null);
    }
    
public void save(Ibatis ibatis) ...{
        getSqlMapClientTemplate().insert(
"insertUsers",ibatis);
    }
    
public void update(Ibatis ibatis) ...{
        getSqlMapClientTemplate().update(
"updateUsers", ibatis);
    }
}

domain对象

 

package
 ch10.SpringAndIbatis;
public
 
class
 Ibatis 
...
{
  
private String id;
   
private String name;
   
public String getId() ...{
        
return id;
   }
   
public void setId(String id) ...{
        
this.id = id;
   }
   
public String getName() ...{
        
return name;
   }
   
public void setName(String name) ...{
        
this.name = name;
   }
   
public Ibatis()...{
       
   }
public Ibatis(String id, String name) ...{
    
super();
    
this.id = id;
    
this.name = name;
}
}

 

 

測试代码:

 

 

package
 ch10.SpringAndIbatis;
import
 java.util.ArrayList;
import
 java.util.Iterator;
import
 java.util.List;
import
 org.springframework.context.ApplicationContext;
import
 org.springframework.context.support.ClassPathXmlApplicationContext;
public
 
class
 Test 
...
{
    
/** *//**
     * 
@param args
     
*/
    
public static void main(String[] args) ...{
        ApplicationContext context
=new ClassPathXmlApplicationContext("ch10/SpringAndIbatis/applicationContext.xml");
        TestDAO testDAOImpl
=(TestDAO)context.getBean("testDAO");
        
//获得全查询列表
        System.out.println("获得全查询列表");
        List result
=new ArrayList();
        result
=testDAOImpl.getList();
        
for (Iterator iter = result.iterator(); iter.hasNext();) ...{
            Ibatis element 
= (Ibatis) iter.next();
            System.out.println(element.getName());
        }
    
        
       
//依据username获得用户对象
        System.out.println("依据username获得用户对象");
        Ibatis ibatis
=testDAOImpl.getByName("1");
        System.out.println(ibatis.getName());
        
       
//依据id获得用户对象
        System.out.println("依据id获得用户对象");
        Ibatis ibatis1
=testDAOImpl.getById("1");
        System.out.println(ibatis.getName());
        
       
//新增用户对象
        System.out.println("-----------------");
        System.out.println(
"新增用户对象前");
        List result1
=new ArrayList();
        result1
=testDAOImpl.getList();
        
for (Iterator iter = result1.iterator(); iter.hasNext();) ...{
            Ibatis element 
= (Ibatis) iter.next();
            System.out.println(element.getName());
        }
    
        testDAOImpl.save(
new Ibatis("3","3")); //新增用户
        System.out.println("新增用户对象后");
        List result2
=new ArrayList();
        result2
=testDAOImpl.getList();
        
for (Iterator iter = result2.iterator(); iter.hasNext();) ...{
            Ibatis element 
= (Ibatis) iter.next();
            System.out.println(element.getName());
        }
    
        System.out.println(
"-----------------");
        
        
//删除用户对象
        System.out.println("-----------------");
        System.out.println(
"删除用户对象前");
        List result3
=new ArrayList();
        result3
=testDAOImpl.getList();
        
for (Iterator iter = result3.iterator(); iter.hasNext();) ...{
            Ibatis element 
= (Ibatis) iter.next();
            System.out.println(element.getName());
        }
    
        testDAOImpl.delete(
"3"); //删除用户
        System.out.println("删除用户对象后");
        List result4
=new ArrayList();
        result4
=testDAOImpl.getList();
        
for (Iterator iter = result4.iterator(); iter.hasNext();) ...{
            Ibatis element 
= (Ibatis) iter.next();
            System.out.println(element.getName());
        }
    
        System.out.println(
"-----------------");
        
        
        
//更新用户对象
        System.out.println("-----------------");
        System.out.println(
"更新用户对象前");
        List result5
=new ArrayList();
        result5
=testDAOImpl.getList();
        
for (Iterator iter = result5.iterator(); iter.hasNext();) ...{
            Ibatis element 
= (Ibatis) iter.next();
            System.out.println(element.getName());
        }
    
        
        Ibatis ibatis3
=testDAOImpl.getById("1");
        ibatis3.setName(
"new1");
        testDAOImpl.update(ibatis3);
//更新用户对象
        
        
        System.out.println(
"更新用户对象后");
        List result6
=new ArrayList();
        result6
=testDAOImpl.getList();
        
for (Iterator iter = result6.iterator(); iter.hasNext();) ...{
            Ibatis element 
= (Ibatis) iter.next();
            System.out.println(element.getName());
        }
    
        System.out.println(
"-----------------");
        
     }
}

 

測试结果:

获得全查询列表

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

转载地址:http://yoidx.baihongyu.com/

你可能感兴趣的文章
解决 ThinkPHP5 无法接收 客户端 Post 传递的 Json 参数
查看>>
ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (文档 ID 2034681.1)
查看>>
gitlab 账号注册及修改资料
查看>>
CRM Transaction处理中的权限控制
查看>>
在PL/SQL中获取操作系统环境变量
查看>>
[转]linux创建链接文件的两种方法
查看>>
python ipaddress模块使用
查看>>
统计文件里面某个字符串出现次数
查看>>
文件权限
查看>>
云从科技发布3D结构光人脸识别技术
查看>>
busybox里的僵尸进程为何那么多
查看>>
python debug
查看>>
java 连接数据库之一个完整的函数
查看>>
centos5.6下virtualbox安装手记
查看>>
mysql脚本
查看>>
OllyDBG 入门系列教学--让你瞬间成为破解高手
查看>>
Dubbo点滴(2)之集群容错
查看>>
Zend Framework 自动加载类的实现方法
查看>>
Cloudera携手CenturyLink提供大数据即服务
查看>>
如何创建线程
查看>>