精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (6)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-04
加个中间件,ACTIVEMQ,其它中间件也可以
让activemq做转发,这里就可以判断哪个用户连接哪个数据库了 不能画图,不好表达 |
|
返回顶楼 | |
发表时间:2011-07-04
用AtomikosTransactionsEssentials试下。
|
|
返回顶楼 | |
发表时间:2011-07-04
ACTIVEMQ 怎么用,有没有实例啥的,我可以参考下,没有用过ACTIVEMQ
|
|
返回顶楼 | |
发表时间:2011-07-04
kyan54 写道
cheng888qi 写道
继承下com.mchange.v2.c3p0.ComboPooledDataSource,覆盖setUser, setPassword,自己从数据库读取不行吗?
属性文件可以自己动态创建吧? 下面代码应该可以实现你说的这种
private ComboPooledDataSource buildDataSource(Properties property) throws PropertyVetoException { ComboPooledDataSource ds = new ComboPooledDataSource(); //加载DataSource驱动 ds.setDriverClass(property.getProperty(DRIVER_CLASS)); //设置连接数据库的url ds.setJdbcUrl(property.getProperty(JDBC_URL)); //设置数据库用户名 ds.setUser(property.getProperty(USER)); //设置数据库密码 ds.setPassword(property.getProperty(PASSWORD)); //设置池的最大连接数 ds.setMaxPoolSize(Integer.parseInt(property.getProperty(MAX_POOL_SIZE))); //设置池的最小连接数 ds.setMinPoolSize(Integer.parseInt(property.getProperty(MIN_POOL_SIZE))); ds.setMaxStatements(Integer.parseInt(property.getProperty(MAX_STATEMENTS))); ds.setMaxIdleTime(Integer.parseInt(property.getProperty(MAX_IDLETIME))); ds.setInitialPoolSize(Integer.parseInt(property.getProperty(INITIAL_POOLSIZE))); ds.setCheckoutTimeout(Integer.parseInt(property.getProperty(CHECKOUT_TIMEOUT))); ds.setIdleConnectionTestPeriod(Integer.parseInt(property.getProperty(IDLECONNECTIONTESTPERIOD))); return ds; }
如果按照这样写法,我原来的super.getJdbcTemplate().queryForInt( )这种方法是不是不能用了
|
|
返回顶楼 | |
发表时间:2011-07-04
lshoo 写道 用AtomikosTransactionsEssentials试下。
这个也没有用过,不知道怎么用 |
|
返回顶楼 | |
发表时间:2011-07-04
我认为配置数据源,使用数据库连接池是为了统一资源减少系统开销,避免浪费。
看楼主的需求好像每个用户登录统一系统却使用不同的数据库。如果用户少,那么就是使用多数据源问题,没必要动态改变数据源。如果用户多,那么没必要使用数据库连接池,这样反而是种资源浪费。 |
|
返回顶楼 | |
发表时间:2011-07-04
那你为什么要使用这个框架呢?
|
|
返回顶楼 | |
发表时间:2011-07-04
这个框架是我很久以前就用上了,程序都做完了,客户来了个这样的要求
|
|
返回顶楼 | |
发表时间:2011-07-04
|
|
返回顶楼 | |
发表时间:2011-07-04
newstong1 写道 这个框架是我很久以前就用上了,程序都做完了,客户来了个这样的要求
你忽视了JDBC |
|
返回顶楼 | |