首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

(转)ibatis Tips 之 java.util.Map作为parameterClass跟resultClass

2012-09-20 
(转)ibatis Tips 之 java.util.Map作为parameterClass和resultClass!--use Map type as parameterClass--

(转)ibatis Tips 之 java.util.Map作为parameterClass和resultClass

    <!--use Map type as parameterClass--><select id="getProduct-Map" parameterresultMap="get-product-result"><![CDATA[select * from t_productwhere prd_id=#id# and prd_description=#description#]]></select>

    ?DAO层:

      /** * java.util.Map作为parameterClass */public Product getProductMap(Map map) throws SQLException {init();Product product = (Product)sqlMapClient.queryForObject("getProduct-Map", map);return product;}

      ?Test类:

        public void getProductMap() throws SQLException{Map map = new HashMap();map.put("id", new Integer(1));map.put("description", "basketball");Product product = productDao.getProductMap(map);System.out.println(product);}

        ?结果:

        id:1
        description:basketball
        price206.99

        ?

        ?

        2.Map作为resultClass

        映射文件:

          <resultMap id="get-product-map" column="prd_id"/><result property="description" column="prd_description"/><result property="price" column="prd_price"/></resultMap><!--START use Map type as resultClass,MUST use java.util.HashMap instead java.util.Map--><select id="getProdcut-MapResult" resultresultMap="get-product-map"><![CDATA[select * from t_product]]></select><!-- END -->

          ?DAO层:

            /** * java.util.Map作为resultClass */public List getProductMapResult() throws SQLException {init();List list = sqlMapClient.queryForList("getProdcut-MapResult");return list;}public List getProductUseMapByResultMap() throws SQLException {init();List list = sqlMapClient.queryForList("getProductUseMap-resultMap");return list;}

            ?Test类:

              public void getProductMapResult() throws SQLException{Map map = null;List list = productDao.getProductMapResult();for(Iterator it=list.iterator(); it.hasNext();) {//List里存放的是java.util.Map类型Object obj = (Object)it.next();System.out.println(obj.getClass());System.out.println(obj);}}public void getProductUseMapByResultMap() throws SQLException {Map map = null;List list = productDao.getProductUseMapByResultMap();for(Iterator it=list.iterator(); it.hasNext();) {//List里存放的是java.util.Map类型Object obj = (Object)it.next();System.out.println(obj.getClass());System.out.println(obj);}}?

              结果:

              class java.util.HashMap
              {prd_id=1, prd_price=206.99, prd_description=basketball}
              class java.util.HashMap
              {prd_id=2, prd_price=106.99, prd_description=football}
              class java.util.HashMap
              {price=206.99, description=basketball, id=1}
              class java.util.HashMap
              {price=106.99, description=football, id=2}

              ?

              ?

              注意: Map作为resultClass时,必须指定具体的实现类,比如java.util.HashMap,否则会报错

              Caused by: java.lang.RuntimeException: JavaBeansDataExchange could not instantiate result class.? Cause: java.lang.InstantiationException: java.util.Map

              ?

              转自:http://xulongfa.iteye.com/blog/429616

              ?

热点排行