1.sql.xml
<?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">
<!--namespace必须是接口的全类名 -->
<mapper namespace="com.genius">
<!-- 1.0 查询表结构是否存在 -->
<select id="selectOne" parameterType="java.util.HashMap"
resultType="java.util.HashMap">
select count(*) as num from ${tableName} where seq =
#{seq};
</select>
<!-- 1.1 插入一条数据 -->
<insert id="insertOne" parameterType="java.util.Map">
insert into ${tableName}
<foreach collection="content.keys" item="key" open="(" close=")"
separator=",">
${key}
</foreach>
values
<foreach collection="content.values" item="value" open="("
close=")" separator=",">
#{value}
</foreach>
</insert>
<!-- 1.2 更新记录 -->
<update id="updateOne" parameterType="java.util.Map">
UPDATE ${tableName} SET
<foreach collection="content.keys" item="key" open="" close=""
separator=",">
${key} = #{content[${key}]}
</foreach>
where seq = #{content[seq]} and genius_uid <=
#{content[genius_uid]};
</update>
<!-- 1.3 删除无效数据 -->
<delete id="deleteOne" parameterType="java.util.Map">
delete from ${tableName}
where seq = #{content[seq]};
</delete>
</mapper>
2.java代码:
SqlSession session = MyBatisConnectionFactory.getSession("pg");
HashMap<String, Object> params = new HashMap<>(); //传入的参数
params.put("content", tableContent);
params.put("tableName", tableName);
params.put("seq", seq);
int flag = session.delete("deleteOne", params); //删除记录
HashMap<String, Object> map = session.selectOne("selectOne", params); //查询记录是否存在
flag = session.update("updateOne", params) > 0 ? true : false; //更新
flag = session.insert("insertOne", params) > 0 ? true : false; //新增