JDBC高级应用 - DAO模式与JavaBean

##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资源,在大量的并发访问时尤其明显 。而企业级的开发需要高效快速的连接处理。为避免频繁的创建、断开数据库连接,可以使用数据源技术。

更多学习资讯,学习源码,请在耶宇星球领取

更多学习资讯,学习源码,请在耶宇星球领取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北顾丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值