iBATIS中添加DAO的配置浅析
创始人
2024-04-18 15:01:49
0

iBATIS中添加DAO的配置是如何的呢,之前我们介绍iBATIS的基本配置,那么我们现在来说下添加DAO的操作,首先让我们配置XML文件开始:

iBATIS中添加DAO的配置一.

添加配置文件dao.xml

  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥  
  2. ﹤!DOCTYPE daoConfig PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN" "http://ibatis.apache.org/dtd/dao-2.dtd"﹥  
  3. ﹤daoConfig﹥  
  4.     ﹤context﹥  
  5.         ﹤transactionManager type="SQLMAP"﹥  
  6.             ﹤property name="SqlMapConfigResource" 
  7.                       value="yidishui/daoIbatisImpl/sql/SqlMapConfig.xml"/﹥  
  8.         ﹤/transactionManager﹥  
  9.         ﹤dao interface="yidishui.dao.PersonDao"  implementation="yidishui.daoIbatisImpl.PersonDaoImpl2"/﹥  
  10.     ﹤/context﹥  
  11. ﹤/daoConfig﹥ 

iBATIS中添加DAO的配置二.

添加DaoConfig类

  1. package yidishui;  
  2.  
  3. import com.ibatis.dao.client.DaoManager;  
  4. import com.ibatis.dao.client.DaoManagerBuilder;  
  5. import com.ibatis.common.resources.Resources;  
  6.  
  7. import java.io.Reader;  
  8. import java.util.Properties;  
  9.  
  10. public class DaoConfig {  
  11.     private static final String resource = "yidishui/dao.xml";  
  12.     private static final DaoManager daoManager;  
  13.  
  14.     static {  
  15.         daoManager = newDaoManager(null);  
  16.     }  
  17.  
  18.     public static DaoManager getDaoManager() {  
  19.         return daoManager;  
  20.     }  
  21.  
  22.     public static DaoManager newDaoManager(Properties props) {  
  23.         try {  
  24.             Reader reader = Resources.getResourceAsReader(resource);  
  25.             return DaoManagerBuilder.buildDaoManager(reader, props);  
  26.         } catch (Exception e) {  
  27.             throw new RuntimeException("Could not initialize DaoConfig.  Cause: " + e, e);  
  28.         }  
  29.     }  

iBATIS中添加DAO的配置三.

修改Dao实现,添加类PersonDaoImpl2

  1. package yidishui.daoIbatisImpl;  
  2.  
  3. import yidishui.dao.PersonDao;  
  4. import yidishui.domain.Person;  
  5.  
  6. import java.util.List;  
  7. import java.sql.SQLException;  
  8.  
  9. import com.ibatis.dao.client.template.SqlMapDaoTemplate;  
  10. import com.ibatis.dao.client.DaoManager;  
  11.  
  12. public class PersonDaoImpl2 extends SqlMapDaoTemplate implements PersonDao {  
  13.     public PersonDaoImpl2(DaoManager daoManager) {  
  14.         super(daoManager);  
  15.     }  
  16.  
  17.     public void insertPerson(Person person) throws SQLException {  
  18.         insert("insertPerson", person);  
  19.     }  
  20.  
  21.     public void updatePerson(Person person) throws SQLException {  
  22.         update("updatePerson", person);  
  23.     }  
  24.  
  25.     public Person getPersonById(int personId) throws SQLException {  
  26.         return (Person) queryForObject("getPersonById", personId);  
  27.     }  
  28.  
  29.     public void deletePerson(int personId) throws SQLException {  
  30.         delete("deletePerson", personId);  
  31.     }  
  32.  
  33.     public List allPersonList() throws SQLException {  
  34.         return queryForList("allPersonList", null);  
  35.     }  

iBATIS中添加DAO的配置四,

测试PersonDaoImpl2Test(正确行验证)

  1. package yidishui.daoIbatisImpl;  
  2. import junit.framework.*;  
  3. import yidishui.daoIbatisImpl.PersonDaoImpl;  
  4. import yidishui.domain.Person;  
  5. import yidishui.dao.PersonDao;  
  6. import yidishui.DaoConfig;  
  7.  
  8. import java.sql.SQLException;  
  9. import java.util.List;  
  10.  
  11. import com.ibatis.dao.client.DaoManager;  
  12.  
  13. public class PersonDaoImpl2Test extends TestCase {  
  14.  
  15.     DaoManager daoManager;  
  16.  
  17.     protected void setUp() throws Exception {  
  18.         daoManager = DaoConfig.getDaoManager();  
  19.     }  
  20.  
  21.     public void testInsertPerson() {  
  22.         PersonDao personDao = (PersonDao) daoManager.getDao(PersonDao.class);  
  23.  
  24.         Person person = new Person();  
  25.         person.setPersonName("yidishui");  
  26.         person.setPersonEmail("yidishui1570@gamil.com");  
  27.         person.setPersonAge(100);  
  28.  
  29.         try {  
  30.             personDao.insertPerson(person);  
  31.         } catch (SQLException e) {  
  32.             e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.  
  33.         }  
  34.  
  35.     }  
  36.  
  37.     public void testUpdatePerson() throws Exception {  
  38.         PersonDao personDao = (PersonDao) daoManager.getDao(PersonDao.class);  
  39.         Person person = new Person();  
  40.         person.setPersonId(1);  
  41.         person.setPersonName("caotao");  
  42.         person.setPersonEmail("caotao1570@gamil.com");  
  43.         person.setPersonAge(1100);  
  44.         personDao.updatePerson(person);  
  45.  
  46.     }  
  47.  
  48.     public void testDeletePerson() throws Exception {  
  49.         PersonDao personDao = (PersonDao) daoManager.getDao(PersonDao.class);  
  50.         personDao.deletePerson(1);  
  51.     }  
  52.  
  53.     public void testAllPersonList() throws Exception {  
  54.         PersonDao personDao = (PersonDao) daoManager.getDao(PersonDao.class);  
  55.         List list = personDao.allPersonList();  
  56.         assertTrue("list size is 0", list.size() ﹥ 0);  
  57.         for (int i = 0; i ﹤ list.size(); i++) {  
  58.             Person person = (Person) list.get(i);  
  59.             System.out.println(person.getPersonName());  
  60.         }  
  61.     }  
  62.  

iBATIS中添加DAO的配置五.

运行测试

测试成功ok完成

iBATIS中添加DAO支持的配置及测试就向你介绍到这里,希望对你有所了解.

【编辑推荐】

  1. iBATIS DAO事务浅析
  2. iBATIS使用$和#的一些理解
  3. iBATIS分页的一些理解
  4. iBATIS应用之SQLMap API编程浅析
  5. 动态Mapped Statement在iBATIS中应用

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...