0.背景

springMVC+mybatis

有这样一个需求,原本是一个简单的查询,mybatis中直接用的实体类进行查询,但是后来要加很多额外的字段和查询要求,于是想能不能除了实体类之外在额外加其他字段。

事实证明是可以的。

1.mapper层的写法
 List<IndexStorageSave> queryAll(@Param("indexStorageSave") IndexStorageSave indexStorageSave,
                                    @Param("beginTimeCity") String beginTimeCity,
                                    @Param("endTimeCity") String endTimeCity);

说明,IndexStorageSave 是实体类。其他的两个是传递的参数。

2.xml层的写法
 <select id="queryAll" resultMap="IndexStorageMap">
        select
        *
        from index_storage
        <where>
            <if test="indexStorageSave.id != null and indexStorageSave.id != ''">
                and id = #{indexStorageSave.id}
            </if>
            <if test="indexStorageSave.time != null">
                and time = #{indexStorageSave.time}
            </if>
            <if test="beginTimeCity !=null and beginTimeCity !=''">
                and city_report_time >= #{beginTimeCity}
            </if>
            <if test="endTimeCity !=null and endTimeCity!=''">
                and #{endTimeCity} >= city_report_time
            </if>
        </where>
    </select>

可以看出,实体类里面的字段通过 实体类名.字段名 就可以正常调用了。其余的还是跟原来一样调用。


分类: java