使用连接池时能否使用预编译的PrepareStatement或CallableStatement,200分求教 自己编写的连接池,可以用PreparedStatement,CallableStatement的。但是要用weblogic等提供的数据库连接池据说不行,但没有具体实践过。而我们现在使用的是自己编写的连接池,能使用这两个东西。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那请问PreparedStatement 要不要于con一一对应? 连接池是用来负责管理数据库的连接的,和PrepareStatement或CallableStatement没有直接的关系。不过你是用自己编写的连接池还是Weblogic或是Oracle自带的连接池。因为PrepareStatement或CallableStatement是和connection打交道而不管connection是怎样获得的。另外通过一个connection可以建多个PrepareStatement或CallableStatement,但不是无限多,每种数据库可能都不一样,我遇到使用过oracle jdbc type4驱动获得的一个连接好像只能产生300个,否则就报最大游标数超出。在jdbc2中,一个Statement只能返回一个Resultset倒是对的。但jdbc3.0也可以获得多个Resultset了。 我用的是自己编写的连接池。如果有con1 与 con2 两个连接con1创建了PrepareStatement,con2没有创建那con2能不能使用con1创建的PrepareStatement呢 那用连接池能不能用PreparedStatement 以及CallableStatement呢? 连接池的原理就是让其它客户重用你用过的连接。但在一些jdbc实现里, 是用临时表或临时存储过程来做prepare的。如果那样的话,那么当你的物理连接被别人重用的时候,别人就有可能因为你留下的垃圾而失败。一般当不用连接池的时候,你只需要调用Connection.close(), dbms会负责清除所有临时资源。但当你的应用连接池缓存了物理Connection的时候,dbms就无能为力了。所以,首先,除了调用Connection.close(), 你必须调用Statement.close()去释放每一个你创建的Statement. 总而言之,对所有你创建的数据库对象调用close().其次,祈祷底层的jdbc和dbms真的删除了那些临时对象。 PreparedStatement 是欲编译的,可以使用杂,在连接池里面 那PreparedStatement 预编译后是存在数据库端了,当不通的connection 使用它时,数据库自动匹配了? Xlet请教 高分问菜鸟问题,jvm & jre ,到底有什么jvm不能做而jre可以做? 在线急求java如何实现QQ2011登录窗口中那个在线状态下拉菜单如果实现 关于Servlet程序 java socket编码问题!!!! 关于一道ACM题,总是超时,请帮帮忙!! 如何获得未来30天的时间 简单的数据源问题...答出者得分 short/int 转化为byte[] 请推荐好的Java编程和资料网站 最基本问题:如何设置JComboBox的长度呢? 关于数据库连接内存释放的问题?
如果有con1 与 con2 两个连接
con1创建了PrepareStatement,con2没有创建
那con2能不能使用con1创建的PrepareStatement呢
但在一些jdbc实现里, 是用临时表或临时存储过程来做prepare的。
如果那样的话,那么当你的物理连接被别人重用的时候,别人就有可能因为你留下的垃圾而失败。
一般当不用连接池的时候,你只需要调用Connection.close(), dbms会负责清除所有临时资源。
但当你的应用连接池缓存了物理Connection的时候,dbms就无能为力了。
所以,首先,除了调用Connection.close(), 你必须调用Statement.close()去释放每一个你创建的Statement. 总而言之,对所有你创建的数据库对象调用close().其次,祈祷底层的jdbc和dbms真的删除了那些临时对象。