当前位置:Gxlcms > mysql > JDBC使用事务实例

JDBC使用事务实例

时间:2021-07-01 10:21:17 帮助过:12人阅读

package qddx .JDBC ; import java .sql .* ; public class useTransaction { public static void main(String[] args) { // TODO Auto-generated method stub Connection conn = null ; Statement st = null ; PreparedStatement pst = null ; ResultSet rs

  1. <code class=" hljs avrasm">package qddx<span class="hljs-preprocessor">.JDBC</span><span class="hljs-comment">;</span>
  2. import java<span class="hljs-preprocessor">.sql</span>.*<span class="hljs-comment">;</span>
  3. public class useTransaction {
  4. public static void main(String[] args) {
  5. // TODO Auto-generated method stub
  6. Connection conn = null<span class="hljs-comment">;</span>
  7. Statement <span class="hljs-keyword">st</span> = null<span class="hljs-comment">;</span>
  8. PreparedStatement pst = null<span class="hljs-comment">;</span>
  9. ResultSet rs = null<span class="hljs-comment">;</span>
  10. Savepoint sp = null<span class="hljs-comment">;</span>
  11. try{
  12. conn = JDBC_Connection<span class="hljs-preprocessor">.getConnection</span>()<span class="hljs-comment">;</span>
  13. //指定事务隔离级别
  14. conn<span class="hljs-preprocessor">.setTransactionIsolation</span>(conn<span class="hljs-preprocessor">.TRANSACTION</span>_READ_UNCOMMITTED)<span class="hljs-comment">;</span>
  15. pst = conn<span class="hljs-preprocessor">.prepareStatement</span>(<span class="hljs-string">"create table users (id smallint,username text)"</span>)<span class="hljs-comment">;</span>
  16. pst<span class="hljs-preprocessor">.execute</span>()<span class="hljs-comment">;</span>
  17. //提交事务
  18. conn<span class="hljs-preprocessor">.commit</span>()<span class="hljs-comment">;</span>
  19. pst<span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>
  20. }catch(SQLException e){
  21. System<span class="hljs-preprocessor">.err</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"连接数据库或者建表失败"</span>)<span class="hljs-comment">;</span>
  22. System<span class="hljs-preprocessor">.err</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"事务回滚到回滚点"</span>)<span class="hljs-comment">;</span>
  23. try{
  24. conn<span class="hljs-preprocessor">.rollback</span>()<span class="hljs-comment">;</span>
  25. }catch(SQLException ex){
  26. //ex<span class="hljs-preprocessor">.printStackTrace</span>()<span class="hljs-comment">;</span>
  27. System<span class="hljs-preprocessor">.out</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"回滚失败"</span>)<span class="hljs-comment">;</span>
  28. }
  29. try{
  30. conn<span class="hljs-preprocessor">.setSavepoint</span>()<span class="hljs-comment">;//设置一个存储点</span>
  31. <span class="hljs-keyword">st</span> = conn<span class="hljs-preprocessor">.createStatement</span>()<span class="hljs-comment">;</span>
  32. <span class="hljs-keyword">st</span><span class="hljs-preprocessor">.executeUpdate</span>(<span class="hljs-string">"insert into users values(110,'Janes')"</span>)<span class="hljs-comment">;//执行更新语句</span>
  33. //<span class="hljs-keyword">st</span><span class="hljs-preprocessor">.executeUpdate</span>(<span class="hljs-string">"insert into users values('shibai','Janes')"</span>)<span class="hljs-comment">;//执行更新语句 失败的例子</span>
  34. conn<span class="hljs-preprocessor">.commit</span>()<span class="hljs-comment">;//提交事务</span>
  35. conn<span class="hljs-preprocessor">.releaseSavepoint</span>(sp)<span class="hljs-comment">;//释放存储点</span>
  36. <span class="hljs-keyword">st</span><span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>
  37. conn<span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>
  38. }catch(SQLException et){
  39. System<span class="hljs-preprocessor">.err</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"操作失败"</span>)<span class="hljs-comment">;</span>
  40. System<span class="hljs-preprocessor">.err</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"事务回滚到存储点"</span>)<span class="hljs-comment">;</span>
  41. try{
  42. conn<span class="hljs-preprocessor">.rollback</span>(sp)<span class="hljs-comment">;</span>
  43. <span class="hljs-keyword">st</span><span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>
  44. conn<span class="hljs-preprocessor">.close</span>()<span class="hljs-comment">;</span>
  45. }catch(SQLException exc){
  46. System<span class="hljs-preprocessor">.out</span><span class="hljs-preprocessor">.println</span>(<span class="hljs-string">"回滚到存储点失败"</span>)<span class="hljs-comment">;</span>
  47. //exc<span class="hljs-preprocessor">.printStackTrace</span>()<span class="hljs-comment">;;</span>
  48. }
  49. //et<span class="hljs-preprocessor">.printStackTrace</span>()<span class="hljs-comment">;</span>
  50. }
  51. //e<span class="hljs-preprocessor">.printStackTrace</span>()<span class="hljs-comment">;</span>
  52. }
  53. }
  54. }
  55. </code>

人气教程排行