mybatis 一对多映射 xml

最近在做一个评论功能时,涉及到一个评论对应多张图片,这个时候想一个方法全部返回,就需要在xml中进行配置。由于好久没用到一对多的配置,所以很长时间才写出来,mark一下

返回对象:

private String commentId;

private String commentContent;

private Date commentTime;

private String productId;

private String userId;

private String userName;

private String headImg;

private Integer startNum;

private Integer supportNum;

private List<CommentImg> commentImgs;

对应xml配置文件:

<mapper namespace="com.lefang.lf.vo.CommentGrid">

<resultMap type="com.lefang.lf.vo.CommentGrid" id="CommentGrid">

<id column="COMMENT_ID" property="commentId" />

<result column="COMMENT_CONTENT" property="commentContent" />

<result column="COMMENT_TIME" property="commentTime" />

<result column="HEAD_IMG" property="headImg" />

<result column="PRODUCT_ID" property="productId" />

<result column="USER_ID" property="userId"/>

<result column="USER_NAME" property="userName"/>

<result column="START_NUM" property="startNum"/>

<result column="SUPPORT_NUM" property="supportNum"/>

<collection property="commentImgs" ofType="com.lefang.lf.model.CommentImg">

<id column="img_id" property="id" />

<result column="img_url" property="imgUrl" />

</collection>

</resultMap>

<select id="grid" resultMap="CommentGrid">

select distinct

C.id COMMENT_ID,

C.COMMENT_CONTENT,

C.COMMENT_TIME,

C.PRODUCT_ID,

C.START_NUM,

C.SUPPORT_NUM,

C.USER_ID,

CI.ID IMG_ID,

CI.IMG_URL

from

L_LF_COMMENT C LEFT JOIN L_LF_COMMENT_IMG CI ON CI.COMMENT_ID = C.ID

where 1 = 1

<if test="productId!=null">

AND C.PRODUCT_ID =#{productId}

</if>

order by COMMENT_TIME desc

</select>

</mapper>

时间: 2024-08-06 08:27:12

mybatis 一对多映射 xml的相关文章

mybatis 与 xml

mybatis的两大重要组件:配置和映射文件,都是可以通过xml配置的(新版本新增了注解的方式配置Mapper),下面来解析下mybatis是怎么做的 其中,关于配置文件解析的主要是在这个类XMLConfigBuilder里面的parseConfiguration方法,XMLConfigBuilder在初始化的时候会新建一个XPathParser对象用于XML配置文件的解析 public XMLConfigBuilder(InputStream inputStream, String envir

MyBatis Mapper.xml文件中 $和#的区别

MyBatis Mapper.xml文件中 $和#的区别 网上有很多,总之,简略的写一下,作为备忘.例子中假设参数名为 paramName,类型为 VARCHAR . 1.优先使用#{paramName,jdbcType=VARCHAR} 写法,除了可以防止sql注入以外,它还能在参数里含有单引号的时候自动转义, 而${paramName}由于是类似于拼接sql的写法,不具备此功能. 2.注意,使用 #{paramName,jdbcType=VARCHAR} 写法的时候,模糊查询的写法为:'%'

MyBatis 中XML映射配置文件

XML映射配置文件 MyBatis的XML配置文件包含了影响MyBatis行为很深的设置和属性信息.XML文档的高级层级结构如下: properties Settings 这些及其重要的调整,他会修改MyBatis在运行时的行为方式.下面这个表格描述了设置信息,他们的含义和默认值: typeAliases 类型别名是为java类型命名一个短的名字.他和XML的配置有关,只用来减少类完全限定名的多余部分.例如: typeHandlers 无论是MyBatis在预处理语句中设置一个参数,还是从结果集

mybatis —— eclipse XML快捷提示

http://mybatis.org/dtd/mybatis-3-mapper.dtd 通过此网址将mybatis-3-mapper.dtd文件下载下来,记住保存路径 打开eclipse window-->perferences-->XML-->XML Catalog打开 点击Add... Location:添加保存的路径 Key type:选择Public ID Key:-//mybatis.org//DTD Mapper 3.0//EN 点击保存,重启eclipse可以完成mybat

springboot使用之二:整合mybatis(xml方式)并添加PageHelper插件

整合mybatis实在前面项目的基础上进行的,前面项目具体整合请参照springboot使用之一. 一.整合mybatis 整合mybatis的时候可以从mybatis官网下载mybatis官网整合的项目mybatis-spring-boot-start.对原理感兴趣可以研究2一下,这里只叙述步骤. 引入依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybati

mybatis批量操作-xml方式

在实际项目中,我们一般都会用到批量insert.delete.update等操作,由于使用频率还是蛮高的,这里就做个简单的记录,供以后学习和参考. 批量insert 在数据库中,批量插入可以是多条insert into tableName values(?,?,?...);或者一条insert into tableName values (?,?,?...),(?,?,?...),(?,?,?...)....那么我们在使用mybatis时,xml就可以如下写批量操作: 1234567891011

maven开发mybatis 让*.xml 拷贝到classes目录下

在开发mybatis项目时,很多时候我们要把配置文件放在src/main/java目录下,可是maven在编译项目时,默认不把src/main/java目录下的*.xml拷贝到classes目录下,那么就需要我们配置maven <build>    <resources>    <resource>    <directory>src/main/java</directory>    <includes>    <include

Mybatis学习--XML配置文件详解

在配置的Mybatis的时候,我们可以通过一个XML来配置,也可以嵌入到其他配置文件中, 比如Spring的applicationContext.xml中. MyBatis 的 XML 配置文件包含了影响 MyBatis 行为甚深的设置和属性信息. XML 文档 的高层级结构如下: configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件

mybatis的xml配置和注解配置

xml配置 spring-application.xml <?xml version = "1.0" encoding = "UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="h