MyBatis使用Collection查询多对多集合
2016-03-10 15:59
429 查看
现在有三个对象分别定义如下:
首先定义一个resultMap:
SQL语句如下:
class Photo { private String photoid; private String photoname; private String phototime; private UserInfo user; private PType ptype; private int likenum; private String photoremake; } UserInfo { private int userid; private String userno; private String userpwd; private String username; private String email; private String birthday; } class LikeInfo { private int userid; private List<Photo> photos; }Mapper接口中定义的方法:
/** * 收藏图片 * @return */ public int saveLikeInfo(String photoid,int userid); /** * 查询个人收藏空间 * @param userid * @return */ public LikeInfo getLikeInfoByUserId(int userid); /** * 分页查询所有收藏记录 * @param userid * @return */ public List<LikeInfo> getLikeInfo(int index);对应的配置文件xml:
首先定义一个resultMap:
<resultMap id="likeMapper" type="LikeInfo"> <result property="userid" column="userid" /> <collection property="photos" javaType="java.util.List" ofType="Photo"> <id property="photoid" column="photoid" /> <result property="photourl" column="photourl" /> <result property="photoname" column="photoname" /> <result property="likenum" column="likenum" /> <result property="photoremake" column="photoremake" /> </collection > </resultMap>在这个resultMap中使用了collection标签,代表这里封装的是一个集合。
SQL语句如下:
<select id="getLikeInfoByUserId" parameterType="int" resultMap="likeMapper"> select l.*,p.photoname,p.photoremake,p.likenum from tb_likes l,tb_photos p where l.photoid=p.photoid and l.userid=#{userid} </select> <select id="getLikeInfo" resultMap="likeMapper"> select l.*,p.* from tb_likes l,tb_photos p where l.photoid=p.photoid limit #{index},20 </select> <insert id="saveLikeInfo" parameterType="LikeInfo"> insert into tb_likes <trim prefix="(" suffix=")" suffixOverrides="," > userid, photoid </trim> <trim prefix="values (" suffix=")" suffixOverrides="," > #{1},#{0} </trim> </insert>在执行插入语句时,一开始传进来的是一个likeInfo的对象,准备使用forEach标签,结果没有写出来,在业务中进行了数据的处理。
相关文章推荐
- Rails Routes中new、collection、member的区别浅析
- 解决 The Controls collection cannot be modified because the control contains code blocks
- 深入浅析mybatis oracle BLOB类型字段保存与读取
- MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法
- oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
- MyBatis学习笔记(二)之关联关系
- 浅析Mybatis 在CS程序中的应用
- Java Mybatis框架入门基础教程
- java Collection 之List学习介绍
- Java简单实现SpringMVC+MyBatis分页插件
- MyBatis批量添加、修改和删除
- MyBatis与Hibernate的比较
- 浅析mybatis和spring整合的实现过程
- mybatis的动态sql详解(精)
- MyBatis实践之动态SQL及关联查询
- Mybatis实现增删改查及分页查询的方法
- MyBatis入门学习教程(一)-MyBatis快速入门
- Spring与Mybatis的整合方法有哪些
- 详解MyBatis直接执行SQL查询及数据批量插入
- 解决springmvc+mybatis+mysql中文乱码问题