博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ibatis搭建二
阅读量:6602 次
发布时间:2019-06-24

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

基本配置见上篇
一.添加配置文件dao.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE daoConfig PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN" "http://ibatis.apache.org/dtd/dao-2.dtd"
>
<
daoConfig
>
    
<
context
>
        
<
transactionManager 
type
="SQLMAP"
>
            
<
property 
name
="SqlMapConfigResource"
                      value
="yidishui/daoIbatisImpl/sql/SqlMapConfig.xml"
/>
        
</
transactionManager
>
        
<
dao 
interface
="yidishui.dao.PersonDao"
  implementation
="yidishui.daoIbatisImpl.PersonDaoImpl2"
/>
    
</
context
>
</
daoConfig
>
二.添加DaoConfig类
package
 yidishui;
import
 com.ibatis.dao.client.DaoManager;
import
 com.ibatis.dao.client.DaoManagerBuilder;
import
 com.ibatis.common.resources.Resources;
import
 java.io.Reader;
import
 java.util.Properties;
public
 
class
 DaoConfig 
{
    
private static final String resource = "yidishui/dao.xml";
    
private static final DaoManager daoManager;
    
static {
        daoManager 
= newDaoManager(null);
    }
    
public static DaoManager getDaoManager() {
        
return daoManager;
    }
    
public static DaoManager newDaoManager(Properties props) {
        
try {
            Reader reader 
= Resources.getResourceAsReader(resource);
            
return DaoManagerBuilder.buildDaoManager(reader, props);
        }
 catch (Exception e) {
            
throw new RuntimeException("Could not initialize DaoConfig.  Cause: " + e, e);
        }
    }
}
三.修改Dao实现,添加类PersonDaoImpl2
package
 yidishui.daoIbatisImpl;
import
 yidishui.dao.PersonDao;
import
 yidishui.domain.Person;
import
 java.util.List;
import
 java.sql.SQLException;
import
 com.ibatis.dao.client.template.SqlMapDaoTemplate;
import
 com.ibatis.dao.client.DaoManager;
public
 
class
 PersonDaoImpl2 
extends
 SqlMapDaoTemplate 
implements
 PersonDao 
{
    
public PersonDaoImpl2(DaoManager daoManager) {
        
super(daoManager);
    }
    
public void insertPerson(Person person) throws SQLException {
        insert(
"insertPerson", person);
    }
    
public void updatePerson(Person person) throws SQLException {
        update(
"updatePerson", person);
    }
    
public Person getPersonById(int personId) throws SQLException {
        
return (Person) queryForObject("getPersonById", personId);
    }
    
public void deletePerson(int personId) throws SQLException {
        delete(
"deletePerson", personId);
    }
    
public List allPersonList() throws SQLException {
        
return queryForList("allPersonList"null);
    }
}
四,测试PersonDaoImpl2Test(正确行验证)
package
 yidishui.daoIbatisImpl;
import
 junit.framework.
*
;
import
 yidishui.daoIbatisImpl.PersonDaoImpl;
import
 yidishui.domain.Person;
import
 yidishui.dao.PersonDao;
import
 yidishui.DaoConfig;
import
 java.sql.SQLException;
import
 java.util.List;
import
 com.ibatis.dao.client.DaoManager;
public
 
class
 PersonDaoImpl2Test 
extends
 TestCase 
{
    DaoManager daoManager;
    
protected void setUp() throws Exception {
        daoManager 
= DaoConfig.getDaoManager();
    }
    
public void testInsertPerson() {
        PersonDao personDao 
= (PersonDao) daoManager.getDao(PersonDao.class);
        Person person 
= new Person();
        person.setPersonName(
"yidishui");
        person.setPersonEmail(
"yidishui1570@gamil.com");
        person.setPersonAge(
100);
        
try {
            personDao.insertPerson(person);
        }
 catch (SQLException e) {
            e.printStackTrace();  
//To change body of catch statement use File | Settings | File Templates.
        }
    }
    
public void testUpdatePerson() throws Exception {
        PersonDao personDao 
= (PersonDao) daoManager.getDao(PersonDao.class);
        Person person 
= new Person();
        person.setPersonId(
1);
        person.setPersonName(
"caotao");
        person.setPersonEmail(
"caotao1570@gamil.com");
        person.setPersonAge(
1100);
        personDao.updatePerson(person);
    }
    
public void testDeletePerson() throws Exception {
        PersonDao personDao 
= (PersonDao) daoManager.getDao(PersonDao.class);
        personDao.deletePerson(
1);
    }
    
public void testAllPersonList() throws Exception {
        PersonDao personDao 
= (PersonDao) daoManager.getDao(PersonDao.class);
        List list 
= personDao.allPersonList();
        assertTrue(
"list size is 0", list.size() > 0);
        
for (int i = 0; i < list.size(); i++{
            Person person 
= (Person) list.get(i);
            System.out.println(person.getPersonName());
        }
    }
}
五.运行测试
 测试成功ok完成

转载于:https://www.cnblogs.com/kristain/articles/2240511.html

你可能感兴趣的文章
经典设计模式——单例模式
查看>>
表单元素——checkbox样式美化
查看>>
理解矩阵乘法
查看>>
centos 5.4 上安装 Oracle11g R2 RAC (ASM)
查看>>
【原创】如何查看某进程下运行的线程
查看>>
HTML代码简写法:Emmet和Haml
查看>>
[数据库] Navicat for Oracle基本用法图文介绍
查看>>
算法系列15天速成——第一天 七大经典排序【上】
查看>>
Xcode调试LLDB
查看>>
泛函编程(24)-泛函数据类型-Monad, monadic programming
查看>>
OEA中的AutoUI重构(3)- 评审会议后的设计
查看>>
Java虚拟机详解04----GC算法和种类【重要】
查看>>
Oracle官方并发教程之Executor接口
查看>>
A*寻路算法入门(一)
查看>>
【RMAN】RMAN-20020: DATABASE INCARNATION NOT SET
查看>>
设计模式(3)-装扮你的类(装饰模式)
查看>>
海量存储之十六--一致性和高可用专题
查看>>
openlayers3添加地图控件
查看>>
拓扑排序模板
查看>>
ios copy/strong/weak..使用总结
查看>>