<resultMap id="BaseResultMap" type="com.tangu.fxyjytrust.po.BoilMedicine"> <id column="MED_CENTER_ID" property="id" jdbcType="INTEGER"/> <result column="MED_CENTER_NAME" property="name" jdbcType="VARCHAR"/> <result column="credit_code" property="creditCode" jdbcType="VARCHAR"/> <result column="city_address_id" property="cityAddressId" jdbcType="INTEGER"/> <result column="medicine_address_id" property="medicineAddressId" jdbcType="INTEGER"/> <result column="contact_name" property="contactName" jdbcType="VARCHAR"/> <result column="phone" property="phone" jdbcType="VARCHAR"/> <result column="del_flag" property="delFlag" jdbcType="INTEGER"/> </resultMap>
时间: 2023-07-24 21:14:47 浏览: 263
这段代码是一个 MyBatis 的 resultMap 配置,用于将查询结果映射到一个名为 "BaseResultMap" 的对象中。该对象的类型是 com.tangu.fxyjytrust.po.BoilMedicine。
在这个 resultMap 中,每一个 <result> 标签指定了查询结果中的列和对象属性之间的映射关系。例如,column="MED_CENTER_ID" 表示查询结果中的 MED_CENTER_ID 列将被映射到 BoilMedicine 对象的 id 属性。
jdbcType 属性指定了数据库中对应列的数据类型,以便在映射时进行正确的类型转换。
请注意,这只是 resultMap 的配置,它并不包含实际的 SQL 查询语句。该配置通常与 SQL 映射文件中的 select 语句配合使用,以实现将查询结果映射到 Java 对象的功能。
相关问题
<resultMap id="BaseResultMap" type="com.example.pojo.Comment" > <id column="id" property="id" jdbcType="INTEGER" /> <result column="order_id" property="orderId" jdbcType="INTEGER" /> <result column="num" property="num" jdbcType="INTEGER" /> <result column="type" property="type" jdbcType="VARCHAR" /> <result column="content" property="content" jdbcType="VARCHAR" /> </resultMap>
这是一个 MyBatis 中的 resultMap,id 为 BaseResultMap,type 为 com.example.pojo.Comment,用于将查询结果映射到 Comment 对象中。
在该 resultMap 中,使用了 <id> 和 <result> 标签来描述查询结果和 Java 对象之间的映射关系。其中,<id> 标签用于定义主键属性,<result> 标签用于定义普通属性。
在每个 <id> 和 <result> 标签中,都需要定义三个属性:column、property 和 jdbcType。其中,column 属性指定查询结果中的列名,property 属性指定 Java 对象中的属性名,jdbcType 属性指定属性的 JDBC 类型。
该 resultMap 中,将查询结果中的 id、order_id、num、type 和 content 列,分别映射到 Comment 对象的 id、orderId、num、type 和 content 属性中。
最终,当执行查询操作时,MyBatis 会根据该 resultMap 将查询结果映射成 Comment 对象,从而方便 Java 代码对查询结果进行处理和操作。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruifan.taihaolian.biz.mapper.AdvertMapper"><resultMap id="BaseResultMap" type="com.ruifan.taihaolian.biz.model.Advert"><id column="id" jdbcType="INTEGER" property="id" /><result column="name" jdbcType="VARCHAR" property="name" /><result column="position_id" jdbcType="INTEGER" property="positionId" /><result column="media_id" jdbcType="INTEGER" property="mediaId" /><result column="start_date" jdbcType="TIMESTAMP" property="startDate" /><result column="end_date" jdbcType="TIMESTAMP" property="endDate" /><result column="link" jdbcType="VARCHAR" property="link" /><result column="status" jdbcType="INTEGER" property="status" /><result column="create_time" jdbcType="TIMESTAMP" property="createTime" /><result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /></resultMap><select id="findAdverts" resultMap="advertMap">SELECT a.*, p.id AS position_id, p.name AS position_name, m.id AS media_id, m.file_name, m.file_type, m.file_url FROM advert a LEFT JOIN ad_position p ON a.position_id = p.id LEFT JOIN media_file m ON a.media_id = m.id WHERE (id = :id OR :id IS NULL) </select> <resultMap id="advertMap" type="com.ruifan.taihaolian.biz.model.dto.AdvertDTO"><id property="id" column="id"/><result property="name" column="name"/><association property="adPosition" javaType="com.ruifan.taihaolian.biz.model.AdPosition"><id property="id" column="position_id"/><result property="name" column="position_name"/></association><association property="mediaFile" javaType="com.ruifan.taihaolian.biz.model.MediaFile"><id property="id" column="id"/><result property="fileName" column="name"/><result property="fileType" column="type"/><result property="fileUrl" column="url"/></association></resultMap></mapper>请指正错误
这段代码是 MyBatis 的 XML 配置文件,其中定义了一个名为 AdvertMapper 的 Mapper 接口,包含了一个名为 findAdverts 的查询语句。但是,代码中的 resultMap 标签中定义了一个名为 BaseResultMap 的 ResultMap,但在 select 标签中却使用了 advertMap,这是不一致的。建议将 select 标签中的 resultMap 属性改为 BaseResultMap。另外,该查询语句中使用了 LEFT JOIN 连接,需要注意当 a.position_id 或 a.media_id 为 NULL 时,可能会导致查询结果不准确。
阅读全文