前言
- 本文主要讲解入门项目的基本知识
- 本文乃是我学习笔记总结,不足之处,还望指点
- 本文中因多处使用注释,为方便书写,若以“//”双斜杠开头的都是注释
- 本文中为了清晰讲解基础知识,其中的代码并未完整
项目需求
需求
查询一个订单信息,关联查询创建订单的用户信息(大家自行脑补什么订单吧)
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();
}