项目的问题

项目的问题

链接:https://pan.baidu.com/s/1lIcROLwDun52KOQDSN1LTw 

提取码:1234

http://img1.sycdn.imooc.com//climg/5f23ac330941b7c104070735.jpg


老师,我这里的PostDao.xml和CommentDao.xml已经写了post和comment的一对多的关系的映射,

但是在PostDao和CommentDao的接口里面怎么写?

我在控制器方法里面怎么用?

http://img1.sycdn.imooc.com//climg/5f23acb3099a621610910241.jpg


我想通过这个方法获取每个post对应的回复

根据comment的post_id

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
好帮手慕阿慧 2020-07-31 15:54:30

同学你好,

1、resultMap和resultType的区别如下:

①  resultType:当使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相应的pojo中必须有和它相同的字段对应,而resultType中的值就是项目中类的全名。

② resultMap:当使用resultMap做SQL语句返回结果类型处理时,通常需要在mapper.xml中定义resultMap进行pojo和相应表字段的对应。

③ resultType是直接表示返回类型的(对应着实体类或DTO类)

resultMap则是对外部ResultMap的引用(需要提前定义了表中的列和类属性之间的隐射key-->value关系)

2、<collection property="commentList" select="com.imooc.bbs.dao.CommentDao.selectByPostId"

column="id"/>

中id是查询到的post表中一行数据的id值,就是帖子id。

3、<collection>的含义是,在 select * from t_goods 得到结果后,对所有Post对象遍历得到id字段值(帖子id),并代入到com.imooc.bbs.dao.CommentDao命名空间的selectByPostId的SQL中执行查询,将得到的"评论"集合赋值给commentList List对象。

祝学习愉快~

  • 提问者 weixin_慕仰6475988 #1
    <resultMap id="rm" type="com.imooc.bbs.entity.Post"> <id column="id" property="id"/> <!-- 这里的column="id" 是将post表里面的id字段的值(所有的id字段的值) 作为selectByPostId的Integer参数值 传递给selectByPostId? --> <collection property="commentList" select="com.imooc.bbs.dao.CommentDao.selectByPostId" column="id"/> </resultMap> <select id="selectByPostId" parameterType="Integer" resultType="com.imooc.bbs.entity.Comment"> select * from comment where post_id=#{postId} </select> 老师,这个理解的意思对?备注里面的
    2020-07-31 16:09:28
  • 同学你好,你的理解是正确的。祝学习愉快~
    2020-07-31 16:22:54
提问者 weixin_慕仰6475988 2020-07-31 15:16:46

http://img1.sycdn.imooc.com//climg/5f23c503099cc33508500286.jpg


<collection property="commentList" select="com.imooc.bbs.dao.CommentDao.selectByPostId"
           column="id"/>

column="id"是什么意思?

  • 提问者 weixin_慕仰6475988 #1
    <select id="selectByPostId" parameterType="Integer" resultType="com.imooc.bbs.entity.Comment"> select * from comment where post_id=#{postId} </select> 这个地方的Integer参数是从哪里获得的?
    2020-07-31 15:18:35
好帮手慕阿慧 2020-07-31 15:06:09

同学你好,一对多查询如下:

PostDao,参考代码如下:

http://img1.sycdn.imooc.com//climg/5f23c32f090ff5c608540295.jpg

http://img1.sycdn.imooc.com//climg/5f23c2810956e2ac03680296.jpg

CommentDao,参考代码如下:

http://img1.sycdn.imooc.com//climg/5f23c2c30961131808590233.jpg

http://img1.sycdn.imooc.com//climg/5f23c2bd0909113604560177.jpg

祝学习愉快~

提问者 weixin_慕仰6475988 2020-07-31 13:33:22

老师,项目,我已经分享到上面了

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师