欢迎来到天天文库
浏览记录
ID:30777307
大小:105.50 KB
页数:11页
时间:2019-01-03
《jdbc事务管理及savepoint示例-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JDBC事务管理及SavcPoint示例-编程开发技术JDBC事务管理及SavePoint示例木文由ImportNew・刘博翻译自journaldevo欢迎加入翻译小组。转载请见文末要求。在JDBC教程中,我们学习了如何使用JDBCAPT进行数据库连接和执行SQL查询。此外,还研究了不同类型的驱动程序,以及如何编写松散耦合的JDBC程序,帮助我们轻松地切换数据库服务器。木教程旨在详细介绍JDBC事务管理,以及如何使用JDBCSavePoint进行冋滚操作。默认情况下,当我们创建一个数据库连接时,会运行在自动提交模式(Auto-commit)«这意味着,任何时候我们执行一条SQL完成Z后,事务
2、都会自动捉交。所以我们执行的每一条SQL都是一个事务,并且如果正在运行DML或者DDL语句,这些改变会在每一条SQL语句结束的时存入数据库。有时候我们想让一组SQL语句成为事务的一部分,那样我们就可以在所有语句运行成功的吋候提交,并11如果岀现任何异常,这些语句作为事务的一部分,我们可以选择将其全部回滚。让我们通过一个简单的示例理解一下,这里使用JDBC的事务管理来支持数据的完整性。假设我们有一个名为UserDB的数据库,员工的信息分别存储在两张表屮。比如我正在使用MySQL数据库,但是同样可以在Oracle和PostgreSQL等其他的关系型数据库上运行。数据库表屮存储员工信息和地址明细。
3、两张表的DDL脚本如下:CREATETABLE'Employee'(empldint(11)unsignedNOTNULL,'name'varchar(20)DEFAULTNULL,PRIMARYKEY('empld'))ENGINE=InnoDBDEFAULTCIlARSET=utf8;CREATETABLE'Address'('empld'int(11)unsignedNOTNULL,'address'varchar(20)DEFAULTNULL,cityvarchar(5)DEFAULTNULL,'country'varchar(20)DEFAULTNULL,PRIMARYKEY('e
4、mpld'))ENGINE二InnoDBDEFAULTCHARSET二utf8;最终的工程如下图,我们将逐个查看这些类:如图所示,在工程的bu订dpathH1有一个MySQLJDBC的jar包,这样就可以连接到MySQL数据库。DBConnection.javapackagecom.journaldev.jdbc.transaction;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBConnection{publicfinalstaticStrin
5、gDB_DRIVER_CLASS=z,com.mysql.jdbc.Driver^;publicfinalstaticStringDBURL=,zjdbc:mysql://localhost:3306/UserDB〃;publicfinalstaticStringDBUSERNAME二〃pankaj〃;publicfinalstaticStringDB_PASSWORD=〃pemkEijl23";publicstaticConnectiongetConnectionOthrowsClassNotFoundException,SQLException{Conncctioncon二null;//
6、loadtheDriverClassClass.forName(DB_DRIVER_CLASS);//createtheconnectionnowcon二DriverManager.getConnection(DBURL,DBUSERNAME,DB_PASSWORD);System,out.println(z/DBConnectioncreatedsuccessfully'7);returncon;}}在DBConnection类小,创建MySQL数据库连接供其他类使用。EmployeeJDBCInsertExample.javapackagecom.journaldev.jdbc.tran
7、saction;importjava.sql.Cormection;importjava.sql.PrcparcdStatcmcnt;importjava.sql.SQLException;publicclassEmployeeJDBCInsertExample{publicstaticfinalStringINSERT_EMPLOYEE_QUERY二"insertintoEmployee(empld,nam
此文档下载收益归作者所有