ibatis java.util.Map作为parameterClass和resultClass(转)
2014-03-17 11:21
477 查看
1.Map作为parameterClass
映射文件:
Xml代码
<!--use Map type as parameterClass-->
<
select
id = "getProduct-Map"
parameterClass
= "java.util.Map"
resultMap =
"get-product-result" >
<![CDATA[
select * from t_product
where prd_id=#id# and prd_description=#description#
]]>
</
select >
Xml代码
<!--use Map type as parameterClass-->
<select id="getProduct-Map" parameterClass="java.util.Map" resultMap="get-product-result">
<![CDATA[
select * from t_product
where prd_id=#id# and prd_description=#description#
]]>
</select>
DAO层:
Java代码
public Product getProductMap(Map map)
throws SQLException {
init();
Product product = (Product)sqlMapClient.queryForObject(
"getProduct-Map" , map);
return
product;
}
Java代码
public Product getProductMap(Map map) throws SQLException {
init();
Product product = (Product)sqlMapClient.queryForObject("getProduct-Map", map);
return product;
}
Test类:
Java代码
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);
}
Java代码
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);
}
结果:
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
1.Map作为parameterClass
映射文件:
Xml代码
<!--use Map type as parameterClass-->
<
select
id = "getProduct-Map"
parameterClass
= "java.util.Map"
resultMap =
"get-product-result" >
<![CDATA[
select * from t_product
where prd_id=#id# and prd_description=#description#
]]>
</
select >
Xml代码
<!--use Map type as parameterClass-->
<select id="getProduct-Map" parameterClass="java.util.Map" resultMap="get-product-result">
<![CDATA[
select * from t_product
where prd_id=#id# and prd_description=#description#
]]>
</select>
<!--use Map type as parameterClass--> <select id="getProduct-Map" parameterClass="java.util.Map" resultMap="get-product-result"> <![CDATA[ select * from t_product where prd_id=#id# and prd_description=#description# ]]> </select>
DAO层:
Java代码
public Product getProductMap(Map map)
throws SQLException {
init();
Product product = (Product)sqlMapClient.queryForObject(
"getProduct-Map" , map);
return
product;
}
Java代码
public Product getProductMap(Map map) throws SQLException {
init();
Product product = (Product)sqlMapClient.queryForObject("getProduct-Map", map);
return product;
}
public Product getProductMap(Map map) throws SQLException { init(); Product product = (Product)sqlMapClient.queryForObject("getProduct-Map", map); return product; }
Test类:
Java代码
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);
}
Java代码
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);
}
结果:
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
相关文章推荐
- Java多线程(三)、线程同步
- java的覆盖和隐藏的区别
- Java多线程(一)、多线程的基本概念和使用
- java 静态方法不能被override
- Myeclipse/Eclipse中修改WebContent/WebRoot
- java类初始化顺序
- JAVA_银行业务调度系统
- spring aop 实现读写分离
- javaweb之jstl+el完成数据迭代
- Java进阶篇--容器(二)
- JAVA_交通灯管理系统
- java 中 class类作用
- JAVA虚拟机体系结构
- StringUtils
- Spring整合jaxws基于handles验证
- 使用myeclipse时出现java.lang.UnsupportedClassVersionError: Bad version number in .class file
- java字符串截取
- struts2标签#、%、$取值
- java服务端远程监控辅助参数
- java发邮件的代码