lyuaong
lyuaong
2011-08-03 10:04

关于ibatis的返回值问题

已采纳

配置信息:

select * from t_admin_role where admin_id = #{aId} and role_id =#{rId}

在ibatis中我如果在查询一个中间表 在配置里面返回值要写成什么呢?我在查询这个的时候配置过 返回值类型“map” “int”,都没有返回值,在执行到查询后就进入ibatis自己的异常处理去了,后台没有报错,因为我这个表 是中间表 所以没有实体,请教哈这问题要怎么解决呢?

在后台数据代码是这样写的:
Map map = new HashMap();
map.put("aId", aId);
map.put("rId", rId);
Object object;
object = session.selectOne(Admin.class.getName()+".find_admin_role", map);
System.out.println("======================"+object);

在log4中输出的日志信息是:
DEBUG [http-8080-1] java.sql.Connection - ooo Connection Opened
DEBUG [http-8080-1] java.sql.PreparedStatement - ==> Executing: select * from t_admin_role where admin_id = ? and role_id =?
DEBUG [http-8080-1] java.sql.PreparedStatement - ==> Parameters: 2(Integer), 1(Integer)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • shenlw2005 shenlw2005 10年前

    [color=red]remapResults="true"[/color] resultClass="java.util.HashMap"

    因为返回的实体不一样 所有必须加上 remapResults="true" 属性

    后台 根据 获取数据 HashMap map = (HashMap)list.get(0);
    String a = (String)map.get("A");

    点赞 评论 复制链接分享
  • myali88 myali88 10年前

    [code="java"]

    select * from t_admin_role where admin_id = #{aId} and role_id =#{rId}

    [/code]
    这样试试,这是mybatis的用法。

    点赞 评论 复制链接分享
  • myali88 myali88 10年前

    mybatis和ibatis用法上是有些差别的,作者要注意!你用的什么版本的?

    点赞 评论 复制链接分享
  • iteye_4873 iteye_4873 10年前

    不好意思,看的不仔细,SQL查询WHERE后的条件参数应该这样,试试吧
    [code="java"] resultClass="java.util.HashMap">

    select * from t_admin_role where admin_id = #aId# and role_id =#rId#

    [/code]

    点赞 评论 复制链接分享
  • iteye_4873 iteye_4873 10年前

    这样写的:
    [code="XML"]
    resultClass="java.util.HashMap">
    select * from t_admin_role where admin_id = #{aId} and role_id =#{rId}

    [/code]

    点赞 评论 复制链接分享
  • myali88 myali88 10年前

    直接把sql在数据库查询,结果是什么?

    点赞 评论 复制链接分享

为你推荐