MyBatis多对一,一对多,多对多,一对多关联查询
2024-09-01 19:10:57
一、Person实体类
1 public class Person {
2 private Integer personId;
3 private String name;
4 private Integer gender;
5 private String personAddr;
6 private Date birthday;
7 //与订单的关系是一对多
8 private List<Orders> orderList;
9 //与角色是一对多关系
10 private List<Role> roleList;
11 //与身份证是一对一关系
12 private IdCard ic;
13 }
二、mapper映射文件相关配置
1 <!-- =====================一对多关联查询============================ -->
2 <resultMap type="person" id="selectOrderByPersonIdRm" extends="BaseResultMap">
3 <collection property="orderList" ofType="cn.tx.model1.Orders">
4 <id column="ORDER_ID" property="orderId" jdbcType="INTEGER" />
5 <result column="PERSON_ID" property="personId" jdbcType="INTEGER" />
6 <result column="TOTAL_PRICE" property="totalPrice" jdbcType="REAL" />
7 <result column="ADDR" property="addr" jdbcType="VARCHAR" />
8 </collection>
9 </resultMap>
10 <select id="selectOrderByPersonId" parameterType="int" resultMap="selectOrderByPersonIdRm">
11 SELECT * from person p, orders o where p.PERSON_ID = o.PERSON_ID and p.PERSON_ID = #{personId};
12 </select>
<resultMap type="person" id="selectOrderAndDetailByPersonIdRM" extends="BaseResultMap">
<collection property="orderList" ofType="cn.tx.model1.Orders">
<id column="ORDER_ID" property="orderId" jdbcType="INTEGER" />
<result column="PERSON_ID" property="personId" jdbcType="INTEGER" />
<result column="TOTAL_PRICE" property="totalPrice" jdbcType="REAL" />
<result column="ADDR" property="addr" jdbcType="VARCHAR" />
<collection property="detailList" ofType="cn.tx.model1.OrderDetail">
<id column="DETAIL_ID" property="detailId" jdbcType="INTEGER" />
<result column="ORDER_ID" property="orderId" jdbcType="INTEGER" />
<result column="ITEM_NAME" property="itemName" jdbcType="VARCHAR" />
<result column="PRICE" property="price" jdbcType="REAL" />
<result column="QUANTITY" property="quantity" jdbcType="INTEGER" />
</collection>
</collection>
</resultMap>
<select id="selectOrderAndDetailByPersonId" parameterType="int" resultMap="selectOrderAndDetailByPersonIdRM">
SELECT * from person p, orders o,order_detail od where p.PERSON_ID = o.PERSON_ID and o.ORDER_ID = od.ORDER_ID and p.PERSON_ID = #{personId}
</select>
<resultMap type="person" id="selectPersonAndRoleByPersonIdRM" extends="BaseResultMap">
<collection property="roleList" ofType="cn.tx.model1.Role">
<id column="ROLE_ID" property="roleId" jdbcType="INTEGER" />
<result column="ROLE_NAME" property="roleName" jdbcType="VARCHAR" />
<result column="DESCPRIT" property="descprit" jdbcType="VARCHAR" />
</collection>
</resultMap>
<select id="selectPersonAndRoleByPersonId" parameterType="int" resultMap="selectPersonAndRoleByPersonIdRM">
SELECT * from person p,person_role pr,role r where p.PERSON_ID=pr.PERSON_ID AND pr.ROLE_ID=r.ROLE_ID AND p.PERSON_ID=#{id}
</select>
最新文章
- Dreamweaver 扩展开发:C-level extensibility and the JavaScript interpreter
- hduoj 1455 &;&; uva 243 E - Sticks
- android 断点下载---XUtils
- accept()
- fifo manage
- 网页抓取:PHP实现网页爬虫方式小结
- C#二维数组(矩形数组,交错数组)
- [Swift]LeetCode8. 字符串转整数 (atoi) | String to Integer (atoi)
- bzoj3527: [Zjoi2014]力 卷积+FFT
- time_wait的快速回收和重用
- 【原】 The Linux Command Line - Permissions
- java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).
- SpringSecurity-ChannelProcessingFilter的作用
- day70 csrf简单用法 &;Django ContentType
- EPC sequence
- Windows远程常见问题
- LG. 1003 铺地毯
- [android ndk] -android studio中编译生成so文件
- OWIN初探
- centos 7 bbr 安装