ibatis 中关于resultMap="" 在后台如何用map 接收的问题
其中配置文件如下<resultMapclass="java.util.HashMap"id="rMap"><resultproperty="username"column...
其中 配置文件如下
<resultMap class="java.util.HashMap" id="rMap">
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
<select id="getUserByNameAndPass" parameterMap="pmap" resultMap="rMap">
select * from user where username=? and password=?
</select>
——————————上面是配置文件————————————————
后台代码
Map map=sqlmap.queryForMap(arg0, arg1, arg2);
这3个参数 如何填写
给个例子 谢谢 展开
<resultMap class="java.util.HashMap" id="rMap">
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
<select id="getUserByNameAndPass" parameterMap="pmap" resultMap="rMap">
select * from user where username=? and password=?
</select>
——————————上面是配置文件————————————————
后台代码
Map map=sqlmap.queryForMap(arg0, arg1, arg2);
这3个参数 如何填写
给个例子 谢谢 展开
2个回答
2011-03-12
展开全部
其中 配置文件如下
<!---这段不需要,注释掉--->
<!--
<resultMap class="java.util.HashMap" id="rMap">
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
-->
<!--这里传入一个map,返回一个map-->
<select id="getUserByNameAndPass" parameterClass="map" resultClass="map">
<!--
#username# ---向map获取键值为username的值
#password# -- 同上
resultClass="map" ——代表返回前台的数据封转为map格式,键值对应和你sql的列名对应,
但是要注意返回后台的是不是键值都是大写了。不同数据库返回的键可能有些都是大写的例如oracle,sqlserver 是sql中的列名
-->
<![CDATA[
select username,password from user where username=#username# and password=#password#
]]>
</select>
public Map getUserByNameAndPass(String username,String password){
//用map封转多个参数
Map params = new HashMap();
params.put("username",username);
params.put("password",password);
//如果定义命名空间的需要加前缀,第一个是你xml配置sql的id,第二个是map参数
Map map=sqlmap.queryForMap("getUserByNameAndPass", params);
System.err,println(map.get("password"));//获得password
//System.err,println(map.get("PASSWORD"));//有些数据库返回的是大写,例如oracle
System.err.println(map.get("username"));//获得username
//System.err,println(map.get("USERNAME"));//有些数据库返回的是大写,例如oracle
return map;
}
<!---这段不需要,注释掉--->
<!--
<resultMap class="java.util.HashMap" id="rMap">
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
-->
<!--这里传入一个map,返回一个map-->
<select id="getUserByNameAndPass" parameterClass="map" resultClass="map">
<!--
#username# ---向map获取键值为username的值
#password# -- 同上
resultClass="map" ——代表返回前台的数据封转为map格式,键值对应和你sql的列名对应,
但是要注意返回后台的是不是键值都是大写了。不同数据库返回的键可能有些都是大写的例如oracle,sqlserver 是sql中的列名
-->
<![CDATA[
select username,password from user where username=#username# and password=#password#
]]>
</select>
public Map getUserByNameAndPass(String username,String password){
//用map封转多个参数
Map params = new HashMap();
params.put("username",username);
params.put("password",password);
//如果定义命名空间的需要加前缀,第一个是你xml配置sql的id,第二个是map参数
Map map=sqlmap.queryForMap("getUserByNameAndPass", params);
System.err,println(map.get("password"));//获得password
//System.err,println(map.get("PASSWORD"));//有些数据库返回的是大写,例如oracle
System.err.println(map.get("username"));//获得username
//System.err,println(map.get("USERNAME"));//有些数据库返回的是大写,例如oracle
return map;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from user where username=? and password=?
==>
select * from user where username=#nm# and password=#pw#
Map map=sqlmap.queryForMap(arg0, arg1, arg2);
==>
Map mp = new HashMap();
mp.put("nm","ss");
mp.put("pw","mm");
Map map=sqlmap.queryForMap("getUserByNameAndPass", mp);
==>
select * from user where username=#nm# and password=#pw#
Map map=sqlmap.queryForMap(arg0, arg1, arg2);
==>
Map mp = new HashMap();
mp.put("nm","ss");
mp.put("pw","mm");
Map map=sqlmap.queryForMap("getUserByNameAndPass", mp);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询