mybatis 自定義查詢語句


通過mybatis插件生成的mapper文件只有基本的增、刪、改、查、匯總。但是實際使用場景中,總是有各種需要連表、匯總、分組查詢的需求,那我們一般都通過自定義查詢語句去實現。

有時候會有表結構更改的,重新生成mapper、entity等文件會覆蓋原文件。為了減少這種修改,我們一般都重新新建一個文件來區分開。

只需要兩步就可以啦,少說話,看代碼。

1. 新增自定義mapper文件

<?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="com.selicoco.sango.dao.UserInfoDao">

    <select id="selectInfoSum" parameterType="Map"  resultType="java.lang.Integer">
        select count(id) as num
        from msc_product_summary  where birthDay BETWEEN #{dayStart} AND #{dayEnd}
    </select>

</mapper>

 

2. Dao配置並進行調用

@Repository
public class UserInfoDao {

    @Autowired
    private UserInfoMapper userInfoMapper;
    @Autowired
    private SqlSessionTemplate sqlSessionTemplate;

    private final static String SANGO_USER_INFO_DAO_SPACE = "com.selicoco.sango.dao.UserInfoDao.";

    public int selectInfoSum (Date birthDayStart, Date birthDayEnd) {
        Map<String, Date> param = new HashMap<>();
        param.put("dayStart", birthDayStart);
        param.put("dayEnd", birthDayEnd);
        return sqlSessionTemplate.selectOne(SANGO_USER_INFO_DAO_SPACE + "selectInfoSum", param);
    }
}

 

就這樣簡單,愉快的使用吧~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM