mybatis传入map任意表增删改查,分页过滤字段
2024-10-06 08:20:39
<!--根据实体参数查询 -->
<select id="selectBaseList" resultType="java.util.HashMap">
select
*
from ${map.tableName}
where 1=1
<foreach collection="map" index="key" item="value">
<if
test="key != 'tableName' and key != 'pageSize' and key != 'pageNo' ">
and `${key}` = #{value}
</if>
</foreach>
limit #{baseModel.fromRec},#{baseModel.pageSize}
</select> <!--根据实体参数查询个数 -->
<select id="selectBaseCount" resultType="java.lang.Integer">
select
count(1)
from ${map.tableName}
where 1=1
<foreach collection="map" index="key" item="value">
<if
test="key != 'tableName' and key != 'pageSize' and key != 'pageNo' ">
and `${key}` = #{value}
</if>
</foreach>
</select> <insert id="insertBase" parameterType="java.util.HashMap">
insert into ${map.tableName}
(
<foreach collection="map" index="key" item="value"
separator=",">
<if test="key != 'tableName' ">
`${key}`
</if>
</foreach>
)
values (
<foreach collection="map" index="key" item="value"
separator=",">
<if test="key != 'tableName' ">
#{value}
</if>
</foreach>
)
</insert>
<update id="updateBaseByPrimaryKey">
update ${map.tableName}
<set>
<foreach collection="map" index="key" item="value"
separator=",">
<if test="key != 'tableName' ">
`${key}`= #{value}
</if>
</foreach>
</set>
where id = #{map.id}
</update>
java代码部分,baseModel中放入分页参数:
import java.util.List;
import java.util.Map; import org.apache.ibatis.annotations.Param; public interface BaseDao {
int insertBase(@Param("map") Map map); Map selectBaseByPrimaryKey(Long id); int updateBaseByPrimaryKey(@Param("map") Map map ); List<Map> selectBaseList(@Param("map") Map map, @Param("baseModel") BaseModel baseModel); int selectBaseCount(@Param("map") Map map); }
最新文章
- JS核心系列:浅谈 call apply 与 bind
- Spark standalone HA
- linux -- read(), write()
- 集成支付宝钱包支付ios SDK的方法和经验
- apache commons-email1.3使用
- MAMP:在 OSX 中搭建 Apache, MySQL, PHP 环境并本地安装、调试 WordPress
- DOM操作-遍历一个元素的所有属性
- golang中container/list包源码分析
- C语言学生管理系统(增进版)
- 微信企业号JS-SDK选择图片、上传图片
- Docker最全教程之Go实战,墙裂推荐(十八)
- Function program language
- python之操作系统介绍,进程的创建
- 微信小程序无法获取UnionId的情况及处理
- win10常用命令和设置总结
- 从flask视角理解angular(四)Route
- BZOJ2721或洛谷1445 [Violet]樱花
- delphi执行查询语句时的进度条怎么做
- bzoj千题计划198:bzoj1084: [SCOI2005]最大子矩阵
- the command line tools