MyBatis入门【八】一对一查询之resultType

49 篇文章 5 订阅
37 篇文章 1 订阅

前言

  • 本文主要讲解入门项目的基本知识
  • 本文乃是我学习笔记总结,不足之处,还望指点
  • 本文中因多处使用注释,为方便书写,若以“//”双斜杠开头的都是注释
  • 本文中为了清晰讲解基础知识,其中的代码并未完整

项目需求

需求

查询一个订单信息,关联查询创建订单的用户信息(大家自行脑补什么订单吧)

SQL语句

确定查询的主表:订单表
确定查询的关联表:用户表
(相信大家也清楚简单电商平台数据库的吧)

select 
    orders.* , 
    user.username,
    user.sex,
    user.address 
from 
    orders , user 
where 
    orders.id = user.id

orders:订单表
user:用户信息表

创建pojo

将上边sql查询的结果映射到pojo中,pojo中必须包括所有查询列名

mapper.xml配置文件

<!-- namespace命名空间,作用就是对SQL进行分类化管理,理解SQL隔离
    注意:使用mapper代理方式开发,namespace有特殊重要作用,namespace等于mapper接口地址
 -->
<mapper namespac="OrdersMapperCustom全路径">
    <!-- 查询订单关联查询用户信息 -->
    <select id="findOrdersUser" parameterType="" resultType="OrdersMapperCustom全路径或别名">
    <!-- parameterType="",用于传入查询条件参数,在此处先进行省略 -->
    select orders.* , user.username,user.sex,user.address from orders , user where orders.id = user.id
</select>

mapper.java

public interface OrdersMapperCustom{
    //查询订单关联查询用户信息
    public List<OrdersCustom> findOrdersUser() throws Exception;

    //其他代码
}

测试方法


//此方法是在执行test方法之前执行
@Before
public void setUp() throws Exception{
    //创建sqlSessionFactory

    //mybatis配置文件
    String  resource = "SqlMapConfig.xml";
    //得到配置文件
    InputStream inputStream = Resources.getResourceAsStream(resource);

    //创建会话工厂,传入mybatis的配置文件信息
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}

@Test
public void test() throws{
    SqlSession sqlSession = sqlSessionFactory.openSession();

    //创建代理对象
    OrdersMapperCustom ordersMapperCustom = sqlSession.getMapper(OrdersMapperCustom.class);
    //调用mapper方法
    List<OrdersCustom> list = ordersMapperCustom.findOrdersUser();

    System.out.println(list);

    sqlSession.close();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值