Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit00d1452

Browse files
committed
解决耗时判断错误;优化对 executeQuery 还是 executeUpdate 的判断,兼容 nGQL, openCypher 等图数据库语言
1 parent505f1c7 commit00d1452

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

‎APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,31 +1364,38 @@ public String execute(@RequestBody String request, HttpSession session) {
13641364
config.setPrepared(true);
13651365
config.setPreparedValueList(valueList);
13661366

1367+
StringsqlPrefix =EXECUTE_STRICTLY ?sql.substring(0,7).toUpperCase() :"";
1368+
booleanisWrite =sqlPrefix.startsWith("INSERT ") ||sqlPrefix.startsWith("UPDATE ") ||sqlPrefix.startsWith("DELETE ");
1369+
1370+
longexecuteStartTime =System.currentTimeMillis();
1371+
13671372
Statementstatement =executor.getStatement(config,sql);
13681373
if (statementinstanceofPreparedStatement) {
13691374
if (EXECUTE_STRICTLY) {
1370-
if (sql.startsWith("SELECT ")) {
1371-
((PreparedStatement)statement).executeQuery();
1372-
}else {
1375+
if (isWrite) {
13731376
((PreparedStatement)statement).executeUpdate();
1377+
}else {
1378+
((PreparedStatement)statement).executeQuery();
13741379
}
13751380
}
13761381
else {
13771382
((PreparedStatement)statement).execute();
13781383
}
13791384
}else {
13801385
if (EXECUTE_STRICTLY) {
1381-
if (sql.startsWith("SELECT ")) {
1382-
statement.executeQuery(sql);
1383-
}else {
1386+
if (isWrite) {
13841387
statement.executeUpdate(sql);
1388+
}else {
1389+
statement.executeQuery(sql);
13851390
}
13861391
}
13871392
else {
13881393
statement.execute(sql);
13891394
}
13901395
}
13911396

1397+
longexecuteDuration =System.currentTimeMillis() -executeStartTime;
1398+
13921399
ResultSetrs =statement.getResultSet();
13931400
ResultSetMetaDatarsmd =rs.getMetaData();
13941401
intlength =rsmd.getColumnCount();
@@ -1424,14 +1431,17 @@ public String execute(@RequestBody String request, HttpSession session) {
14241431
longendTime =System.currentTimeMillis();
14251432
longduration =endTime -startTime;
14261433

1427-
longsqlDuration =cursorDuration +rsDuration;
1434+
longsqlDuration =executeDuration +cursorDuration +rsDuration;
14281435
longparseDuration =duration -sqlDuration;
14291436

14301437
result.put("time:start|duration|end|parse|sql",startTime +"|" +duration +"|" +endTime +"|" +parseDuration +"|" +sqlDuration);
14311438

14321439
returnresult.toJSONString();
14331440
}catch (Exceptione) {
1434-
returnDemoParser.newErrorResult(e).toJSONString();
1441+
JSONObjectresult =DemoParser.newErrorResult(e);
1442+
result.put("throw",e.getClass().getName());
1443+
result.put("trace:stack",e.getStackTrace());
1444+
returnresult.toJSONString();
14351445
}
14361446

14371447
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp