MyBatis入門【八】一對一查詢之resultType

前言

  • 本文主要講解入門項目的基本知識
  • 本文乃是我學習筆記總結,不足之處,還望指點
  • 本文中因多處使用註釋,爲方便書寫,若以“//”雙斜槓開頭的都是註釋
  • 本文中爲了清晰講解基礎知識,其中的代碼並未完整

項目需求

需求

查詢一個訂單信息,關聯查詢創建訂單的用戶信息(大家自行腦補什麼訂單吧)

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();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章