Skip to content

Commit b3cea2c

Browse files
committed
Java:APIJSONDemo-BigData 简化对 Presto, Trino 的使用
1 parent e35c40c commit b3cea2c

File tree

2 files changed

+19
-29
lines changed

2 files changed

+19
-29
lines changed

APIJSON-Java-Server/APIJSONDemo-BigData/src/main/java/apijson/demo/DemoSQLConfig.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
public class DemoSQLConfig extends APIJSONSQLConfig {
2929

3030
static {
31-
DEFAULT_DATABASE = DATABASE_POSTGRESQL; // TODO 默认数据库类型,改成你自己的
31+
DEFAULT_DATABASE = DATABASE_MYSQL; // TODO 默认数据库类型,改成你自己的
3232
DEFAULT_SCHEMA = "sys"; // TODO 默认数据库名/模式,改成你自己的,默认情况是 MySQL: sys, PostgreSQL: public, SQL Server: dbo, Oracle:
3333

3434
// 表名和数据库不一致的,需要配置映射关系。只使用 APIJSONORM 时才需要;
@@ -50,8 +50,17 @@ public String getDBVersion() {
5050
@JSONField(serialize = false) // 不在日志打印 账号/密码 等敏感信息
5151
@Override
5252
public String getDBUri() {
53-
// Presto 配置文档 https://prestodb.io/docs/current/installation/jdbc.html
54-
return "jdbc:presto://localhost:3306/mysql"; // TODO 改成你自己的,TiDB 可以当成 MySQL 使用,默认端口为 4000
53+
if (isElasticsearch()) {
54+
return "jdbc:es://http://localhost:9200/?timezone=UTC&page.size=250";
55+
}
56+
if (isPresto()) { // Presto 配置文档 https://prestodb.io/docs/current/installation/jdbc.html
57+
return "jdbc:presto://localhost:8099/mysql?SSL=false";
58+
}
59+
if (isTrino()) {
60+
return "jdbc:trino://localhost:8099/mysql?SSL=false";
61+
}
62+
63+
return "jdbc:mysql://localhost:3306"; // TODO 改成你自己的,TiDB 可以当成 MySQL 使用,默认端口为 4000
5564
}
5665

5766
@JSONField(serialize = false) // 不在日志打印 账号/密码 等敏感信息
@@ -66,13 +75,4 @@ public String getDBPassword() {
6675
return "apijson"; // TODO 改成你自己的,TiDB 可以当成 MySQL 使用, 默认密码为空字符串 ""
6776
}
6877

69-
@Override
70-
public boolean isMySQL() {
71-
return false;
72-
}
73-
74-
@Override
75-
public boolean isPostgreSQL() {
76-
return true;
77-
}
7878
}

APIJSON-Java-Server/APIJSONDemo-BigData/src/main/java/apijson/demo/DemoSQLExecutor.java

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,24 +37,14 @@ public class DemoSQLExecutor extends APIJSONSQLExecutor {
3737
public static final String TAG = "DemoSQLExecutor";
3838

3939
// 适配 PrestoDB 的 JDBC
40-
@Override
41-
public ResultSet executeQuery(@NotNull SQLConfig config, String sql) throws Exception {
42-
//if (config.isMySQL() || config.isPostgreSQL() || config.isOracle() || config.isSQLServer()
43-
// || config.isDb2() || config.isDameng() || config.isHive() || config.isClickHouse()) {
44-
// return super.executeQuery(config, sql);
45-
//}
46-
47-
Connection conn = getConnection(config);
48-
Statement stt = config.isTDengine() ? conn.createStatement()
49-
// fix: ResultSet: Exception: set type is TYPE_FORWARD_ONLY, Result set concurrency must be CONCUR_READ_ONLY
50-
: conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
51-
52-
return this.executeQuery(stt, StringUtil.isEmpty(sql) ? config.getSQL(false) : sql);
53-
}
54-
5540
@Override
5641
public Connection getConnection(SQLConfig config) throws Exception {
57-
//return DriverManager.getConnection("jdbc:trino://localhost:3306?user=root&password=apijson&SSL=true");
58-
return DriverManager.getConnection("jdbc:presto://localhost:8099/mysql?user=root&SSL=false");
42+
if (config.isPresto()) {
43+
return DriverManager.getConnection("jdbc:presto://localhost:8099/mysql?user=root&SSL=false");
44+
}
45+
if (config.isTrino()) {
46+
return DriverManager.getConnection("jdbc:trino://localhost:8098/postgres?user=root&SSL=false");
47+
}
48+
return super.getConnection(config);
5949
}
6050
}

0 commit comments

Comments
 (0)