Mybatis使用resultMap实现一对一查询

数据库设计,部分源文件请参照resulttype那篇随笔,不再次累赘。

创建Orders.java把User.java作为属性加入

import java.util.Date;

import cn.zqq.bean.User;

public class Orders{

    private String number;
    private Date craetetime;
    private String note;
    private User user;

    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    public Date getCraetetime() {
        return craetetime;
    }
    public void setCraetetime(Date craetetime) {
        this.craetetime = craetetime;
    }
    public String getNote() {
        return note;
    }
    public void setNote(String note) {
        this.note = note;
    }
    @Override
    public String toString() {
        return "Orders [number=" + number + ", craetetime=" + craetetime + ", note=" + note + ", user=" + user + "]";
    }

}

mapper.java文件如下



import java.util.List;

public interface UserCustomOrderMap {

    public List<Orders> findAllInfoUserOrdersMap()throws Exception;
}

 

对应的UserCustomOrderMa.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC " -//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.zqq.one2one.resultmap.UserCustomOrderMap">

    <resultMap type="cn.zqq.one2one.resultmap.Orders" id="ordersMap">
        <result column="number" property="number"/>
        <result column="createtime" property="craetetime"/>
        <result column="note" property="note"/>
        <!-- 复杂类型的属性,引入相关类型并配置 -->
        <association javaType="cn.zqq.bean.User" property="user">
            <id column="id" property="id"/>
            <result column="username" property="username"/>
            <result column="birthday" property="birthday"/>
            <result column="sex" property="sex"/>
            <result column="address" property="address"/>

        </association>
    </resultMap>
    <select id="findAllInfoUserOrdersMap" resultMap="ordersMap">
        SELECT * FROM USER,orders WHERE user.id=orders.user_id;
    </select>
</mapper>

测试代码



    SqlSession sqlSession = null;

    @Before
    public void beforesourse() throws IOException {
        String resource = "SqlMapConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        sqlSession = sqlSessionFactory.openSession();
    }


@Test
    public void findAllInfoUserOrders() throws Exception {
        UserCustomOrderMap order = sqlSession.getMapper(UserCustomOrderMap.class);
        List<Orders> userOrders = order.findAllInfoUserOrdersMap();
        for (Orders userCustom : userOrders) {
            System.out.println(userCustom);
        }
    }

对于SqlMapConfig.xml添加对应的包的扫描器即可

时间: 2024-10-22 12:06:09

Mybatis使用resultMap实现一对一查询的相关文章

mybatis学习笔记(10)-一对一查询

mybatis学习笔记(10)-一对一查询 mybatis学习笔记10-一对一查询 resultType实现 resultMap实现 resultType和resultMap实现一对一查询小结 本文使用两种方式(resultType和resultMap)实现一对一查询,查询订单信息,关联查询创建订单的用户信息 resultType实现 sql语句 确定查询的主表:订单表 确定查询的关联表:用户表 关联查询使用内连接?还是外连接? 因为orders表中有一个外键(user_id),通过外键关联查询

好947 Mybatis 配置resultMap 带参数查询Map 注意selectOne数据库返回结果一条数据库 否则会报错

//TMD 写几个demo 还有大站采集 <a target=_blank href="http://hao947.com/" target="_blank">好947</a> 映射配置文件 <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 --> <RESULTMAP id=BaseResultMap type="person"><pre name="c

MyBatis Review——使用resultType和resultMap实现一对一查询

例如: 查询订单信息,关联查询创建订单的用户信息. 查询语句: SELECT orders.*, USER .username ,USER .sex, USER .address FROM orders, USER WHERE orders.user_id = USER .id 查询结果: 1,使用resultType接受输出结果 用户信息: 订单信息: 用于接收结果的pojo: 为了将查询结果映射到pojo中,pojo必须包括所有查询列名.在原始orders对象不能接受所有查询字段的时候,定义

使用mybatis的resultMap进行复杂查询

数据库表如下: p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri", sans-serif } .MsoChpDefault { font-size: 10pt } div.WordSection1 { } 拿到表的第一时间要学会分析陌生表的数据模型: 1.学习单表记录了什么东西(

MyBatis测试resultMap,分步查询以及延迟加载

什么是resultMap?   resultMap即自定义结果集映射规则,之前我们使用的resultType是MyBatis为我们提供的默认映射规则,使用方法如下: <mapper namespace="com.zgz.MyBatis.dao.DeptMapper"> <select id="getDeptById" resultType="com.zgz.MyBatis.bean.Dept"> select id, de

Mybatis使用resultType实现一对一查询

引入mybatis相关jar,本示例是基于3.2.7版本,引入相关数据库驱动jar 创建两张数据库表 user表 CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(32) NOT NULL COMMENT '用户姓名', `birthday` date DEFAULT NULL COMMENT '出生日期', `sex` char(1) DEFAULT NULL COMMENT '性别',

20Mybatis_订单商品数据模型_一对一查询——resultType和resultMap两种方式以及两种方式的总结

上一篇文章分析了数据模型,这篇文章就给出一个需求,这个需求是一对一查询,并完成这个需求. -------------------------------------------------------------------------------------------------------------------------------------------- 需求: 查询订单信息,关联查询创建订单的用户信息. 记住:用Mybatis开发的顺序就是 1.写sql语句 2.创建pojo类来

mybatis系列-10-一对一查询

10.1     需求 查询订单信息,关联查询创建订单的用户信息 10.2     resultType 10.2.1      sql语句 确定查询的主表:订单表 确定查询的关联表:用户表 关联查询使用内链接?还是外链接? 由于orders表中有一个外键(user_id),通过外键关联查询用户表只能查询出一条记录,可以使用内链接. SELECT orders.*, username, sex, address FROM orders, USER WHERE orders.user_id = u

一对一查询(2)

需求: 查询订单信息,关联查询创建订单的用户信息. 记住:用Mybatis开发的顺序就是 1.写sql语句 2.创建pojo类来完成映射 3.写Mapper.xml 4.写Mapper.java接口 --------------------------------------------------------------------------------------------------------------------------------------------------- 我们