spring boot框架動態調用處理sql
在開發過程中很多時候,新增、修改的時候,如碰到表字段過多,編寫sql語句很麻煩,又擔心語句有問題,可以試試Mybaits的動態SQL註解來解決這個問題,如:@UpdateProvider、@InsertProvider、@SelectProvider
下面看一段示例:
public String addJxkhMain(List<UploadColumnInfo> list, Map<String, Object> params) {
return new SQL() {
{
INSERT_INTO("t_jxkh_main");
for (UploadColumnInfo info : list) {
Boolean bool = params.containsKey(info.getColname());
if (bool) {
switch (info.getColtype()) {
case "C":
VALUES(info.getColname(), "'" + params.get(info.getColname()).toString() + "'");
break;
case "D":
VALUES(info.getColname(), "'" + params.get(info.getColname()).toString() + "'");
break;
case "N":
if (!StringUtils.isEmpty(params.get(info.getColname()).toString())) {
VALUES(info.getColname(), ValidUtil.isNumeric1(params.get(info.getColname()).toString()));
} else {
VALUES(info.getColname(), "''");
}
break;
}
}
}
}
}.toString();
}
上面是一個新增的動態sql處理語句,在開發過程中可以解決很多麻煩。個人覺得挺好用的,給大家分享下
Mapper中通過下面方式定義:
@InsertProvider(type = HospSqlMapper.class, method = "addOutpatientCardInfo")
跟再xml編寫sql語句其實是一樣的。
但是利用這種方式,需要請求接口時,所傳參數必須跟數據庫匹配,避免兩個端都驗證參數是否準確。
如果對你有用,記得點個關注,謝謝~~~~