简单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久啊。要是这样去找工作,谁敢要?!


貌似偶要发讨论意向,居然就成问题贴了,动不动就框架,没框架怎么办?偶也没进过什么公司,没团体合作过,完全自学,哪来那么好的处理方法?苦啊,继续摸索。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值