iBATIS实例创建的五大步浅析

来源:互联网 发布:vue.js最新版本 编辑:程序博客网 时间:2024/06/10 07:50

iBATIS实例的创建是什么过程呢?让我们开始我们的讲述:

iBATIS实例创建第一步:

将iBATIS的jar 包添加到工程中

iBATIS实例创建第二步

新建一个xml文件SqlMap.xml

在这个文件中定义使用了哪些iBATIS资源文件

  1. ﹤?xml version="1.0" encoding="gb2312"?﹥  
  2. ﹤!DOCTYPE sql-map-config PUBLIC "-//iBATIS.com//DTD SQL Map Config 1.0//EN"  
  3.   "http://www.ibatis.com/dtd/sql-map-config.dtd"﹥  
  4. ﹤sql-map-config﹥  
  5. ﹤sql-map resource="com/montersoft/ibatis/common/monter.xml"/﹥  
  6. ﹤/sql-map-config﹥ 

iBATIS实例创建第三步:

定义资源文件monter.xml

  1. ﹤?xml version="1.0" encoding="gb2312"?﹥  
  2. ﹤!DOCTYPE sql-map  
  3.   PUBLIC "-//iBATIS.com//DTD SQL Map 1.0//EN"  
  4.   "http://www.ibatis.com/dtd/sql-map.dtd"﹥   
  5.  
  6.  
  7. ﹤sql-map name="monter"﹥  
  8.   ﹤result-map name="monterInfo" class="java.util.HashMap"﹥  
  9.   ﹤property name="id" column="id" type="VARCHAR"/﹥  
  10.   ﹤property name="name" column="name" type="VARCHAR"/﹥  
  11.   ﹤property name="age" column="age" type="NUMBERIC"/﹥  
  12.   ﹤/result-map﹥   
  13.   ﹤dynamic-mapped-statement name="monter_getByPk" result-map="monterInfo"﹥  
  14.   select id,name,age from monter where id = #id#  
  15.   ﹤/dynamic-mapped-statement﹥  
  16. ﹤/sql-map﹥ 

注意dynamic-mapped-statement的name 必须唯一

iBATIS实例创建第四步:

定义一个公共类来生成SqlMap

  1. package com.montersoft.ibatis.common;  
  2. import java.io.Reader;  
  3. import org.apache.commons.logging.Log;  
  4. import org.apache.commons.logging.LogFactory;  
  5. import com.ibatis.common.resources.Resources;  
  6. import com.ibatis.db.sqlmap.SqlMap;   
  7. import com.ibatis.db.sqlmap.XmlSqlMapBuilder;  
  8. public class SqlMapUtil {   
  9. private static Log loger = LogFactory.getLog(SqlMapUtil.class);  
  10. public static SqlMap sqlMap ;   
  11. public static SqlMap loadSqlMap(){  
  12. Reader reader = null;  
  13. try{  
  14.   reader = Resources.getResourceAsReader("com/montersoft/ibatis/common/SqlMap.xml");  
  15.   return XmlSqlMapBuilder.buildSqlMap(reader);  
  16. }  
  17. catch(Exception e){     
  18.   loger.error("there is a error=>"+e.getMessage());  
  19. }  
  20. return null;  
  21. }   
  22. public static SqlMap getSqlMap(){  
  23. if( sqlMap == null )  
  24.   sqlMap = loadSqlMap();  
  25. return sqlMap;  
  26. }   

iBATIS实例创建第五步

新建DAO,Vo

  1. public interface IVO {   
  2. }  
  3. public class MonterVo implements IVO{   
  4. public String id ;  
  5. public String name;  
  6. public int age;  
  7. //...省去 get ,set 方法  
  8. }  
  9. public class MonterDao {   
  10.   public IVO getBkPK(Connection conn,IVO vo) throws Exception{  
  11.   try{     
  12.  
  13.  
  14.   Object map = SqlMapUtil.getSqlMap().  
  15.     getMappedStatement("monter_getByPk").executeQueryForObject(conn,vo);  
  16.   return   copyMap2Vo(map);  
  17.   }  
  18.   catch(Exception e){       
  19.     throw new Exception(e.getMessage());  
  20.   }  
  21.   }   
  22.   private IVO copyMap2Vo(Object map){  
  23.   MonterVo vo = new MonterVo();  
  24. try{  
  25.   BeanUtils.copyProperties(vo,map);  
  26. }  
  27. catch(Exception e){  
  28.   e.printStackTrace();  
  29. }  
  30. return vo;  
  31. }  

iBATIS实例至此就建立了,那么通过这个简单的实例是不是对iBATIS实例的建立有了更明确的认识呢?

出处:http://developer.51cto.com/art/200907/137233.htm

原创粉丝点击