21
21
22
22
import com .alibaba .fastjson .JSONObject ;
23
23
24
- import apijson .demo .server .model .Privacy ;
25
- import apijson .demo .server .model .User ;
26
24
import zuo .biao .apijson .RequestMethod ;
27
25
import zuo .biao .apijson .server .AbstractSQLConfig ;
28
26
import zuo .biao .apijson .server .Join ;
@@ -38,14 +36,15 @@ public class DemoSQLConfig extends AbstractSQLConfig {
38
36
39
37
public static final Callback SIMPLE_CALLBACK ;
40
38
41
-
39
+
42
40
static {
43
- //TODO 默认模式名,改成你自己的
44
- DEFAULT_SCHEMA = "sys" ;
45
-
46
- //表名映射,隐藏真实表名,对安全要求很高的表可以这么做
47
- TABLE_KEY_MAP .put (User .class .getSimpleName (), "apijson_user" );
48
- TABLE_KEY_MAP .put (Privacy .class .getSimpleName (), "apijson_privacy" );
41
+ DEFAULT_DATABASE = DATABASE_MYSQL ; //TODO 默认数据库类型,改成你自己的
42
+ DEFAULT_SCHEMA = "sys" ; //TODO 默认模式名,改成你自己的,默认情况是 MySQL: sys, PostgreSQL: public, SQL Server: dbo, Oracle:
43
+
44
+ // 由 DemoVerifier.init 方法读取数据库 Access 表来替代手动输入配置
45
+ // //表名映射,隐藏真实表名,对安全要求很高的表可以这么做
46
+ // TABLE_KEY_MAP.put(User.class.getSimpleName(), "apijson_user");
47
+ // TABLE_KEY_MAP.put(Privacy.class.getSimpleName(), "apijson_privacy");
49
48
50
49
//主键名映射
51
50
SIMPLE_CALLBACK = new SimpleCallback () {
@@ -71,32 +70,97 @@ public String getUserIdKey(String database, String schema, String table) {
71
70
};
72
71
}
73
72
74
- //取消注释后,默认的数据库类型会由 MySQL 改为 PostgreSQL
75
- // @Override
76
- // public String getDatabase() {
77
- // String db = super.getDatabase();
78
- // return db == null ? DATABASE_POSTGRESQL : db;
79
- // }
80
-
81
73
@ Override
82
74
public String getDBVersion () {
83
- return "5.7.22" ; //"8.0.11"; //TODO 改成你自己的 MySQL 或 PostgreSQL 数据库版本号 //MYSQL 8 和 7 使用的 JDBC 配置不一样
75
+ if (isMySQL ()) {
76
+ return "5.7.22" ; //"8.0.11"; //TODO 改成你自己的 MySQL 或 PostgreSQL 数据库版本号 //MYSQL 8 和 7 使用的 JDBC 配置不一样
77
+ }
78
+ if (isPostgreSQL ()) {
79
+ return "9.6.15" ; //TODO 改成你自己的
80
+ }
81
+ if (isSQLServer ()) {
82
+ return "2016" ; //TODO 改成你自己的
83
+ }
84
+ if (isOracle ()) {
85
+ return "18c" ; //TODO 改成你自己的
86
+ }
87
+ return null ;
84
88
}
85
-
86
89
@ Override
87
90
public String getDBUri () {
88
- //TODO 改成你自己的,TiDB 默认端口为 4000
89
- return DATABASE_POSTGRESQL .equalsIgnoreCase (getDatabase ()) ? "jdbc:postgresql://localhost:5432/postgres" : "jdbc:mysql://localhost:3306" ;
91
+ if (isMySQL ()) {
92
+ return "jdbc:mysql://localhost:3306" ; //TODO 改成你自己的,TiDB 可以当成 MySQL 使用,默认端口为 4000
93
+ }
94
+ if (isPostgreSQL ()) {
95
+ return "jdbc:postgresql://localhost:5432/postgres" ; //TODO 改成你自己的
96
+ }
97
+ if (isSQLServer ()) {
98
+ return "jdbc:jtds:sqlserver://localhost:1433/pubs;instance=SQLEXPRESS" ; //TODO 改成你自己的
99
+ }
100
+ if (isOracle ()) {
101
+ return "jdbc:oracle:thin:@localhost:1521:orcl" ; //TODO 改成你自己的
102
+ }
103
+ return null ;
90
104
}
91
105
@ Override
92
106
public String getDBAccount () {
93
- return DATABASE_POSTGRESQL .equalsIgnoreCase (getDatabase ()) ? "postgres" : "root" ; //TODO 改成你自己的
107
+ if (isMySQL ()) {
108
+ return "root" ; //TODO 改成你自己的
109
+ }
110
+ if (isPostgreSQL ()) {
111
+ return "postgres" ; //TODO 改成你自己的
112
+ }
113
+ if (isSQLServer ()) {
114
+ return "sa" ; //TODO 改成你自己的
115
+ }
116
+ if (isOracle ()) {
117
+ return "scott" ; //TODO 改成你自己的
118
+ }
119
+ return null ;
94
120
}
95
121
@ Override
96
122
public String getDBPassword () {
97
- return DATABASE_POSTGRESQL .equalsIgnoreCase (getDatabase ()) ? null : "apijson" ; //TODO 改成你自己的,TiDB 默认密码为空字符串 ""
123
+ if (isMySQL ()) {
124
+ return "apijson" ; //TODO 改成你自己的,TiDB 可以当成 MySQL 使用, 默认密码为空字符串 ""
125
+ }
126
+ if (isPostgreSQL ()) {
127
+ return null ; //TODO 改成你自己的
128
+ }
129
+ if (isSQLServer ()) {
130
+ return "apijson@123" ; //TODO 改成你自己的
131
+ }
132
+ if (isOracle ()) {
133
+ return "tiger" ; //TODO 改成你自己的
134
+ }
135
+ return null ;
98
136
}
99
137
138
+ //取消注释后,默认的数据库类型会由 MySQL 改为 PostgreSQL
139
+ // @Override
140
+ // public String getDatabase() {
141
+ // String db = super.getDatabase();
142
+ // return db == null ? DATABASE_POSTGRESQL : db;
143
+ // }
144
+
145
+ //如果确定只用一种数据库,可以重写方法,这种数据库直接 return true,其它数据库直接 return false,来减少判断,提高性能
146
+ // @Override
147
+ // public boolean isMySQL() {
148
+ // return true;
149
+ // }
150
+ // @Override
151
+ // public boolean isPostgreSQL() {
152
+ // return false;
153
+ // }
154
+ // @Override
155
+ // public boolean isSQLServer() {
156
+ // return false;
157
+ // }
158
+ // @Override
159
+ // public boolean isOracle() {
160
+ // return false;
161
+ // }
162
+
163
+
100
164
101
165
@ Override
102
166
public String getIdKey () {
0 commit comments