06-MyBatis_关联映射之多对一
来源:互联网 发布:人工智能实际应用 编辑:程序博客网 时间:2024/05/17 03:30
0. 源码下载
MyBatis_关联映射之多对一_src.zip
1. 表
1.1 表名和字段
person(personId,personName,personAddress,personTel)
orders(orderId,ordreNumber,orderPrice,pid)
1.2 SQL脚本(MySQL)
USE mybatis;CREATE TABLE person( personId VARCHAR(36) PRIMARY KEY, personName VARCHAR(64), personAddress VARCHAR(128), personTel VARCHAR(11));-- order 在MySQL中是关键字CREATE TABLE orders( orderId VARCHAR(36) PRIMARY KEY, orderNumber VARCHAR(20), orderPrice INT, pid VARCHAR(36));INSERT INTO person VALUES('001', 'Jack', 'Wuhan', '1234567');INSERT INTO orders VALUES('O_00001', '00001', 100, '001');INSERT INTO orders VALUES('O_00002', '00002', 200, '001');SELECT p.*, o.*FROM person p JOIN orders o ON (p.personId=o.pid)WHERE p.personId = '001'SELECT o.*, p.*FROM orders o JOIN person p ON (p.personId=o.pid)WHERE o.orderId = 'O_00001'
2. 实体
public class Person { private String id; private String name; private String address; private String tel; // set get 已省略}public class Order { private String id; private String number; private Integer price; private Person person; // set get 已省略}
3. 总配置
同上一篇05-MyBatis_关联映射之一对多4. 映射文件
<mapper namespace="com.hehe.mybatis.domain.Person"><resultMap type="Person" id="personMap"><id column="personId" property="id"/><result column="personName" property="name"/><result column="personAddress" property="address"/><result column="personTel" property="tel"/></resultMap></mapper>
<mapper namespace="com.hehe.mybatis.domain.Order"> <resultMap type="Order" id="orderMap"> <id column="orderId" property="id"/> <result column="orderNumber" property="number"/> <result column="orderPrice" property="price"/> <!-- 多对一 --> <!-- private Person person; --> <association property="person" javaType="Person"> <id column="personId" property="id"/> <result column="personName" property="name"/> <result column="personAddress" property="address"/> <result column="personTel" property="tel"/> </association> </resultMap> <!-- 关联查询 --> <select id="selectOrderById" parameterType="string" resultMap="orderMap"> SELECT o.*, p.* FROM orders o JOIN person p ON (p.personId=o.pid) WHERE o.orderId = 'O_00001' </select> </mapper>
5. 测试
/* <!-- 关联查询 --><select id="selectOrderById" parameterType="string" resultMap="orderMap">SELECT o.*, p.*FROM orders o JOIN person p ON (p.personId=o.pid)WHERE o.orderId = 'O_00001'</select>*/@Test public void testSelectOrderById() throws Exception {SqlSession session = sqlSessionFactory.openSession();Order order = session.selectOne("com.hehe.mybatis.domain.Order.selectOrderById", "O_00001");System.out.println(order.getId() + "\t" +order.getNumber() + "\t" +order.getPrice() + "\t" +order.getPerson().getId() + "\t" +order.getPerson().getName() + "\t" +order.getPerson().getAddress() + "\t" +order.getPerson().getTel());session.close();}
- 06-MyBatis_关联映射之多对一
- 关联映射之多对一
- Hibernate映射之多对一关联映射
- 05-MyBatis_关联映射之一对多
- hibernate之多对一关联映射
- 【Hibernate步步为营】--关联映射之多对一
- 【Hibernate步步为营】--关联映射之多对一
- Hibernate关联映射之多对一单向关联映射
- Hibernate 关联映射 之多对一关联(一)
- hibernate关联映射之多对一单向关联
- Hibernate关联映射之多对一、一对一映射
- 【HIbernate】(五)关联映射之多对一映射
- 19、结果集映射之多对一关联映射
- 【HIbernate】(五)关联映射之多对一映射
- Hibernate(2)关联映射之多对一
- 【Hibernate系列】(五):关联映射之多对一
- Hibernate关联映射之多对一/一对多双向关联映射
- Hibernate 关联映射 之多对一关联(二) 懒加载
- nyoj-630-Problem of IP
- 链表有无环经典问题汇总
- HDU The Boss on Mars
- 小米2014校园招聘笔试题2013.10.19杭州
- Linux系统启动的基本过程和步骤
- 06-MyBatis_关联映射之多对一
- 编程中无穷大常量的设定技巧
- javascript继承
- POJ 3233 —— 矩阵快速幂
- poj 3252 Round Numbers (数位DP)
- uva 11624 - Fire! bfs
- Qt中Qstring,char,int,QByteArray之间到转换
- High Waits on 'Db File Sequential Read' Due to Table Lookup Following Index Access
- java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused