您的位置:首页 > 其它

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

2018-01-31 17:08 417 查看

前言

本文主要讲解入门项目的基本知识

本文乃是我学习笔记总结,不足之处,还望指点

本文中因多处使用注释,为方便书写,若以“//”双斜杠开头的都是注释

本文中为了清晰讲解基础知识,其中的代码并未完整

项目需求

需求

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

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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: