把方法都写在基类baseMapper里面,大家通用,提高代码的复用性
下面以replace 为例子,
REPLACE是先尝试插入,若主键存在则删除原纪录再插入
replace的作用就是这个。
REPLACE INTO tc_user(id) VALUES(5);
baseMapper。xml
<insert id="replaceEntity" useGeneratedKeys="true" keyProperty="id">
replace into table set ({fleids}) where id = ((id))
</insert>
没用,我们的框架的基类是通过pluginPage来拦截,自动书写sql语句的。
else if ("replaceEntity".equals(sqlId)) {
String[] fe = field.split(",");
String fieldString = "";
String fieldValues = "";
for (String string : fe) {
Object v = formMap.get(string);
if (null != v && !isEmpty(v.toString())) {
fieldString += string + ",";
fieldValues += "?,";
Builder mapping = new ParameterMapping.Builder(configuration, string, v.getClass());
ParameterMapping parameter = mapping.build();
bpm.add(parameter);
}
}
sql = "replace into " + table.toString() + " (" + Common.trimComma(fieldString) + ") values ("
+ Common.trimComma(fieldValues) + ")";
}
简单修改,即可。