数据库连接忘记关闭解决之道-模版,模版模式,还是架构
来源:互联网 发布:seo专员岗位职责 编辑:程序博客网 时间:2024/05/29 14:42
写过JAVA代码的人一定知道,数据库连接忘记关闭会带给系统致命错误。
尤其访问量很大的时候,所有数据库对连接的支撑都是有限的,当打开的连接到了一定数目,
服务器就完蛋了。
所以我们就要求程序员写代码的时候一定要关闭连接,使用
Connection con = null;
try{
//创建连接,执行SQL
}catch(SQLException ex){
....
}finally{
if ( con != null ){
try{
con.close();
}catch(SQLException ex1){
.....
}
}
}
来保证每次都能把连接关闭,但是程序员每次输入这段代码,是很累人的事情。常在河边走,哪有不湿鞋的。
还有一种好的办法,可以减少这种无聊的输入,就是使用JBULDER里面的模版,定义一个模版,起一个名字。两三下就可以把一段代码输入。但是代码看着很臃肿,而且万一这种逻辑变化了怎么办。于是有了一种更好的办法,使用模版模式。
定义一个模版类
public class ConTemplate{
//具体SQL逻辑
protected abstract void doExcecute(Connection con) throws SQLException;
public void excecute(){
Connection con = null;
try{
//创建连接,执行SQL
doExcecute(con);
}catch(SQLException ex){
....
}finally{
if ( con != null ){
try{
con.close();
}catch(SQLException ex1){
.....
}
}
}
}
}
有了这个模版,我们就没有必要在业务逻辑里面创建和关闭连接了。
例如一个方法add
public void add(Object obj){
//内部匿名类
ConTemplate temp = new ConTemplate(){
protected abstract void doExcecute(Connection con) throws SQLException{
//SQL逻辑
}
};
temp.excecute();
}
代码是可以清晰了一些。但是代码里得写难以阅读的匿名类。
除了这个,有没有更好的办法呢?
这个答案是Spring的拦截器和过滤器。
过滤器和拦截器从根上避免了连接不关闭的问题。我们不用在提心吊胆地害怕连接没有关闭。
架构就有点类似一个桥梁定制的一个主梁,只要主梁质量没有问题上面附带的东西出点问题,不影响整个桥梁。
但是不使用架构,就好像每一段代码都是主梁的一部分,一节出问题,整个就完了。
- 数据库连接忘记关闭解决之道-模版,模版模式,还是架构
- 模版模式
- 模版模式
- 模版模式
- 模版模式
- 模版模式
- 模版模式
- 模版模式
- 模版模式
- 模版模式
- 模版模式
- java数据库连接模版
- javaEE之Hibernate架构之数据库连接工具模版制作
- 模版方法-设计模式
- django 模版关闭转义
- 模版
- 模版
- 模版
- 转型了,准备做PDA开发了。。
- 根据PE文件格式获取LoadLibraryA()/GetProcAddress()地址
- Growl: 淡入淡出效果的提示信息脚本
- 发生了一个Oracle错误,但无法从Oracle中检索错误信息的处理
- 到底是测试好呢还是开发好了?
- 数据库连接忘记关闭解决之道-模版,模版模式,还是架构
- [数据库连接字符串] SQL Server 连接字符串
- java udp实现文件传输
- Linux的发音
- 子对象的初始化
- 我的PE程序加密核心代码(MASM 6.0
- 修复文件关联及图标
- csdn是什么?
- 用进程注入来实现一个壳(原理)