关于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个回答

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

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

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

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

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

[/code]

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

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

[/code]

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

[code="java"]

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!