NutzCN Logo
问答 有没有个数据源池之类的东西
发布于 2552天前 作者 lalala 2684 次浏览 复制 上一个帖子 下一个帖子
标签:

有没有个数据源池的概念 大概客户数据库2000+ 各个连接配置都不一样

34 回复

自己做个map就好啦

不要发这种标题!

来自炫酷的 NutzCN

  • -我一时不知道要起啥 做个map就能切换了么

切换??

来自炫酷的 NutzCN

是啊 要连接客户那边 他们那边是sqlserver数据库 不过表什么的 是一样的 只是数据库配置都不相同 大概有2000+

没懂

来自炫酷的 NutzCN

说要做一个项目 云管理系统 各个客户可以登陆这个系统 查看自己的订单啊报表啊 啥的 不过客户的数据都在客户本地 云服务要去访问客户本地的数据库!

如果是独立数据库,每个租户的数据保存在物理上独立的数据库实例。JDBC 连接将指向具体的每个数据库,一个租户对应一个数据库实例。在 Hibernate 中,这种模式可以通过实现 MultiTenantConnectionProvider 接口或继承 AbstractMultiTenantConnectionProvider 类等方式来实现。
看了文章说这样处理 请问nutz要怎么做处理

继承NutDaoRunner,覆盖selectDataSource方法, 根据上下文(例如req里面的某个属性),从池里面取一合适的DataSource就可以了

那这个DataSource需要怎么定义 也需要写在配置文件上吗。 能否从数据中读取

哪个DataSource??

起码得声明一个主库的DataSource供NutDao初始化用嘛...

初始化我知道啦 一个mysql供系统用, 就是客户的sqlserver数据连接配置那么多要怎么搞,,, 新手啦

看了NutDaoRunner没?

看了 看不懂。。。 selectDataSource方法不知道如何重写

Map<String,DataSource> dss = new HashMap();
protected DataSource selectDataSource(Transaction t, DataSource master, ConnCallback callback) {
                  HttpServletRequest req = Mvcs.getReq();
                  if (req == null) return master;
                  String key = (String)req.getAttrxxx("xxxxxx')
                  if (key == null) return master;
                  DataSource ds = dss.get(key);
                  if (ds == null) {
                     ds = 新建连接池();
                     dss.put(key, ds);
                  }
                  return ds;
}

好的 我试看看 谢谢大佬

大佬 这个是什么

警告: ConnectionID:30 ClientConnectionId: 38e38a3e-ccc6-42c0-9430-19ad67524c44 Server major version:8 is not supported by this driver.
2017-12-27 22:24:05 [com.alibaba.druid.pool.DruidDataSource]-[ERROR] create connection error, url: jdbc:sqlserver://fjminshop.tpddns.cn;DatabaseName=Build_masterCS, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 该驱动程序不支持 SQL Server 8 版。 ClientConnectionId:38e38a3e-ccc6-42c0-9430-19ad67524c44
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1654)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.Prelogin(SQLServerConnection.java:1556)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1319)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1421)
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1477)
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1998)
十二月 27, 2017 10:24:05 下午 com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
警告: ConnectionID:31 ClientConnectionId: 30a24b67-9c06-472a-a248-2b92a6745929 Server major version:8 is not supported by this driver.
2017-12-27 22:24:05 [com.alibaba.druid.pool.DruidDataSource]-[ERROR] create connection error, url: jdbc:sqlserver://fjminshop.tpddns.cn;DatabaseName=Build_masterCS, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 该驱动程序不支持 SQL Server 8 版。 ClientConnectionId:30a24b67-9c06-472a-a248-2b92a6745929
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1654)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.Prelogin(SQLServerConnection.java:1556)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1319)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1421)
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1477)
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1998)

自己搜关键字

为什么没有sqlserver2000的pom文件- -

sqlserver2000的pom????

对啊 我是maven项目一直找不到- - 我也没用过sqlserver的数据库 jdbc啊

jdbc 3的驱动吧,估计是

好像对这个sqlserver2000 支持的不是很友好 一大堆问题啊

@wx_g9hej6qr60c9sgh4g6dv 主库不是sqlserver2000?

不是 主库是mysql 然后是一大堆外网的sqlserver2000数据库 要一直切换这些sqlserver做crud

每次调用 都传不一样的数据库配置进去SimpleDataSource 然后在传递给dao这样子可以吗

嗯,每次新建一个SimpleDataSource和NutDao来操作吧

好 那大佬 如果有3000+的SimpleDataSource会怎么样

无所谓的,SimpleDataSource不是连接池

添加回复
请先登陆
回到顶部