现在都说框架,我今天发个不说框架的,作为入门讨论(包括我及其他初学者需要)。
写DAO往往是这样的(网上的视频教程,纸类教材,网上教程等貌似都是这样教的...):
那么问题就来了,如果我在一个servlet中的doGet 或 doPost 中同时调用了 DAO.add() 和 DAO.delete()
这两个方法,那么每个方法都会打开并关闭数据库连接一次,显然是影响性能的。
如何在打开一次数据库连接中完成两次操作呢?
我想到的处理方法就类似与Hibernate session里的操作,使用transaction.begin()开始,transaction.commit()结束;
那么DAO类修改如下:
DAO这样写以后,servlet中调用就写为:
这里说的简单的例子,复杂的也该是以此为基础。不知道大家在实际使用中是如何处理的?欢迎大家指点。
被误了N久啊。要是这样去找工作,谁敢要?!
貌似偶要发讨论意向,居然就成问题贴了,动不动就框架,没框架怎么办?偶也没进过什么公司,没团体合作过,完全自学,哪来那么好的处理方法?苦啊,继续摸索。
写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久啊。要是这样去找工作,谁敢要?!
貌似偶要发讨论意向,居然就成问题贴了,动不动就框架,没框架怎么办?偶也没进过什么公司,没团体合作过,完全自学,哪来那么好的处理方法?苦啊,继续摸索。