Open fineday009 opened 4 years ago
以上方法可行。
也可以自定义 DemoSQLConfig.java.getDBUri 目前 Demo 里是根据 getDatabase 返回的 数据库类型来区分的, 你可以根据表名或者其它方式来区分,给 getDBUri 返回不同的 uri。 https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java
如果需要前端自定义,可以加一个字段用来区分,例如 "@uri": "jdbc:mysql://localhost:3306" 目前需要自己实现,参考 @database, @schema https://github.com/APIJSON/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/JSONObject.java
以上方法可行。
也可以自定义 DemoSQLConfig.java.getDBUri 目前 Demo 里是根据 getDatabase 返回的 数据库类型来区分的, 你可以根据表名或者其它方式来区分,给 getDBUri 返回不同的 uri。 https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java
如果需要前端自定义,可以加一个字段用来区分,例如 "@uri": "jdbc:mysql://localhost:3306" 目前需要自己实现,参考 @database, @Schema https://github.com/APIJSON/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/JSONObject.java
了解了,谢谢tommy
以上方法可行。
也可以自定义 DemoSQLConfig.java.getDBUri 目前 Demo 里是根据 getDatabase 返回的 数据库类型来区分的, 你可以根据表名或者其它方式来区分,给 getDBUri 返回不同的 uri。 https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java
如果需要前端自定义,可以加一个字段用来区分,例如 "@uri": "jdbc:mysql://localhost:3306" 目前需要自己实现,参考 @database, @Schema https://github.com/APIJSON/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/JSONObject.java
您好,我这边想用前端传入一个 datasourceid,然后后台根据这个参数动态的去 redis(获取其他第三方) 获取数据源的信息(账号,密码,DBuri),再跟 DB 进行连接返回。实际上就是可能有多个DB实例,想让前端根据参数来实现跟哪个DB进行交互,请问这个该怎么实现?
前端参数可能如下:
{ "[]": { "User": { "sex": 1 } }, "datasourceid": 1 // 数据源ID,后台可以根据数据源ID动态的获取数据源的账号,密码,url }
以上方法可行。 也可以自定义 DemoSQLConfig.java.getDBUri 目前 Demo 里是根据 getDatabase 返回的 数据库类型来区分的, 你可以根据表名或者其它方式来区分,给 getDBUri 返回不同的 uri。 https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java 如果需要前端自定义,可以加一个字段用来区分,例如 "@uri": "jdbc:mysql://localhost:3306" 目前需要自己实现,参考 @database, @Schema https://github.com/APIJSON/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/JSONObject.java
您好,我这边想用前端传入一个 datasourceid,然后后台根据这个参数动态的去 redis(获取其他第三方) 获取数据源的信息(账号,密码,DBuri),再跟 DB 进行连接返回。实际上就是可能有多个DB实例,想让前端根据参数来实现跟哪个DB进行交互,请问这个该怎么实现? 前端参数可能如下:
{ "[]": { "User": { "sex": 1 } }, "datasourceid": 1 // 数据源ID,后台可以根据数据源ID动态的获取数据源的账号,密码,url }
可以在 DemoObjectParser 重写 newSQLConfig ,取出 datasourceid(建议改用 @datasourceId 这样的关键词)并赋值给 SQLConfig
@Override
public SQLConfig newSQLConfig(RequestMethod method, String table, String alias, JSONObject request, List<Join> joinList, boolean isProcedure) throws Exception {
DemoSQLConfig config = super.newSQLConfig(method, table, alias, request, joinList, isProcedure);
Map<String, Object> map = getCustomMap();
Integer datasourceId = map == null ? null : map.get("@datasourceId");
config.setDatasourceId(datasourceId == null ? 0 : datasourceId);
return config;
}
然后在 DemoSQLConfig 新增一个成员变量 datasourceId,通过它来提供 dbUri, dbAccount, dbPassword, database, schema 等属性。 https://github.com/APIJSON/APIJSON-Demo/blob/316b4411eec25a4fd1137fd69fb1de1171e75a57/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
以上方法可行。 也可以自定义 DemoSQLConfig.java.getDBUri 目前 Demo 里是根据 getDatabase 返回的 数据库类型来区分的, 你可以根据表名或者其它方式来区分,给 getDBUri 返回不同的 uri。 https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java 如果需要前端自定义,可以加一个字段用来区分,例如 "@uri": "jdbc:mysql://localhost:3306" 目前需要自己实现,参考 @database, @Schema https://github.com/APIJSON/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/JSONObject.java
您好,我这边想用前端传入一个 datasourceid,然后后台根据这个参数动态的去 redis(获取其他第三方) 获取数据源的信息(账号,密码,DBuri),再跟 DB 进行连接返回。实际上就是可能有多个DB实例,想让前端根据参数来实现跟哪个DB进行交互,请问这个该怎么实现? 前端参数可能如下:
{ "[]": { "User": { "sex": 1 } }, "datasourceid": 1 // 数据源ID,后台可以根据数据源ID动态的获取数据源的账号,密码,url }
可以在 DemoObjectParser 重写 newSQLConfig ,取出 datasourceid(建议改用 @datasourceId 这样的关键词)并赋值给 SQLConfig
@Override public SQLConfig newSQLConfig(RequestMethod method, String table, String alias, JSONObject request, List<Join> joinList, boolean isProcedure) throws Exception { DemoSQLConfig config = super.newSQLConfig(method, table, alias, request, joinList, isProcedure); Map<String, Object> map = getCustomMap(); Integer datasourceId = map == null ? null : map.get("@datasourceId"); config.setDatasourceId(datasourceId == null ? 0 : datasourceId); return config; }
然后在 DemoSQLConfig 新增一个成员变量 datasourceId,通过它来提供 dbUri, dbAccount, dbPassword, database, schema 等属性。 https://github.com/APIJSON/APIJSON-Demo/blob/316b4411eec25a4fd1137fd69fb1de1171e75a57/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
试了下使用 @datasourceId,但是在重写 newSQLConfig 方法里的 JSONObject request 参数没有把 @datasourceId 带过来,request.getIntValue("@datasourceId") 一直都是 0,这里需要把 @datasourceId 怎么处理才能接受到呢?
以上方法可行。 也可以自定义 DemoSQLConfig.java.getDBUri 目前 Demo 里是根据 getDatabase 返回的 数据库类型来区分的, 你可以根据表名或者其它方式来区分,给 getDBUri 返回不同的 uri。 https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java 如果需要前端自定义,可以加一个字段用来区分,例如 "@uri": "jdbc:mysql://localhost:3306" 目前需要自己实现,参考 @database, @Schema https://github.com/APIJSON/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/JSONObject.java
您好,我这边想用前端传入一个 datasourceid,然后后台根据这个参数动态的去 redis(获取其他第三方) 获取数据源的信息(账号,密码,DBuri),再跟 DB 进行连接返回。实际上就是可能有多个DB实例,想让前端根据参数来实现跟哪个DB进行交互,请问这个该怎么实现? 前端参数可能如下:
{ "[]": { "User": { "sex": 1 } }, "datasourceid": 1 // 数据源ID,后台可以根据数据源ID动态的获取数据源的账号,密码,url }
可以在 DemoObjectParser 重写 newSQLConfig ,取出 datasourceid(建议改用 @datasourceId 这样的关键词)并赋值给 SQLConfig https://github.com/APIJSON/APIJSON-Demo/blob/316b4411eec25a4fd1137fd69fb1de1171e75a57/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoObjectParser.java
@Override public SQLConfig newSQLConfig(RequestMethod method, String table, String alias, JSONObject request, List<Join> joinList, boolean isProcedure) throws Exception { DemoSQLConfig config = super.newSQLConfig(method, table, alias, request, joinList, isProcedure); Map<String, Object> map = getCustomMap(); Integer datasourceId = map == null ? null : map.get("@datasourceId"); config.setDatasourceId(datasourceId == null ? 0 : datasourceId); return config; }
然后在 DemoSQLConfig 新增一个成员变量 datasourceId,通过它来提供 dbUri, dbAccount, dbPassword, database, schema 等属性。 https://github.com/APIJSON/APIJSON-Demo/blob/316b4411eec25a4fd1137fd69fb1de1171e75a57/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
试了下使用 @datasourceId,但是在重写 newSQLConfig 方法里的 JSONObject request 参数没有把 @datasourceId 带过来,request.getIntValue("@datasourceId") 一直都是 0,这里需要把 @datasourceId 怎么处理才能接受到呢?
忘说了,这个 request 参数是对应 User 对象的,@datasourceId 应该写在对象里面
{ "[]": { "User": { "sex": 1, "@datasourceId": 1 } }
如果要支持全局默认参数(写在最外层),参考 @database, @schema 在 APIJSONParser 和 APIJSONObjectParser 两个地方的处理
以上方法可行。 也可以自定义 DemoSQLConfig.java.getDBUri 目前 Demo 里是根据 getDatabase 返回的 数据库类型来区分的, 你可以根据表名或者其它方式来区分,给 getDBUri 返回不同的 uri。 https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java 如果需要前端自定义,可以加一个字段用来区分,例如 "@uri": "jdbc:mysql://localhost:3306" 目前需要自己实现,参考 @database, @Schema https://github.com/APIJSON/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/JSONObject.java
您好,我这边想用前端传入一个 datasourceid,然后后台根据这个参数动态的去 redis(获取其他第三方) 获取数据源的信息(账号,密码,DBuri),再跟 DB 进行连接返回。实际上就是可能有多个DB实例,想让前端根据参数来实现跟哪个DB进行交互,请问这个该怎么实现? 前端参数可能如下:
{ "[]": { "User": { "sex": 1 } }, "datasourceid": 1 // 数据源ID,后台可以根据数据源ID动态的获取数据源的账号,密码,url }
可以在 DemoObjectParser 重写 newSQLConfig ,取出 datasourceid(建议改用 @datasourceId 这样的关键词)并赋值给 SQLConfig https://github.com/APIJSON/APIJSON-Demo/blob/316b4411eec25a4fd1137fd69fb1de1171e75a57/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoObjectParser.java
@Override public SQLConfig newSQLConfig(RequestMethod method, String table, String alias, JSONObject request, List<Join> joinList, boolean isProcedure) throws Exception { DemoSQLConfig config = super.newSQLConfig(method, table, alias, request, joinList, isProcedure); Map<String, Object> map = getCustomMap(); Integer datasourceId = map == null ? null : map.get("@datasourceId"); config.setDatasourceId(datasourceId == null ? 0 : datasourceId); return config; }
然后在 DemoSQLConfig 新增一个成员变量 datasourceId,通过它来提供 dbUri, dbAccount, dbPassword, database, schema 等属性。 https://github.com/APIJSON/APIJSON-Demo/blob/316b4411eec25a4fd1137fd69fb1de1171e75a57/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
试了下使用 @datasourceId,但是在重写 newSQLConfig 方法里的 JSONObject request 参数没有把 @datasourceId 带过来,request.getIntValue("@datasourceId") 一直都是 0,这里需要把 @datasourceId 怎么处理才能接受到呢?
新增数据源关键词 @Datasource,可由业务完全自定义 https://github.com/Tencent/APIJSON/releases/tag/4.7.0
新增 连接池及多数据源 Demo(Druid + HikariCP) https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
新增 连接池及多数据源 Demo(Druid + HikariCP) https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
请问 这个多数据源的demo怎么配置使用,有相关文档吗?我下载这个代码尝试配置了几种的可能方式都不对
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
按这个 Demo 来,SpringBoot yaml 配置加 APIJSON AbstractSQLEexcutor 配置 https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
按这个 Demo 来,SpringBoot yaml 配置加 APIJSON AbstractSQLEexcutor 配置 https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource
Demo里边也没有写如何切换数据源呀,这个是需要前端请求的时候传什么参数吗???
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
按这个 Demo 来,SpringBoot yaml 配置加 APIJSON AbstractSQLEexcutor 配置 https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource
Demo里边也没有写如何切换数据源呀,这个是需要前端请求的时候传什么参数吗???
前端传 @datasource
https://github.com/Tencent/APIJSON/blob/master/Document.md#3.2
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
按这个 Demo 来,SpringBoot yaml 配置加 APIJSON AbstractSQLEexcutor 配置 https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource
Demo里边也没有写如何切换数据源呀,这个是需要前端请求的时候传什么参数吗???
前端传
@datasource
https://github.com/Tencent/APIJSON/blob/master/Document.md#3.2
谢谢
@TommyLemon hi,TommyLemon,现在数据源有支持redis吗?有的话是否有demo?没有的话,如果要实现,你觉得应该怎么实现,需要注意什么?
@TommyLemon hi,TommyLemon,现在数据源有支持redis吗?有的话是否有demo?没有的话,如果要实现,你觉得应该怎么实现,需要注意什么?
Redis 对接缓存即可,在 DemoSQLExecutor 重写 getCache, putCache, removeCache 方法 https://github.com/Tencent/APIJSON/issues/90
注意缓存过期,需要自己根据业务需要来更新缓存。
可以在 Request 表配置增删改数据后调用自定义的 远程函数 来删改对应的缓存
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
按这个 Demo 来,SpringBoot yaml 配置加 APIJSON AbstractSQLEexcutor 配置 https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource
Demo里边也没有写如何切换数据源呀,这个是需要前端请求的时候传什么参数吗???
前端传
@datasource
https://github.com/Tencent/APIJSON/blob/master/Document.md#3.2
多源数据库Access的配置还在默认数据库上么?
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
按这个 Demo 来,SpringBoot yaml 配置加 APIJSON AbstractSQLEexcutor 配置 https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource
SpringBoot yaml 配置加 APIJSON AbstractSQLEexcutor 配置 这个是怎么加的,没找到地方啊
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
按这个 Demo 来,SpringBoot yaml 配置加 APIJSON AbstractSQLEexcutor 配置 https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource
SpringBoot yaml 配置加 APIJSON AbstractSQLEexcutor 配置 这个是怎么加的,没找到地方啊
@anacondapy6 也就 3 个目录,点几下就看到这几个配置文件了
另外还有专门的两个连接池简单 Demo https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONDemo-Druid/src/main
以后不要再问这种伸手党问题
请教下。 比如我有3个数据源,不同ip端口和库表。 直接建3个类,都继承APIJSONSQLConfig来做? 然后对每个数据源,都搞一套连接池