1.PublicMapper.java文件
package com.ep.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.ep.model.SfMetaField;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
@Mapper
public interface PublicDataMapper {
//总体说明:
//selectFields:字段,例如 id,name
//tableName:表名称,例如 cd_user
//QueryWrapper<T> qw = new QueryWrapper<>() :查询条件
//SfMetaField:字段封装类,
// 例如: fieldCode[字段code]:name
// fieldValue[字段value]:张三
// dataType[字段类型]:字段数据类型VARCHAR2 NUMBER DATE
Map<String, Object> selectOneById(@Param("selectFields") String selectFields,
@Param("tableName") String tableName,
@Param(Constants.WRAPPER) QueryWrapper wrapper);
List<Map<String,Object>> selectList(@Param("selectFields") String selectFields,
@Param("tableName") String tableName,
@Param(Constants.WRAPPER) QueryWrapper wrapper);
void insert(@Param("tableName") String tableName,
@Param("list") List<SfMetaField> list);
void editor(@Param("tableName") String tableName,
@Param(Constants.WRAPPER) QueryWrapper wrapper,
@Param("list") List<SfMetaField> list);
void delete(@Param("tableName") String tableName,
@Param(Constants.WRAPPER) QueryWrapper wrapper);
}
2.PublicMapper.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.2//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ep.mapper.PublicDataMapper">
<select id ="selectList" resultType="java.util.LinkedHashMap" >
SELECT ${selectFields} FROM ${tableName} ${ew.customSqlSegment}
</select>
<select id ="selectOneById" resultType="java.util.LinkedHashMap" >
SELECT ${selectFields} FROM ${tableName} ${ew.customSqlSegment}
</select>
<insert id ="insert" parameterType="com.ep.model.SfMetaField" >
INSERT INTO ${tableName}
<trim prefix="(" suffix=")" suffixOverrides=",">
<foreach collection ="list" item="item" separator =",">
<if test="item.fieldValue != null and item.fieldValue != ''">${item.fieldCode}</if>
</foreach >
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<foreach collection ="list" item="item" >
<if test="item.dataType == 'VARCHAR2' and item.fieldValue != null and item.fieldValue != '' ">
#{item.fieldValue,jdbcType=VARCHAR},
</if>
<if test="item.dataType == 'DATE' and item.fieldValue != null and item.fieldValue != '' ">
to_date(#{item.fieldValue,jdbcType=DATE}, 'dd/MM/yyyy hh24:mi:ss'),
</if>
<if test="item.dataType == 'NUMBER' and item.fieldValue != null and item.fieldValue != ''">
#{item.fieldValue,jdbcType=NUMERIC},
</if>
</foreach >
</trim>
</insert>
<update id ="editor" parameterType="com.ep.model.SfMetaField" >
UPDATE ${tableName}
<trim prefix="SET" suffixOverrides=",">
<foreach collection ="list" item="item" separator =",">
<if test="item.fieldValue != '' and item.fieldValue != null ">
<if test="item.dataType == 'VARCHAR2' ">
${item.fieldCode} = #{item.fieldValue,jdbcType=VARCHAR}
</if>
<if test="item.dataType == 'DATE' ">
${item.fieldCode} = to_date(#{item.fieldValue,jdbcType=DATE}, 'dd/MM/yyyy hh24:mi:ss')
</if>
<if test="item.dataType == 'NUMBER' ">
${item.fieldCode} = #{item.fieldValue,jdbcType=NUMERIC}
</if>
</if>
</foreach >
</trim>
${ew.customSqlSegment}
</update>
<delete id ="delete">
DELETE FROM ${tableName} ${ew.customSqlSegment}
</delete>
</mapper>