From 00d14529da6574ad325bcbf3d60af2e1e4bb1818 Mon Sep 17 00:00:00 2001 From: TommyLemon <1184482681@qq.com> Date: Thu, 8 Sep 2022 00:05:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=80=97=E6=97=B6=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E9=94=99=E8=AF=AF=EF=BC=9B=E4=BC=98=E5=8C=96=E5=AF=B9?= =?UTF-8?q?=20executeQuery=20=E8=BF=98=E6=98=AF=20executeUpdate=20?= =?UTF-8?q?=E7=9A=84=E5=88=A4=E6=96=AD=EF=BC=8C=E5=85=BC=E5=AE=B9=20nGQL,?= =?UTF-8?q?=20openCypher=20=E7=AD=89=E5=9B=BE=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E8=AF=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/apijson/boot/DemoController.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java index 36f15dd6..2e55dca8 100644 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java @@ -1364,13 +1364,18 @@ public String execute(@RequestBody String request, HttpSession session) { config.setPrepared(true); config.setPreparedValueList(valueList); + String sqlPrefix = EXECUTE_STRICTLY ? sql.substring(0, 7).toUpperCase() : ""; + boolean isWrite = sqlPrefix.startsWith("INSERT ") || sqlPrefix.startsWith("UPDATE ") || sqlPrefix.startsWith("DELETE "); + + long executeStartTime = System.currentTimeMillis(); + Statement statement = executor.getStatement(config, sql); if (statement instanceof PreparedStatement) { if (EXECUTE_STRICTLY) { - if (sql.startsWith("SELECT ")) { - ((PreparedStatement) statement).executeQuery(); - } else { + if (isWrite) { ((PreparedStatement) statement).executeUpdate(); + } else { + ((PreparedStatement) statement).executeQuery(); } } else { @@ -1378,10 +1383,10 @@ public String execute(@RequestBody String request, HttpSession session) { } } else { if (EXECUTE_STRICTLY) { - if (sql.startsWith("SELECT ")) { - statement.executeQuery(sql); - } else { + if (isWrite) { statement.executeUpdate(sql); + } else { + statement.executeQuery(sql); } } else { @@ -1389,6 +1394,8 @@ public String execute(@RequestBody String request, HttpSession session) { } } + long executeDuration = System.currentTimeMillis() - executeStartTime; + ResultSet rs = statement.getResultSet(); ResultSetMetaData rsmd = rs.getMetaData(); int length = rsmd.getColumnCount(); @@ -1424,14 +1431,17 @@ public String execute(@RequestBody String request, HttpSession session) { long endTime = System.currentTimeMillis(); long duration = endTime - startTime; - long sqlDuration = cursorDuration + rsDuration; + long sqlDuration = executeDuration + cursorDuration + rsDuration; long parseDuration = duration - sqlDuration; result.put("time:start|duration|end|parse|sql", startTime + "|" + duration + "|" + endTime + "|" + parseDuration + "|" + sqlDuration); return result.toJSONString(); } catch (Exception e) { - return DemoParser.newErrorResult(e).toJSONString(); + JSONObject result = DemoParser.newErrorResult(e); + result.put("throw", e.getClass().getName()); + result.put("trace:stack", e.getStackTrace()); + return result.toJSONString(); } }