代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
/** * @param ve 接收到的消息的CHGLIST * @param paramList MQ消息中的SQL參數 * @param t 泛型對象 * @param table 數據表 * @param list 可執行SQL語句集合 * @return */ public <T> String updateSqlAndParamList(Vector<String> ve,List<String> paramList,T t,String table,List<String> list){ String strSql= "" ; //MQ消息SQl String upSql= "" ; //可執行SQL try { //組裝SQL語句 strSql = "update " +table+ " set " ; upSql= "update " +table+ " set " ; for ( int i = 0 ; i < ve.size(); i++){ String str = "" ; String upStr= "" ; String key = ve.get(i); String fileName= "get" +key.toUpperCase(); String value=(String)t.getClass().getMethod(fileName).invoke(t); paramList.add(i,value); if (i == ve.size()- 1 ){ str = key+ " = ?" ; upStr=key+ "='" +value+ "'" ; } else { str = key+ " = ? ," ; upStr=key+ "='" +value+ "'," ; } strSql+=str; upSql += upStr; } strSql += " where Id = ? " ; upSql+= " where id='" +(String) t.getClass().getMethod( "getID" ).invoke(t)+ "'" ; list.add(upSql); paramList.add(ve.size(),(String) t.getClass().getMethod( "getID" ).invoke(t)); } catch (Exception e) { logger.info( "組裝UPDATE SQL失敗!失敗詳情---" +e); } return strSql; } |
以上這篇java 動態生成SQL的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。