ibatis HashMap select insert update delete parameterMap parameterClass resultMap resultClass="java.util.HashMap" 不写实体类

数据库里表test就只有两个字段:id,name

直接看test.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap     
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"     
    "
http://ibatis.apache.org/dtd/sql-map-2.dtd">

 

<sqlMap namespace="test">

 

 <resultMap id="get-test-Result" class="java.util.HashMap">
  <result property="id" column="id" />
  <result property="name" column="name" />
 </resultMap>
 
 <select id="selectAllByClass" resultClass="java.util.HashMap" >
   select id, name from test
 </select>

 

<select id="selectAllByMap" resultMap="get-test-Result" >
   select id, name from test
 </select>


 

</sqlMap>

 

取得查询结果是一个list,里面装的都是map,不要用queryForMap这个方法,用queryForList这个

  List test = sqlMapClient.queryForList("selectAllByClass");

//List test = sqlMapClient.queryForList("selectAllByMap");

//和selectAllByClass 一样,也就是最新定义的map它返回的其实也是hashmap类型
 

得到了这个list,你就可以从中取出你想要的数据了:

  for (int i = 0; i < test.size(); i++) {
     Map<String,Object> t = (HashMap<String,Object>)test.get(i);
     System.out.print(ma.get("id"));//从map中取得你在里面的自段
     System.out.println(ma.get("name"));
   }

结果为:

1aa
2bb
3cc

知道了如何取数据了,其他的基本也会了,像insert,update,delete一样的意思,就是参数类型是parameterClass="java.util.HashMap",得到的结果也是resultClass="java.util.HashMap"(对应的就是parameterMap,resultMap),在java代码中自己构建一个HashMap当参数传进行就行了,这样子就可以不用写那么多的实体类了,也就是少写了许多javabean,方便了经常要修改数据库表字段的开发模式

 

 

你可能感兴趣的:(ibatis HashMap select insert update delete parameterMap parameterClass resultMap resultClass="java.util.HashMap" 不写实体类)