2121
2222import com .alibaba .fastjson .JSONObject ;
2323
24- import apijson .demo .server .model .Privacy ;
25- import apijson .demo .server .model .User ;
2624import zuo .biao .apijson .RequestMethod ;
2725import zuo .biao .apijson .server .AbstractSQLConfig ;
2826import zuo .biao .apijson .server .Join ;
@@ -38,14 +36,15 @@ public class DemoSQLConfig extends AbstractSQLConfig {
3836
3937public static final Callback SIMPLE_CALLBACK ;
4038
41-
39+
4240static {
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");
4948
5049//主键名映射
5150SIMPLE_CALLBACK = new SimpleCallback () {
@@ -71,32 +70,97 @@ public String getUserIdKey(String database, String schema, String table) {
7170};
7271}
7372
74- //取消注释后,默认的数据库类型会由 MySQL 改为 PostgreSQL
75- // @Override
76- // public String getDatabase() {
77- // String db = super.getDatabase();
78- // return db == null ? DATABASE_POSTGRESQL : db;
79- // }
80-
8173@ Override
8274public 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 ;
8488}
85-
8689@ Override
8790public 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 ;
90104}
91105@ Override
92106public 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 ;
94120}
95121@ Override
96122public 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 ;
98136}
99137
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+
100164
101165@ Override
102166public String getIdKey () {
0 commit comments