码迷,mamicode.com
首页 > 数据库 > 详细

JDBC高级应用 - DAO模式与JavaBean

时间:2015-05-19 22:49:24      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:dao   javabean   crud   数据库   

DAO模式与JavaBean

DAO数据库操作对象(Data Access Object):负责连接数据库,通过集合获取数据库中的数据,对数据进行CRUD的操作。
DAO出现之前,操作数据库的代码与业务代码都出现在JSP或Servlet中,不利于业务代码的分离。DAO出现后改变了这一情况,所有与数据库相关的操作都被拿到了DAO层实现,Servlet或JSP中只操作JavaBean与DAO层,而DAO只操作数据库。

事务实例:转账

张三转200元到李四的银行账户,李四要买英雄联盟皮肤。
要分两个步骤:
一:从张三账户中减去200元
二:在李四账户中加上200元

一个无事务的方法(步骤正常)
一个无事务的方法(步骤异常:后面的步骤有错,断电)
一个有事务的方法(步骤正常)
一个无事务的方法(步骤异常:后面的步骤有错,断电)

代码:

getConnection();
conn.setAutoCommit(false);   //停用自动提交事务
...
int result2 = pStmt.executeUpdate();
System.out.println(“李四账户存入200元,结果:"+(result2==1?"成功":"失败"));

if(result1==1 && result2==1){   //扣款、充值都成功
    conn.commit();
    System.out.println("转账成功,事务提交。");
}else{
    conn.rollback();
    System.out.println("转账失败,事务回滚。");
}

抛出异常自动回滚

设置自动提交为false后,事务的提交必须执行conn.commit(),而事务的回滚不一定要显示的执行conn.rollback(),如果程序最后没有执行conn.commit(),事务也会回滚,一般是要直接抛出异常,终止本段程序的正常运行。

如下:

if(result1!=1 || result2!=1){
      throw new  Exception("数据更新失败。");
}
conn.commit();

数据源(连接池)

在先前的JDBC编程中,每操作一次数据库,都要经过下面的过程:创建Connection、创建Statement对象、获取ResultSet、销毁ResultSet、销毁Statement、断开Connection。即每操作一次数据库,都会创建连接、断开连接。
在实际的使用中,创建和断开Connection都会消耗一定的时间、IO资源,在大量的并发访问时尤其明显 。而企业级的开发需要高效快速的连接处理。为避免频繁的创建、断开数据库连接,可以使用数据源技术。

JDBC高级应用 - DAO模式与JavaBean

标签:dao   javabean   crud   数据库   

原文地址:http://blog.csdn.net/gxseveryday/article/details/45848749

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!