1717import static zuo .biao .apijson .JSONObject .KEY_COLUMN ;
1818import static zuo .biao .apijson .JSONObject .KEY_COMBINE ;
1919import static zuo .biao .apijson .JSONObject .KEY_DATABASE ;
20+ import static zuo .biao .apijson .JSONObject .KEY_EXPLAIN ;
21+ import static zuo .biao .apijson .JSONObject .KEY_CACHE ;
2022import static zuo .biao .apijson .JSONObject .KEY_FROM ;
2123import static zuo .biao .apijson .JSONObject .KEY_GROUP ;
2224import static zuo .biao .apijson .JSONObject .KEY_HAVING ;
@@ -881,6 +883,37 @@ public AbstractSQLConfig setCache(int cache) {
881883 this .cache = cache ;
882884 return this ;
883885 }
886+
887+ public AbstractSQLConfig setCache (String cache ) {
888+ int cache2 ;
889+ if (cache == null ) {
890+ cache2 = JSONRequest .CACHE_ALL ;
891+ }
892+ else {
893+ // if (isSubquery) {
894+ // throw new IllegalArgumentException("子查询内不支持传 " + JSONRequest.KEY_CACHE + "!");
895+ // }
896+
897+ switch (cache ) {
898+ case "0" :
899+ case JSONRequest .CACHE_ALL_STRING :
900+ cache2 = JSONRequest .CACHE_ALL ;
901+ break ;
902+ case "1" :
903+ case JSONRequest .CACHE_ROM_STRING :
904+ cache2 = JSONRequest .CACHE_ROM ;
905+ break ;
906+ case "2" :
907+ case JSONRequest .CACHE_RAM_STRING :
908+ cache2 = JSONRequest .CACHE_RAM ;
909+ break ;
910+ default :
911+ throw new IllegalArgumentException (getTable () + "/" + JSONRequest .KEY_CACHE + ":value 中 value 的值不合法!必须在 [0,1,2] 或 [ALL, ROM, RAM] 内 !" );
912+ }
913+ }
914+ setCache (cache2 );
915+ return this ;
916+ }
884917
885918 @ Override
886919 public boolean isExplain () {
@@ -2082,6 +2115,9 @@ public String getJoinString() throws Exception {
20822115 /**新建SQL配置
20832116 * @param table
20842117 * @param request
2118+ * @param joinList
2119+ * @param isProcedure
2120+ * @param callback
20852121 * @return
20862122 * @throws Exception
20872123 */
@@ -2163,6 +2199,8 @@ else if (id instanceof Subquery) {}
21632199
21642200
21652201 String role = request .getString (KEY_ROLE );
2202+ boolean explain = request .getBooleanValue (KEY_EXPLAIN );
2203+ String cache = request .getString (KEY_CACHE );
21662204 String combine = request .getString (KEY_COMBINE );
21672205 Subquery from = (Subquery ) request .get (KEY_FROM );
21682206 String column = request .getString (KEY_COLUMN );
@@ -2175,6 +2213,8 @@ else if (id instanceof Subquery) {}
21752213 request .remove (idInKey );
21762214 //关键词
21772215 request .remove (KEY_ROLE );
2216+ request .remove (KEY_EXPLAIN );
2217+ request .remove (KEY_CACHE );
21782218 request .remove (KEY_DATABASE );
21792219 request .remove (KEY_SCHEMA );
21802220 request .remove (KEY_COMBINE );
@@ -2355,6 +2395,8 @@ else if (whereList != null && whereList.contains(key)) {
23552395 }
23562396 }
23572397
2398+ config .setExplain (explain );
2399+ config .setCache (cache );
23582400 config .setFrom (from );
23592401 config .setColumn (column == null ? null : cs ); //解决总是 config.column != null,总是不能得到 *
23602402 config .setWhere (tableWhere );
@@ -2374,8 +2416,10 @@ else if (whereList != null && whereList.contains(key)) {
23742416 request .put (idKey , id );
23752417 request .put (idInKey , idIn );
23762418 //关键词
2377- request .put (KEY_ROLE , role );
23782419 request .put (KEY_DATABASE , database );
2420+ request .put (KEY_ROLE , role );
2421+ request .put (KEY_EXPLAIN , explain );
2422+ request .put (KEY_CACHE , cache );
23792423 request .put (KEY_SCHEMA , schema );
23802424 request .put (KEY_COMBINE , combine );
23812425 request .put (KEY_FROM , from );
@@ -2387,7 +2431,8 @@ else if (whereList != null && whereList.contains(key)) {
23872431 return config ;
23882432 }
23892433
2390-
2434+
2435+
23912436 /**
23922437 * @param method
23932438 * @param config
0 commit comments