我有一个应用程序,在连接到数据库时需要使用连接池。问题是,该应用程序旨在动态配置和更改连接设置。我编写了以下代码,允许我动态创建数据源,然后使用它来打开与数据库的连接。但是,此代码是为DataDirect驱动程序编写的,我已将其用于连接Oracle和MS SQL。不幸的是,DataDirect Mysql驱动程序只会连接到商业版的mysql,而不是免费版本。所以现在我试图用mysql中的connect / j完成相同的任务。我找不到如何通过像DD驱动程序这样的方法调用来设置外部(静态)数据源定义中的连接属性。任何帮助将不胜感激。
BaseDataSource bds = (BaseDataSource)ds;
// Populate the DataSource
bds.setDescription("Driver Data Source");
bds.setServerName(connectUrl);
bds.setUser(userName);
bds.setPassword(password);
if ( spyAttr.length() > 0 ) bds.setSpyAttributes(spyAttr);
// Create the PooledConnection DataSource. Pass the data source created above
// to the PooledConnection DataSource
pds = new PooledConnectionDataSource();
pds.setDescription("Pooled Data Source");
pds.setDataSourceName("myDataSource", bds);
pds.setPoolName("myPool");
pds.setInitialPoolSize(nPoolSize);
pds.setMinPoolSize(minPoolSize);
pds.setMaxPoolSize(maxPoolSize);
pds.setPropertyCycle(propCycle);
pds.setMaxIdleTime(maxIdleTime);
pds.setTracing(tracing);
// Get connection
pds.getConnection();
答案 0 :(得分:0)
显然,MySQL Connector / J驱动程序不允许使用方法调用传入这些参数,因此您必须将它们作为URL中的参数传递(jdbc:mysql:// localhost / test?user = foo& ;密码=巴)