亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

mybatis一對多和多對一怎么配置

小億
106
2024-01-26 14:50:15
欄目: 編程語言

MyBatis的一對多和多對一關系的配置需要使用兩個標簽:<collection><association>

一對多關系的配置步驟如下:

  1. 創建兩個實體類,一個代表一的一方,一個代表多的一方。
  2. 在一的一方的實體類中添加一個集合屬性,用于存儲多的一方的實體對象。
  3. 在Mapper.xml文件中,使用<collection>標簽配置一對多關系。在<collection>標簽中,指定property屬性為一的一方的集合屬性,ofType屬性為多的一方的實體類,select屬性為查詢多的一方數據的SQL語句。
  4. 在查詢一的一方數據的SQL語句中,使用<collection>標簽的select屬性的值作為子查詢,并將查詢結果映射到一的一方的集合屬性中。

多對一關系的配置步驟如下:

  1. 創建兩個實體類,一個代表多的一方,一個代表一的一方。
  2. 在多的一方的實體類中添加一個實體對象屬性,用于存儲一的一方的實體對象。
  3. 在Mapper.xml文件中,使用<association>標簽配置多對一關系。在<association>標簽中,指定property屬性為多的一方的實體對象屬性,javaType屬性為一的一方的實體類,column屬性為多的一方的外鍵列名。
  4. 在查詢多的一方數據的SQL語句中,使用<association>標簽的select屬性的值作為子查詢,并將查詢結果映射到多的一方的實體對象屬性中。

配置示例:

一對多關系配置示例:

<resultMap id="userMap" type="User">
  <id property="id" column="id"/>
  <result property="name" column="name"/>
  <collection property="orders" ofType="Order" select="getOrdersByUserId" column="id"/>
</resultMap>

<select id="getUserById" parameterType="int" resultMap="userMap">
  SELECT * FROM user WHERE id = #{id}
</select>

<select id="getOrdersByUserId" parameterType="int" resultMap="orderMap">
  SELECT * FROM orders WHERE user_id = #{userId}
</select>

多對一關系配置示例:

<resultMap id="orderMap" type="Order">
  <id property="id" column="id"/>
  <result property="name" column="name"/>
  <association property="user" javaType="User" column="user_id" select="getUserById"/>
</resultMap>

<select id="getOrderById" parameterType="int" resultMap="orderMap">
  SELECT * FROM orders WHERE id = #{id}
</select>

<select id="getUserById" parameterType="int" resultMap="userMap">
  SELECT * FROM user WHERE id = #{id}
</select>

這些示例假設存在兩個表:userorders,其中orders表中的外鍵列為user_id

0
香格里拉县| 连州市| 木里| 寿阳县| 柳河县| 博乐市| 沁水县| 渭南市| 舟山市| 彰化市| 景德镇市| 盐山县| 渝北区| 杂多县| 土默特左旗| 堆龙德庆县| 梧州市| 卓尼县| 西青区| 闽侯县| 冕宁县| 新津县| 江安县| 哈密市| 聂拉木县| 元江| 阜康市| 永德县| 利川市| 邳州市| 吴桥县| 揭东县| 舒城县| 邯郸县| 渝中区| 江安县| 乌拉特前旗| 霸州市| 始兴县| 屏东市| 镇赉县|