您的位置:首页 > 其它

Mybatis使用ResultType实现一对一关系详解(二)

2018-03-23 10:55 597 查看
首先数据库的创建    如图



user表属性



orders表属性



进行主外键关联如图



这样数据库就设计好了 测试一下



 测试成功  创建bean类  User.javapackage com.hp.bean;

import java.util.List;

public class User {
//用户表
private Integer id;
private String name;
private int ses;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public int getSes() {
return ses;
}
public void setSes(int ses) {
this.ses = ses;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", ses=" + ses + "]";
}

}
    orders.java

package com.hp.bean;

import java.util.List;

public class Orders {
//商品订单表
private Integer o_id;
private String o_name;
private Integer u_id;
//用户表
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Integer getO_id() {
return o_id;
}
public void setO_id(Integer o_id) {
this.o_id = o_id;
}
public String getO_name() {
return o_name;
}
public void setO_name(String o_name) {
this.o_name = o_name;
}
public Integer getU_id() {
return u_id;
}
public void setU_id(Integer u_id) {
this.u_id = u_id;
}
}

接下来 创建返回的pojo类型 OrderCustom.java 继承User表 下面来写订单表的属性 用于映射

package com.hp.pojo;

import com.hp.bean.Orders;
import com.hp.bean.User;
//输出映射
public class OrderCustom extends User{
//o_id,o_name
private Integer o_id;
private String o_name;
public Integer getO_id() {
return o_id;
}
public void setO_id(Integer o_id) {
this.o_id = o_id;
}
public String getO_name() {
return o_name;
}
public void setO_name(String o_name) {
this.o_name = o_name;
}
@Override
public String toString() {
return "OrderCustom [o_id=" + o_id + ", o_name=" + o_name + "]";
}
}

mapper.xml

<!-- 使用resultType 进行订单查询用户信息 -->
<select id="FindAllOrder" resultType="com.hp.pojo.OrderCustom">
select id,name,ses,o_id,o_name from orders,USER WHERE orders.u_id=user.id
</select>

mapper.java

public List<OrderCustom> FindAllOrder();

测试结果如图



总结一下  ResultType和ResultMap实现一对一查询
ResultType:实现一对一较为简单,如果pojo没有需要的列名,则需要在poojo添加属性即可完成映射.

ResultMap:需要单独定义resultMap,实现起来有点麻烦,如果对查询结果有特殊的要求,使用resultMap可以完成将查询的结果关联到pojo的属性中,可以实现延迟加载,但ResultType不能实现延迟加载.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: