XML 映射文件的基本結(jié)構(gòu)
MyBatis 的 XML 映射文件包含以下幾個(gè)部分:
-
mapper
元素:定義了 XML 映射文件的根元素,其中包含了命名空間和 SQL 語(yǔ)句等信息。 -
select
、insert
、update
、delete
元素:分別用于定義查詢、插入、更新、刪除操作的 SQL 語(yǔ)句。 -
resultMap
元素:用于定義結(jié)果集的映射關(guān)系。 -
parameterMap
元素:用于定義參數(shù)的映射關(guān)系。 -
sql
元素:用于定義 SQL 片段,可以在其他 SQL 語(yǔ)句中引用。
以下是一個(gè)簡(jiǎn)單的 XML 映射文件示例:
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserById" parameterType="int" resultType="com.example.model.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
在上述代碼中,我們定義了一個(gè) UserMapper
的 XML 映射文件,并在其中定義了一個(gè)名為 getUserById
的查詢操作。該操作接收一個(gè) int
類型的參數(shù) id
,返回一個(gè) com.example.model.User
類型的結(jié)果集。
XML 映射文件的語(yǔ)法規(guī)則
在 XML 映射文件中,我們需要遵循以下語(yǔ)法規(guī)則:
- 所有 XML 元素必須有一個(gè)結(jié)束標(biāo)簽。
- 屬性值必須使用引號(hào)括起來(lái)。
- XML 元素名稱和屬性名稱都是大小寫(xiě)敏感的。
- XML 注釋可以使用
<!-- -->
標(biāo)記。
以下是一個(gè) XML 映射文件的完整示例:
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserById" parameterType="int" resultType="com.example.model.User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="com.example.model.User">
INSERT INTO user (username, password) VALUES (#{username}, #{password})
</insert>
<update id="updateUser" parameterType="com.example.model.User">
UPDATE user SET password = #{password} WHERE id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
<resultMap id="userMap" type="com.example.model.User">
<id property="id" column="id" />
<result property="username" column="username" />
<result property="password" column="password" />
</resultMap>
</mapper>
在上述代碼中,我們定義了一個(gè) UserMapper
的 XML 映射文件,并在其中定義了查詢、插入、更新、刪除操作以及結(jié)果映射關(guān)系。
XML 映射文件的常見(jiàn)用法
在 XML 映射文件中,我們可以使用以下常見(jiàn)用法:
- 使用
parameterType
屬性來(lái)指定參數(shù)類型。 - 使用
resultType
屬性來(lái)指定結(jié)果類型。 - 使用
#{}
占位符來(lái)表示參數(shù)。 - 使用
<if>
、<where>
、<foreach>
等元素來(lái)動(dòng)態(tài)生成 SQL 語(yǔ)句。 - 使用
<selectKey>
元素來(lái)獲取自動(dòng)生成的主鍵值。
以下是一個(gè)使用 <if>
元素的示例:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-481687.html
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserByUsernameAndPassword" parameterType="com.example.model.User" resultType="com.example.model.User">
SELECT * FROM user WHERE 1 = 1
<if test="username != null">
AND username = #{username}
</if>
<if test="password != null">
AND password = #{password}
</if>
</select>
</mapper>
在上述代碼中,我們定義了一個(gè)名為 getUserByUsernameAndPassword
的查詢操作,并使用 <if>
元素來(lái)動(dòng)態(tài)生成 SQL 語(yǔ)句。如果 username
和 password
不為 null
,則將它們作為查詢條件。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-481687.html
到了這里,關(guān)于MyBatis XML 映射文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!