javabean:

package com.me.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List; public class User implements Serializable { /**
*
*/
private static final long serialVersionUID = 1L;
private int id;
private String username;
private Date birthday;
private String sex;
private String address;
//一對一 放入對象
private Morder morder;
//一對多 放入對象集合
private List<Home> homeList; public List<Home> getHomeList() {
return homeList;
}
public void setHomeList(List<Home> homeList) {
this.homeList = homeList;
}
public Morder getMorder() {
return morder;
}
public void setMorder(Morder morder) {
this.morder = morder;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", birthday="
+ birthday + ", sex=" + sex + ", address=" + address
+ ", morder=" + morder + ", homeList=" + homeList + "]";
} }
package com.me.model;

public class Morder {

    private int orderId;
private String orderName;
private String orderMessage;
public int getOrderId() {
return orderId;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
public String getOrderName() {
return orderName;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
public String getOrderMessage() {
return orderMessage;
}
public void setOrderMessage(String orderMessage) {
this.orderMessage = orderMessage;
} }
package com.me.model;

public class Home {

	private int homeId;
private String homeName;
public int getHomeId() {
return homeId;
}
public void setHomeId(int homeId) {
this.homeId = homeId;
}
public String getHomeName() {
return homeName;
}
public void setHomeName(String homeName) {
this.homeName = homeName;
} }

  mapper.xml 代码

<!-- collection :collection属性的值有三个分别是list、array、map三种, 分别对应的参数类型为:List、数组、map集合,我在上面传的参数为数组,所以值为array
item : 表示在迭代过程中每一个元素的别名 index :表示在迭代过程中每次迭代到的位置(下标) open :前缀 close :后缀 separator
:分隔符,表示迭代时每个元素之间以什么分隔 -->
<delete id="deleteSome">
delete from user where id in
<foreach collection="list" item="id" index="index" open="("
close=")" separator=",">
#{id}
</foreach>
</delete> <!-- 关联查询 -->
<!-- 關聯查詢 1對1 -->
<select id="selectGL" resultMap="userRsultMap">
select * from user u,morder m
WHERE u.oid=m.order_id
</select>
<resultMap type="com.me.model.User" id="userRsultMap">
<id property="id" column="id" />
<result column="username" property="username" />
<result column="birthday" property="birthday" />
<result column="sex" property="sex" />
<result column="address" property="address" /> <association property="morder" javaType="com.me.model.Morder">
<id column="order_id" property="orderId" />
<result column="order_name" property="orderName" />
<result column="order_message" property="orderMessage" />
</association>
</resultMap>
<!-- 關聯查詢 1對多 -->
<select id="selectGL2" resultMap="userRsultMap2">
select * from user u,home h where u.hid=h.home_id;
</select>
<resultMap type="com.me.model.User" id="userRsultMap2">
<id property="id" column="id" />
<result column="username" property="username" />
<result column="birthday" property="birthday" />
<result column="sex" property="sex" />
<result column="address" property="address" /> <collection property="homeList" ofType="com.me.model.Home">
<id property="homeId" column="home_id" />
<result property="homeName" column="home_name" />
</collection>
</resultMap>

图文解释:

测试:

//關聯查詢 1 to 多
@Test
public void selectGL2(){
try {
inputStream = Resources.getResourceAsStream(resource);
// 创建会话工厂,传入MyBatis的配置文件信息
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
// 通过工厂得到SqlSession
sqlSession = sqlSessionFactory.openSession();
List<User> list = sqlSession.selectList("test.selectGL2");
for (User u : list) {
System.err.println(u.getHomeList().get(0).getHomeName());
} } catch (IOException e) {
e.printStackTrace();
} finally {
// 释放资源
sqlSession.close();
}
}

结果:

22:47:17.005 [main] DEBUG org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
22:47:17.140 [main] DEBUG o.a.i.d.pooled.PooledDataSource - PooledDataSource forcefully closed/removed all connections.
22:47:17.140 [main] DEBUG o.a.i.d.pooled.PooledDataSource - PooledDataSource forcefully closed/removed all connections.
22:47:17.140 [main] DEBUG o.a.i.d.pooled.PooledDataSource - PooledDataSource forcefully closed/removed all connections.
22:47:17.140 [main] DEBUG o.a.i.d.pooled.PooledDataSource - PooledDataSource forcefully closed/removed all connections.
22:47:17.215 [main] DEBUG o.a.i.t.jdbc.JdbcTransaction - Opening JDBC Connection
22:47:17.420 [main] DEBUG o.a.i.d.pooled.PooledDataSource - Created connection 518522822.
22:47:17.420 [main] DEBUG o.a.i.t.jdbc.JdbcTransaction - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@1ee807c6]
22:47:17.421 [main] DEBUG test.selectGL2 - ==> Preparing: select * from user u,home h where u.hid=h.home_id;
22:47:17.444 [main] DEBUG test.selectGL2 - ==> Parameters:
22:47:17.461 [main] DEBUG test.selectGL2 - <== Total: 4
sasadasd
22:47:17.462 [main] DEBUG o.a.i.t.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@1ee807c6]
22:47:17.462 [main] DEBUG o.a.i.t.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@1ee807c6]
22:47:17.463 [main] DEBUG o.a.i.d.pooled.PooledDataSource - Returned connection 518522822 to pool.

更多可以参考:https://www.cnblogs.com/xdp-gacl/p/4264440.html

最新文章

  1. QML 从无到有 3 (自动更新)
  2. Visual Studio 2005 搭建Windows CE 6.0环境之准备
  3. Notepad++编写Markdown
  4. string模块
  5. Spark:读取hdfs gz压缩包
  6. linux安装jdk(以centos安装jdk1.7为例)
  7. java学习笔记_MIDI
  8. Google正确搜索方法
  9. ADB几种常见的错误及解决方法
  10. NYOJ 284 坦克大战 【BFS】+【优先队列】
  11. java中基本数据类型和C语言中基本数据类型转换
  12. Oozie安装时放置Mysql驱动包的总结(网上最全)
  13. iOS-strong和copy【详细解读】
  14. Jenkins持续集成实践之java项目自动化部署
  15. Oracle生成GUID
  16. 《MySQL必知必会》官方提供的数据库和表
  17. spring boot中的约定优于配置
  18. git忽略某些文件的几种方法
  19. java使用ssh远程操作linux 提交spark jar
  20. Python 简说 list,tuple,dict,set

热门文章

  1. Python中面向对象的一些关于私有变量和继承的理解
  2. hdu 6040 Hints of sd0061(stl: nth_element(arr,arr+k,arr+n))
  3. 【Html 学习笔记】第五节——表格
  4. idea git tag 管理
  5. Python基本常用算法
  6. yii2 实现excel导出功能
  7. 01_StudentManager
  8. PHPStorm 使用正则批量查询替换并自动转换大小写的方法
  9. HAWQ + MADlib 玩转数据挖掘之(四)——低秩矩阵分解实现推荐算法
  10. k近邻法( k-nearnest neighbor)