| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 94b15eb commit 44a2b6e
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -40,9 +40,11 @@ public class DemoSQLConfig extends AbstractSQLConfig { | |||
| 40 | 40 | TABLE_KEY_MAP.put(Privacy.class.getSimpleName(), "apijson_privacy"); | |
| 41 | 41 | } | |
| 42 | 42 | ||
| 43 | + //取消注释后,默认的数据库类型会由 MySQL 改为 PostgreSQL | ||
| 43 | 44 | // @Override | |
| 44 | 45 | // public String getDatabase() { | |
| 45 | - // return DATABASE_POSTGRESQL; | ||
| 46 | + // String db = super.getDatabase(); | ||
| 47 | + // return db == null ? DATABASE_POSTGRESQL : db; | ||
| 46 | 48 | // } | |
| 47 | 49 | ||
| 48 | 50 | @Override | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -116,12 +116,12 @@ private PreparedStatement getStatement(@NotNull SQLConfig config) throws Excepti | |||
| 116 | 116 | else { | |
| 117 | 117 | PGobject o = new PGobject(); | |
| 118 | 118 | o.setType("jsonb"); | |
| 119 | - o.setValue(v.toString()); | ||
| 120 | - statement.setObject(i + 1, o); //PostgreSQL JDBC 不支持隐式类型转换 tinyint = varchar 报错 | ||
| 119 | + o.setValue(v == null ? null : v.toString()); | ||
| 120 | + statement.setObject(i + 1, o); //PostgreSQL 除了基本类型,其它的必须通过 PGobject 设置进去,否则 jsonb = varchar 等报错 | ||
| 121 | 121 | } | |
| 122 | 122 | } | |
| 123 | 123 | else { | |
| 124 | - statement.setString(i + 1, v.toString()); //MySQL setObject 不支持 JSON 类型 | ||
| 124 | + statement.setString(i + 1, v == null ? null : v.toString()); //MySQL setObject 不支持 JSON 类型 | ||
| 125 | 125 | } | |
| 126 | 126 | } | |
| 127 | 127 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1227,7 +1227,7 @@ private Object getValue(@NotNull Object value) { | |||
| 1227 | 1227 | preparedValueList.add(value); | |
| 1228 | 1228 | return "?"; | |
| 1229 | 1229 | } | |
| 1230 | - return "'" + value + "'"; | ||
| 1230 | + return value instanceof Number || value instanceof Boolean ? value : "'" + value + "'"; | ||
| 1231 | 1231 | } | |
| 1232 | 1232 | @Override | |
| 1233 | 1233 | public List<Object> getPreparedValueList() { | |
@@ -1588,13 +1588,10 @@ public String getContainString(String key, Object[] childs, int type) throws Ill | |||
| 1588 | 1588 | if (childs[i] instanceof JSON) { | |
| 1589 | 1589 | throw new IllegalArgumentException(key + "<>:value 中value类型不能为JSON!"); | |
| 1590 | 1590 | } | |
| 1591 | - if (childs[i] instanceof String) { | ||
| 1592 | - childs[i] = "\"" + childs[i] + "\""; | ||
| 1593 | - } | ||
| 1594 | 1591 | ||
| 1595 | 1592 | if (DATABASE_POSTGRESQL.equalsIgnoreCase(getDatabase())) { | |
| 1596 | 1593 | condition += (i <= 0 ? "" : (Logic.isAnd(type) ? AND : OR)) | |
| 1597 | - + getKey(key) + " @> " + getValue(childs[i]); | ||
| 1594 | + + getKey(key) + " @> " + getValue(newJSONArray(childs[i])); //operator does not exist: jsonb @> character varying "[" + childs[i] + "]"); | ||
| 1598 | 1595 | } else { | |
| 1599 | 1596 | condition += (i <= 0 ? "" : (Logic.isAnd(type) ? AND : OR)) | |
| 1600 | 1597 | + "json_contains(" + getKey(key) + ", " + getValue(childs[i]) + ")"; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments