前言
- 本文主要講解入門項目的基本知識
- 本文乃是我學習筆記總結,不足之處,還望指點
- 本文中因多處使用註釋,爲方便書寫,若以“//”雙斜槓開頭的都是註釋
- 本文中爲了清晰講解基礎知識,其中的代碼並未完整
項目需求
需求
查詢一個訂單信息,關聯查詢創建訂單的用戶信息(大家自行腦補什麼訂單吧)
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();
}