大部分现实应用中我们并不需要把数据库中的整行数据都拉出来, 所以要做扩展结果集
笔记: 在实际项目过程中, 先用逆向工程自动生成, 然后再做扩展结果集来满足大部分的现实需要
本节内容应该注意扩展结果集的命名方式
创建一个扩展类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='过来喝喝就知道啦,你是我的奶茶'} |