隨筆 - 40, 文章 - 0, 評論 - 20, 引用 - 0
          數據加載中……

          Ibatis示例


          1.將ibatis 的jar 包添加到工程中

          2.先新建一個xml文件 SqlMap.xml,在這個文件中定義使用了哪些ibatis資源文件
          <?xml version="1.0" encoding="gb2312"?>
          <!DOCTYPE sql-map-config PUBLIC "-//iBATIS.com//DTD SQL Map Config 1.0//EN"
              "<sql-map-config>
            <sql-map  resource="com/montersoft/ibatis/common/monter.xml"/>
          </sql-map-config>

          3.定義資源文件monter.xml
          <?xml version="1.0" encoding="gb2312"?>
          <!DOCTYPE sql-map
              PUBLIC "-//iBATIS.com//DTD SQL Map 1.0//EN"
              "
          <sql-map name="monter">
             <result-map name="monterInfo" class="java.util.HashMap">
               <property name="id"  column="id" type="VARCHAR"/>
               <property name="name" column="name" type="VARCHAR"/>
               <property name="age"  column="age"  type="NUMBERIC"/>
             </result-map>  
             <dynamic-mapped-statement name="monter_getByPk" result-map="monterInfo">
             select id,name,age from monter where id = #id#
             </dynamic-mapped-statement>
          </sql-map>

          **注意dynamic-mapped-statement的name 必須唯一

          4.定義一個公共類來生成SqlMap
          package com.montersoft.ibatis.common;
          import java.io.Reader;
          import org.apache.commons.logging.Log;
          import org.apache.commons.logging.LogFactory;
          import com.ibatis.common.resources.Resources;
          import com.ibatis.db.sqlmap.SqlMap;
          import com.ibatis.db.sqlmap.XmlSqlMapBuilder;
          public class SqlMapUtil { 
           private static Log loger = LogFactory.getLog(SqlMapUtil.class);
           public  static SqlMap  sqlMap ; 
           public static SqlMap loadSqlMap(){
            Reader reader = null;
            try{
             reader = Resources.getResourceAsReader("com/montersoft/ibatis/common/SqlMap.xml");
             return XmlSqlMapBuilder.buildSqlMap(reader);
            }
            catch(Exception e){   
             loger.error("there is a error=>"+e.getMessage());
            }
            return null;
           } 
           public static SqlMap getSqlMap(){
            if( sqlMap == null )
             sqlMap = loadSqlMap();
            return sqlMap;
           } 
          }
          5.再新建DAO,Vo,
          public interface  IVO { 
          }
          public class MonterVo implements IVO{ 
           public String id ;
           public String name;
           public int age;
           ...省去 get ,set 方法
          }
          public class MonterDao { 
             public IVO getBkPK(Connection conn,IVO vo) throws Exception{
              try{    
              Object map  =  SqlMapUtil.getSqlMap().
                 getMappedStatement("monter_getByPk").executeQueryForObject(conn,vo);
              return   copyMap2Vo(map);
              }
              catch(Exception e){       
                  throw new Exception(e.getMessage());
              }
             }  
             private IVO copyMap2Vo(Object map){
              MonterVo vo = new MonterVo();
            try{
             BeanUtils.copyProperties(vo,map);
            }
            catch(Exception e){
             e.printStackTrace();
            }
            return vo;
           }
          }

          6.至此就建立了一個簡單的ibatis示例.

          posted on 2006-01-06 16:39 月亮 閱讀(335) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 山西省| 沂水县| 通道| 光泽县| 南召县| 新和县| 加查县| 彭泽县| 金沙县| 包头市| 佛冈县| 海口市| 和田市| 固原市| 华安县| 多伦县| 石楼县| 伊金霍洛旗| 上饶市| 修武县| 龙南县| 壶关县| 道真| 金塔县| 渭南市| 栾川县| 准格尔旗| 金昌市| 团风县| 邵武市| 合作市| 镇江市| 安多县| 龙泉市| 安新县| 凌云县| 陆良县| 梅河口市| 固原市| 中牟县| 永寿县|