MySQL数据库工程师入门实战课程视频教程
4200 人在学
在JDBC程序向数据库获得Connection对象的时侯。一般情况下,Connection对象会直接向数据库提交以上发送的SQL语句。
然而,如果想要关闭默认提交的方式,就把几条SQL在相同的事务当中执行,并保证同一时间内这些语句是在共同执行的,所以就为多条语句定义相同的一个事务。
然而,银行转账最能解释事务的重要性。
如下:
(1)updatefromaccountsetmoney=money-100wherename=‘a’;
(2)updatefromaccountsetmoney=money+100wherename=‘b’;
由于同时执行两个账户的增减变化。生活中类似于这种情况的同步通信例子有很多。
然而,事务的编写需要遵守一定的顺序。
如下:
首先,把事务的提交方式设置为非自动提交。
conn.setAutoCommit(false);
然后,把要添加事务的代码放进去try以及catch块中。
再,在try块把事务的提交操作进行添加,表示操作无异常,提交事务。
conn.commit();
注意:不要忘记在catch块内添加回滚事务,表示操作有异常,进行撤销。
conn.rollback();
最后,把事务提交的方式设置为自动提交。
conn.setAutoCommit(true);
这样,就完成编写了事务处理了。
如例:对事务方法进行定义,在方法内实现语句间的一致性操作。
Connectioncon=null;
Statementst=null;
ResultSetrs=null;
PreparedStatementps=null;
publicvoidstartTransaction(){
con=DBCManager.getConnect();//获取连接对象
try{
//设置事务的提交方式为非自动提交:
con.setAutoCommit(false);
//把需要添加事务的代码放入try以及catch块中
//对执行语句进行创建
Stringsql="deletefrommewhereid=7";
Stringsql1="updatemesetname='chengong',age='34'whereid=4";
//分别执行事务
ps=con.prepareStatement(sql);
ps.executeUpdate();
ps=con.prepareStatement(sql1);
ps.executeUpdate();
//在try块当中添加事务提交的操作,用来表示操作没有异常,再提交事务。
con.commit();
}catch(SQLExceptione){
try{
//.在catch块当中添加回滚事务,表示操作有异常,对事务进行撤销
con.rollback();
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
e.printStackTrace();
}finally{
try{
//设置事务的提交方式为自动提交
con.setAutoCommit(true);
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
DBCManager.release(rs,ps,con);
}
}
总结:JDBC当中事务的使用操作在数据库当中是很使用的,大家需要好好的掌握这些基础的知识才能更好的掌握关于数据库的其他知识哦。想要了解更多关于数据库,考试认证,大数据之类的内容,可以关注我们课课家教育网站,我们会给大家提供更详尽的信息。