1. 程式人生 > >Mybatis學習第21節 -- 擴展結果集

Mybatis學習第21節 -- 擴展結果集

integer ack myba 1.0 子類 知識點 過程 註意 batis

大部分現實應用中我們並不需要把數據庫中的整行數據都拉出來, 所以要做擴展結果集 筆記: 在實際項目過程中, 先用逆向工程自動生成, 然後再做擴展結果集來滿足大部分的現實需要 本節內容應該註意擴展結果集的命名方式

創建一個擴展類ShopCustom, (這樣命名可以和Shop在項目樹裏面排列在一起)

package io.github.coinsjack.pojo;

public class ShopCustom extends Shop {

private String shopName;
private String shopDesc;

public ShopCustom() {
}

創建一個mapper接口 ShopMapperCustom

package io.github.coinsjack.dao;

import io.github.coinsjack.pojo.ShopCustom;

public interface ShopMapperCustom {

ShopCustom getShopById(Integer id);

}

創建對應的映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="io.github.coinsjack.dao.ShopMapperCustom">

<cache/>
    <resultMap id="shopResultMap" type="ShopCustom">
<id column="shop_id" property="id" ></id>
<result column="shop_name" property="shopName"></result>
<result column="shop_desc" property="shopDesc"/>
</resultMap>

<select id="getShopById" parameterType="int" resultMap="shopResultMap" >
select `shop_id`, `shop_name`, `shop_desc`
from tb_shop
where `shop_id` = #{id}
</select>
</mapper>
測試
@Test
public void testGetShopByIdCustom() {
SqlSession session = MyBatisUtil.getSqlSession();
ShopMapperCustom mapper = session.getMapper(ShopMapperCustom.class);
System.out.println(mapper.getShopById(29));
session.close();
}

結果

2018-12-29 11:33:32,656 [main] DEBUG [io.github.coinsjack.dao.ShopMapperCustom] - Cache Hit Ratio [io.github.coinsjack.dao.ShopMapperCustom]: 0.0
2018-12-29 11:33:33,128 [main] DEBUG [io.github.coinsjack.dao.ShopMapperCustom.getShopById] - ==> Preparing: select `shop_id`, `shop_name`, `shop_desc` from tb_shop where `shop_id` = ?
2018-12-29 11:33:33,237 [main] DEBUG [io.github.coinsjack.dao.ShopMapperCustom.getShopById] - ==> Parameters: 29(Integer)
2018-12-29 11:33:33,309 [main] DEBUG [io.github.coinsjack.dao.ShopMapperCustom.getShopById] - <== Total: 1
ShopCustom{shopName=‘暴漫奶茶店‘, shopDesc=‘過來喝喝就知道啦,你是我的奶茶‘}


Java知識點 如果父類實現了某接口,子類也會繼承接口的實現

Mybatis學習第21節 -- 擴展結果集