<?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.app.application.mapper.generate.CommonMapper">
<select id="getDataByTableNameAndIds" parameterType="map" resultType="java.util.TreeMap">
select * from ${tableName} where id in (<foreach collection="ids" item="id" index="key" separator=",">
#{id}
</foreach>)
</select>
<select id="getDataItemsByTableNameAndParentIds" parameterType="map" resultType="java.util.TreeMap">
select * from ${tableName} where parent_id in (<foreach collection="parentIds" item="parentId" index="key"
separator=",">
#{parentId}
</foreach>)
</select>
<select id="selectMetaDataByTableName" parameterType="map" resultType="java.util.TreeMap">
select column_name ,column_camel as Name ,column_comment as Caption,type_symbol as DataType,table_name,interface_name from 3pl_table_meta where table_name = #{tableName} order by column_camel
</select>
<select id="selectMetaCloumnByTableName" parameterType="map" resultType="java.util.TreeMap">
select column_camel as Name ,column_comment as Caption,type_symbol as DataType from 3pl_table_meta where table_name = #{tableName}
</select>
<select id="selectAllSendTableNames" resultType="java.lang.String">
select distinct table_name from 3pl_table_meta
</select>
<select id="selectSendTasks" parameterType="map" resultType="java.util.TreeMap">
select * from t_send limit 20
</select>
<select id="getSendTableName" parameterType="map" resultType="java.lang.String">
SELECT DISTINCT table_name FROM 3pl_table_meta
<if test="tableName != null">
WHERE table_name = #{tableName}
</if>
</select>
<insert id="insert" parameterType="map">
insert into ${tableName} (
<foreach collection="columnMap" item="value" index="key" separator=",">
${key}
</foreach>
)
values (
<foreach collection="columnMap" item="value" index="key" separator=",">
#{value}
</foreach>
)
</insert>
<update id="updateAnyTableByName" parameterType="map">
update ${tableName} set
<foreach collection="cloumnAndValue" item="cloumnValue" index="columnkey" separator=",">
${columnkey} = #{cloumnValue}
</foreach>
where
<foreach collection="condition" item="conditionValue" index="conditinColumn" separator=" and ">
${conditinColumn} = #{conditionValue}
</foreach>
</update>
</mapper>
package com.app.application.mapper.generate;
import java.util.List;
import java.util.Map;
public interface CommonMapper {
List<Map<String, Object>> getDataByTableNameAndIds(Map params);
List<Map<String, Object>> getDataItemsByTableNameAndParentIds(Map params);
List<Map<String, Object>> selectMetaDataByTableName(Map params);
List<Map<String, Object>> selectMetaCloumnByTableName(Map params);
List selectAllSendTableNames();
List<String> getSendTableName(Map tableName);
int updateAnyTableByName(Map params);
}
——————————————————————————————————————
controller就自己写吧
代码片段:
@GetMapping("/testGetTableName")
public List<String> queryTable(@RequestParam String tableName) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("tableName", tableName);
return commonMapper.getSendTableName(map);
}
@GetMapping("/testTableName")
public Boolean testTable(@RequestParam String tableName) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("tableName", tableName);
return sendMsgService.testTableExist(map);
}
@PostMapping("/testSendSLJson")
public Object testReceiveJson(@RequestBody String message) {
return JSON.parse(message);
}
@GetMapping("/testUpdate")
public Object testUpdate() {
Map params = new HashMap();
params.put("tableName","test");//参数
Map cloumnAndValue = new HashMap();
params.put("cloumnAndValue",cloumnAndValue);
cloumnAndValue.put("name","给名");
cloumnAndValue.put("age",32);
Map condition = new HashMap();//查询条件
params.put("condition",condition);
//condition.put("id",3);
condition.put("sex","女");
//condition.put("age",23);
int resultCount = commonMapper.updateAnyTableByName(params);
return resultCount;
}
________________________________________________________完善
<?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.app.application.mapper.generate.CommonMapper"> <select id="getDataByTableNameAndIds" parameterType="map" resultType="java.util.TreeMap"> select * from ${tableName} where id in (<foreach collection="ids" item="id" index="key" separator=","> #{id} </foreach>) </select> <select id="getDataItemsByTableNameAndParentIds" parameterType="map" resultType="java.util.TreeMap"> select * from ${tableName} where parent_id in (<foreach collection="parentIds" item="parentId" index="key" separator=","> #{parentId} </foreach>) </select> <select id="selectMetaDataByTableName" parameterType="map" resultType="java.util.TreeMap"> select column_name ,column_camel as Name ,column_comment as Caption,type_symbol as DataType,table_name,interface_name from 3pl_table_meta where table_name = #{tableName} order by column_camel </select> <select id="selectMetaCloumnByTableName" parameterType="map" resultType="java.util.TreeMap"> select column_camel as Name ,column_comment as Caption,type_symbol as DataType from 3pl_table_meta where table_name = #{tableName} </select> <select id="selectAllSendTableNames" resultType="java.lang.String"> select distinct table_name from 3pl_table_meta </select> <select id="selectSendTasks" parameterType="map" resultType="java.util.TreeMap"> select * from t_send limit 20 </select> <select id="getSendTableName" parameterType="map" resultType="java.lang.String"> SELECT DISTINCT table_name FROM 3pl_table_meta <if test="tableName != null"> WHERE table_name = #{tableName} </if> </select> <insert id="insert" parameterType="map"> insert into ${tableName} ( <foreach collection="columnMap" item="value" index="key" separator=","> ${key} </foreach> ) values ( <foreach collection="columnMap" item="value" index="key" separator=","> #{value} </foreach> ) </insert> <update id="updateAnyTableByParams" parameterType="map"> update ${tableName} set <foreach collection="cloumnAndValue" item="cloumnValue" index="columnkey" separator=","> ${columnkey} = #{cloumnValue} </foreach> where <foreach collection="condition" item="conditionValue" index="conditinColumn" separator=" and "> ${conditinColumn} = #{conditionValue} </foreach> </update> <delete id="deleteAnyTableByParams" parameterType="map"> delete from ${tableName} where <foreach collection="condition" item="conditionValue" index="conditinColumn" separator=" and "> ${conditinColumn} = #{conditionValue} </foreach> </delete> <select id="selectCountAnyTableByParams" parameterType="map" resultType="java.lang.Integer"> select count(*) from ${tableName} <if test="condition!=null and condition.size() != 0"> where <foreach collection="condition" item="conditionValue" index="conditinColumn" separator=" and "> ${conditinColumn} = #{conditionValue} </foreach> </if> </select> <select id="selectDataAnyTableByParams" parameterType="map" resultType="map"> select <if test="columnNames == null or columnNames.size() == 0"> * </if> <if test="columnNames != null and columnNames.size() != 0"> <foreach collection="columnNames" item="item" separator=","> ${item} </foreach> </if> from ${tableName} <if test="condition!=null and condition.size() != 0"> where <foreach collection="condition" item="conditionValue" index="conditinColumn" separator=" and "> ${conditinColumn} = #{conditionValue} </foreach> </if> </select> </mapper>
package com.app.application.mapper.generate; import java.util.List; import java.util.Map; public interface CommonMapper { List<Map<String, Object>> getDataByTableNameAndIds(Map params); List<Map<String, Object>> getDataItemsByTableNameAndParentIds(Map params); List<Map<String, Object>> selectMetaDataByTableName(Map params); List<Map<String, Object>> selectMetaCloumnByTableName(Map params); List selectAllSendTableNames(); List<String> getSendTableName(Map tableName); int updateAnyTableByParams(Map params); int deleteAnyTableByParams(Map params); int selectCountAnyTableByParams(Map params); List<Map<String, Object>> selectDataAnyTableByParams(Map params); }
@GetMapping("/testUpdate") public Object testUpdate() { Map params = new HashMap(); params.put("tableName","test");//参数 Map cloumnAndValue = new HashMap(); params.put("cloumnAndValue",cloumnAndValue); cloumnAndValue.put("name","给名"); cloumnAndValue.put("age",32); Map condition = new HashMap();//查询条件 params.put("condition",condition); //condition.put("id",3); condition.put("sex","女"); //condition.put("age",23); int resultCount = commonMapper.updateAnyTableByParams(params); return resultCount; } @GetMapping("/testSelect") public Object testSelect() { Map params = new HashMap(); params.put("tableName","test");//参数 Map condition = new HashMap();//查询条件 params.put("condition",condition); //condition.put("id",3); condition.put("sex","女"); List<String> cloumnNames = new ArrayList<String>();//列名 params.put("columnNames",cloumnNames); cloumnNames.add("age"); //condition.put("age",23); int resultCount = commonMapper.selectCountAnyTableByParams(params); List<Map<String,Object>> result = commonMapper.selectDataAnyTableByParams(params); return resultCount; }