8.6到8.7的重要更新
最后更新:2023-11-15 05:30:47
|
状态:未完成
文档中有错误或没说明白的请到【群】里说一下,多谢指正
文档中有错误或没说明白的请到【群】里说一下,多谢指正
原因及需要处理的问题:
1.跨库的问题
群里一直有些中台和低代码的项目需要查询多个库的Table列表
但有些数据库并不支持跨库,比如他的系统表tables在每个库中单独维护
修改后会增加根据数据库自动创建、注销数据源的方法(数据源与数据库一一对应)
这样就不存在跨库的问题了
2.数据源切换的问题
通过setDatasource(key)的方式在修改纯种共享变量,来影响jdbc获取数据源的方式,存在一个严重的问题:
在线程共享时会造成数据源混乱,
所以后期增加了【切换service】方式来实现切换数据源的效果,即每个service固定对应一个数据源,运行过程中并不切换。
修改后,会删除setDatasource(key)切换数据源的方式
3.设计失误,经验不足
因为大部分数据源支持JDBC所以在最项层接口设计时受到了JDBC很大的影响,所以许多本来应该属性JDBC与非JDBC的名称用在了JDBC上
如datasource现在的版本默认就是jdbc datasource,因为非JDBC数据源越来越多,所以下一版本处理掉这个问题。
修改后会把类似datasource这种jdbc与非jdbc的共同父类的名称提到上一级
对项目代码的影响:
startTransaction > start
DataSourceHolder > JDBCDatasourceHolder
删除setDatasource(ds) > ServiceProxy.service(ds);
注册数据源时用JDBCDatasourceHolder.reg()
1.跨库的问题
群里一直有些中台和低代码的项目需要查询多个库的Table列表
但有些数据库并不支持跨库,比如他的系统表tables在每个库中单独维护
修改后会增加根据数据库自动创建、注销数据源的方法(数据源与数据库一一对应)
这样就不存在跨库的问题了
2.数据源切换的问题
通过setDatasource(key)的方式在修改纯种共享变量,来影响jdbc获取数据源的方式,存在一个严重的问题:
在线程共享时会造成数据源混乱,
所以后期增加了【切换service】方式来实现切换数据源的效果,即每个service固定对应一个数据源,运行过程中并不切换。
修改后,会删除setDatasource(key)切换数据源的方式
3.设计失误,经验不足
因为大部分数据源支持JDBC所以在最项层接口设计时受到了JDBC很大的影响,所以许多本来应该属性JDBC与非JDBC的名称用在了JDBC上
如datasource现在的版本默认就是jdbc datasource,因为非JDBC数据源越来越多,所以下一版本处理掉这个问题。
修改后会把类似datasource这种jdbc与非jdbc的共同父类的名称提到上一级
对项目代码的影响:
startTransaction > start
DataSourceHolder > JDBCDatasourceHolder
删除setDatasource(ds) > ServiceProxy.service(ds);
注册数据源时用JDBCDatasourceHolder.reg()