b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

jsp sql传两个参数 6.事务 连接池

电脑杂谈  发布时间:2018-02-12 06:54:37  来源:网络整理

jsp sql传两个参数_jsp 连接sql_jsp a标签传递参数

jsp sql传两个参数

事务

事务介绍:

就是一件事情,操作要不全部成功,要不全部失败。

mysql里的事务操作

通过一个命令(show variables like ‘autocommit‘;)

得到 autocommit=on;意思是事务 都自动提交

每一条sql都是一个事务

手动事务的操作:(☆)

start transaction; 开始事务(不管是否自动提交)

commit;提交事务

rollback;事务回滚

通过以下命令,可以设置事务为手动提交

set autocommit=off;

注意:一旦设置手动提交后,不要使用start transaction再开启事务了,这时开启的是新事务

java里的事务操作

Connection接口里面的方法:☆

void setAutoCommit(boolean autoCommet):设置事务是否自动提交

void commit():提交事务

void rollback():事务回滚

Savepoint setSavePoint():设置一个还原点

void rollback(savepoint):还原到哪个还原点

事务的特性:(☆)

ACID

原子性:atomicity 要么全部成功,要么全部失败

一致性:consistency 事务执行之后,状态与其它业务规则保持一致。例如:转账,总钱数不变

隔离性:isolation 在并发操作中,不同事务之间应该隔离开来,使每个并发中的事务不会相互干扰。jsp sql传两个参数

持久性:durability 一旦事务提交或回滚后,必须持久化到中

隔离性:

若不考虑隔离性,会出现的问题:

脏读:读取到别的事务没有提交的数据

不可重复读:在一个事务中,两次查询的结果不一致(内容 update)

虚读(幻读):在一个事务中,两次查询的结果不一致(条数,针对insert delete操作)

的隔离级别:

jsp sql传两个参数_jsp a标签传递参数_jsp 连接sql

read uncommitted:读未提交,最低的级别,上面的情况都可以发生

read committed:读已提交,可以避免脏读

repeatable read:可重复读,可以避免不可重复读

serializable:串行化,最高的等级,可以避免所有问题。

演示几种问题:

设置的隔离级别:

set session transactioin isolation level 级别;

查看当前的隔离级别:

select @@tx_isolation;

mysql默认的隔离级别:repeatable read☆

oracle扩展的隔离级别:read committed☆

安全性:

serializable>repeatable read>read committed>read uncommitted

效率:反之

案例:

转账案例

解决service层需要传入connection参数:

Map<Thread,Connection> map

第一次开始事务的时候,先获取map.get(Thread.currentThread()) == ThreadLocal.get()

获取一个connection,开启事务,最后map.put(Thread.currentThread(),connection) == ThreadLocal.set()

在dao层可以直接使用,map.get(Thread.currentThread())就可以获取绑定的链接

执行的流程:

account.jsp:接收用户信息

accountServlet:接收参数,调用service,页面的跳转


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-73105-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...