Mybatis 查询。

zhouixi 2017-08-04 11:39:22


mapper.xml SQL代码

<select id="selectByIdList" resultType="java.util.HashMap" parameterType="java.lang.Integer">
select s.id,u.name,u.password,s.name from user u join student s
on u.id=s.id where u.id in
<foreach collection="array" item="id" index="index"
open="(" close=")" separator=",">
#{id}
</foreach>
</select>

测试代码。。
@Test
public void testUser() {
List list = new ArrayList();
User user = new User();
user.setAddress("123");
user.setAge(123);
user.setId(123);
user.setName("123");
user.setPw("123");

Integer[] ids = { Integer.valueOf(1) };

int result = this.userService.register(user).intValue();

List<HashMap> map = (List<HashMap>) this.userService.selectByIdList(ids);

if (result >= 0) {
System.out.println(map);
System.out.println("插入用户成功主键" + user.getId());
} else {
System.out.println("失败");
}
}


打印出来的只有
user表。的字段。
student name 李四不出来 。。

结果:
[{id=1, name=张三, password=123}]
这是数据库查询的结果。


项目没有实体。不能用具体的实体来接收数据
所以在自己电脑上想用map测试一下。模拟一下数据 。
发现数据出不来。求大神指点一二。
...全文
320 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jerry_sss 2017-08-09
  • 打赏
  • 举报
回复
sql中两个字段都是name,应该取个别名
freekaiQaQ 2017-08-08
  • 打赏
  • 举报
回复
id in ( '1') 主键加 引号呢
  • 打赏
  • 举报
回复
在user表中加一个student实体的集合,添加get,set方法。然后返回的类型写user
浮云若水 2017-08-07
  • 打赏
  • 举报
回复
在mapper文件中定义一个 resultMap 然后采用resultMap返回,或者直接用resultType 用java.util.Map返回,还有你的sql中存在两个name 同名的,会导致你这种结果,所以得给s.name取个别名
木子0204 2017-08-07
  • 打赏
  • 举报
回复
引用 1 楼 Aoico 的回复:
mybatis 对于复查的返回结果,要配置resultMap 没看见你的resultMap 映射
确实是这样子的
xiaovhao 2017-08-06
  • 打赏
  • 举报
回复
select s.id,u.name as userName,u.password,s.name as studentName,取个别名试一下,还有resultType改为java.util.Map,然后接收用List<Map<String,Object>>这样把,看着舒服点
柚子新一 2017-08-06
  • 打赏
  • 举报
回复
mybatis 对于复查的返回结果,要配置resultMap 没看见你的resultMap 映射

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧