简单DAO与servlet调用如何避免重复的数据库连接

现在都说框架,我今天发个不说框架的,作为入门讨论(包括我及其他初学者需要)。

写DAO往往是这样的(网上的视频教程,纸类教材,网上教程等貌似都是这样教的...):


class DAO类名 {

//增加操作
public void add (vo对象) {

//1、获取一个数据库连接
//2、执行insert sql语句
//3、关闭数据库连接及其他清理操作
}

//删除操作
public void delete (vo对象) {

//1、获取一个数据库连接
//2、执行delete sql语句
//3、关闭数据库连接及其他清理操作
}

... ...//其他类似操作

}


那么问题就来了,如果我在一个servlet中的doGet 或 doPost 中同时调用了 DAO.add() 和 DAO.delete()
这两个方法,那么每个方法都会打开并关闭数据库连接一次,显然是影响性能的。

如何在打开一次数据库连接中完成两次操作呢?

我想到的处理方法就类似与Hibernate session里的操作,使用transaction.begin()开始,transaction.commit()结束;

那么DAO类修改如下:


class DAO类名 {

//增加新的方法begin();
public void begin() {

// 获取一个数据库连接
......

}

//增加新的方法commit();
public void begin() {

// 关闭数据库连接及其他清理
......

}

//增加操作
public void add (vo对象) {

//执行insert sql语句
}

//删除操作
public void delete (vo对象) {

//2、执行delete sql语句
}

... ...//其他类似操作

}


DAO这样写以后,servlet中调用就写为:


...

DAO dao = new DAO() ;

dao.begin();

dao.add(vo);
dao.delete(vo);

dao.commit();

...



这里说的简单的例子,复杂的也该是以此为基础。不知道大家在实际使用中是如何处理的?欢迎大家指点。

被误了N久啊。要是这样去找工作,谁敢要?!


貌似偶要发讨论意向,居然就成问题贴了,动不动就框架,没框架怎么办?偶也没进过什么公司,没团体合作过,完全自学,哪来那么好的处理方法?苦啊,继续摸索。
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读