设为首页 加入收藏

TOP

jdbc自己理解
2015-07-24 11:34:30 来源: 作者: 【 】 浏览:3
Tags:jdbc 自己 理解
1、connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ZSORA10G", "gao", "admin");
如果代码里面始终就只有一个connection,是否可以写jdbc代码 可以! 但是会造成以下问题:例如有两个客户端访问 数据库,共享一个connection ,如果其中一个 回滚了,那么第二个当然也回滚了,事物不安全 所以不共享一个数据库对象所以在web项目中 都是 一个客户端 一个connection 。这样会导致 每次获取连接 都要初始化获取connection对象,这是非常消耗内存的这就是为什么我们使用连接池,连接池里面初始化几个 连接,不够用的时候 就继续增加,不用的时候 再销毁点,连接池里面始终 保存固定的connection。

关于connection.close的理解。 如果是 一个客户端一个connection ,那么使用之后肯定要关掉连接 connection.close。不然容易内存溢出

关于连接池的 调用关闭connection方法 不是立即就关闭,而是让对象回归到连接池里面。

这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。

连接池掉用关闭
BasicDataSource implements DataSource
public synchronized void close() throws SQLException { closed = true; GenericObjectPool oldpool = connectionPool; connectionPool = null; dataSource = null; try { if (oldpool != null) { oldpool.close(); } } catch(SQLException e) { throw e; } catch(RuntimeException e) { throw e; } catch(Exception e) { throw new SQLNestedException("Cannot close connection pool", e); } }
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Hibernate――ORMapping 下一篇在归档模式下删除非系统文件的恢复

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)