查询
sql片段
SQL 片段是指一些可以被重用的 SQL 片段,通常定义在 Mapper XML 文件中。
1. 使用 <sql>
标签
使用 <sql>
标签来定义一个 SQL 片段。例如:
<sql id="baseColumnList"> id, brandName, companyName, description </sql>
3. 引用 SQL 片段
可以通过 <include>
标签在其他 SQL 语句中引用 SQL 片段。例如:
<select id="selectAll" resultType="com.itheima.pojo.YourObject">
SELECT <include refid="baseColumnList"/>
FROM your_table
</select>
4. 参数化的 SQL 片段
在 SQL 片段中,可以使用参数来使其更加灵活。例如:
<sql id="selectById"> SELECT * FROM your_table WHERE id = #{id} </sql>
5. 结合其他MyBatis功能
SQL 片段可以与其他 MyBatis 功能结合使用,如条件判断和动态 SQL。例如:
<select id="findByConditions" resultType="com.itheima.pojo.YourObject">
SELECT * FROM your_table WHERE 1=1
<if test="brandName != null"> AND brandName = #{brandName} </if>
<if test="companyName != null"> AND companyName = #{companyName}
</if>
</select>
resultMap
resultMap
定义了数据库表的字段与 Java 对象属性之间的映射关系(即解决数据库表里字段名和Java中定义的类属性名称不相同的情况)。
定义 resultMap
resultMap
是在 MyBatis 的 XML Mapper 文件中定义的。基本的结构如下:
<resultMap id="exampleResultMap" type="com.example.YourObject">
<id property="id" column="id"/>
<result property="brandName" column="brand_name"/>
<result property="companyName" column="company_name"/>
<result property="description" column="description"/>
</resultMap>
id
: 代表主键字段的映射。result
: 代表其他字段的映射。
3. 使用 resultMap
在查询中引用 resultMap
,以指定返回的结果如何映射到对象。示例:
<select id="findAll" resultMap="exampleResultMap">
SELECT * FROM your_table
</select>