一个连接池使用的问题:这种写法没用上连接池? 连接池有很多厂商实现的,你用的是什么server?有没有配置连接池、datasource? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能否实现连接池,确实和服务器的选择有关,用javax.sql中的那几个类,确实可以实现连接池 appserver:was or wlsdb:sqlserver or oracle我的意思是SERVER可以数据源和连接池,这一点没问题,数据库厂商提供的JDBC驱动也支持连接池唯一的问题是:配置好了以后程序中使用连接池的方法Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("jdbc/EmployeeDB");Connection con = ds.getConnection("myPassword", "myUserName");这种方法应该只是从数据源获得连接,而并没有用上连接池ConnectionPoolDataSource cpds = (ConnectionPoolDataSource)ctx.lookup("jdbc/EmployeeDB");PooledConnection pConn = cpds.getPooledConnection(dbUser,dbPassword);conn = pConn.getConnection();这种方法才用上了连接池是不是这样?要注意:数据源和连接池不是同一个概念 >Context ctx = new InitialContext(); DataSource ds = (DataSource)>ctx.lookup("jdbc/EmployeeDB");>Connection con = ds.getConnection("myPassword", "myUserName");>这种方法应该只是从数据源获得连接,而并没有用上连接池这要看你的jdbc/EmployeeDB如何配的了,一般的applicaiton server配置datasource的时候都要配连接池相关属性的。所以上面的代码一般情况下也是使用了连接池的。 你的这个意思是:假如数据源的实现类是oracle.jdbc.pool.OracleConnectionPoolDataSource那Connection con = ds.getConnection("myPassword", "myUserName");这个方法自然就是从池中取得连接?根据JDBC2 OPTION,PooledConnection pConn = cpds.getPooledConnection("myPassword", "myUserName");这个方法才是从连接池取得连接的是的,和DBMS的连接池类的实现有关,如果是ORACLE,可能ds.getConnection("myPassword", "myUserName");如果是其他的DBMS呢? 既然和实现有关,你怎么知道某个JDBC驱动中ConnectionPoolDataSource类的 getConnection()就一定是从池中取的连接?即使是ORACLE,我现在都没有找到这样的文字 javax.sql.*这个包下面几乎都是接口,具体的实现和实现这个包的厂商有关。判断连接是否从池中取得:用完连接(调用close()方法),你可以用SELECT * FROM V$SESSION看看连接是否仍然存在。还有就是和你所用的应用服取器有关,它是如何实现的. 阿宝,麻烦解释下这个正则 session 保存对象两只方式有什么区别? 求助Java rmi远程调用问题 jdbc sql 问题 求 fscontext.jar 和providerutil.jar 两个包 谁有《Java SOAP编程指南》的源代码 问题求助 将apache和tomcat整合后,不能请求jsp文件,只能请求htm文件? 想熟悉j2ee体系结构,谁能推荐点资料? mybatis中的动态代理底层如何实现 J2EE高手请推荐一本最值得买的J2ee和EJB书! 再问高手们开发ejb问题,在线等待,急急!!!!!!!!!!!!!!!!!!
用javax.sql中的那几个类,确实可以实现连接池
db:sqlserver or oracle我的意思是SERVER可以数据源和连接池,这一点没问题,数据库厂商提供的JDBC驱动也支持连接池唯一的问题是:配置好了以后程序中使用连接池的方法
Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("jdbc/EmployeeDB");
Connection con = ds.getConnection("myPassword", "myUserName");这种方法应该只是从数据源获得连接,而并没有用上连接池ConnectionPoolDataSource cpds = (ConnectionPoolDataSource)ctx.lookup("jdbc/EmployeeDB");
PooledConnection pConn = cpds.getPooledConnection(dbUser,dbPassword);
conn = pConn.getConnection();
这种方法才用上了连接池是不是这样?要注意:数据源和连接池不是同一个概念
>Connection con = ds.getConnection("myPassword", "myUserName");>这种方法应该只是从数据源获得连接,而并没有用上连接池这要看你的jdbc/EmployeeDB如何配的了,一般的applicaiton server配置datasource的时候都要配连接池相关属性的。所以上面的代码一般情况下也是使用了连接池的。
假如数据源的实现类是
oracle.jdbc.pool.OracleConnectionPoolDataSource
那Connection con = ds.getConnection("myPassword", "myUserName");
这个方法自然就是从池中取得连接?
根据JDBC2 OPTION,
PooledConnection pConn = cpds.getPooledConnection("myPassword", "myUserName");
这个方法才是从连接池取得连接的是的,和DBMS的连接池类的实现有关,如果是ORACLE,可能ds.getConnection("myPassword", "myUserName");如果是其他的DBMS呢?
你怎么知道某个JDBC驱动中ConnectionPoolDataSource类
的 getConnection()就一定是从池中取的连接?即使是ORACLE,我现在都没有找到这样的文字
这个包下面几乎都是接口,具体的实现和实现这个包的厂商有关。判断连接是否从池中取得:用完连接(调用close()方法),你可以用
SELECT * FROM V$SESSION
看看连接是否仍然存在。还有就是和你所用的应用服取器有关,它是如何实现的.