`

jdbc mysql 事务处理

阅读更多

一、请使用jdbc技术实现数据库连接,并且保证在一个事务中对表TEST的一条记录做修改(并保证连接正常关闭),例如:
[TEST]
ID NAME
1  test
2  test1
修改为
[TEST]
ID NAME 
1  test2
2  test1

二、请根据上题的继续实现:遍历所有数据库记录,遇到ID=1的记录时,NAME修改为test3后立即提交事务,遇到的ID=2的记录时,先将NAME修改为test4后立即回滚事务将ID=2的记录NAME回复为原值(并保证连接正常关闭)。

 


代码如下,如有更好的实现,请大家贴出来共同学习.

 

package com.jdbc.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class MYSQLConn {

 public static void main(String[] args) {

  Connection con = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(
              "jdbc:mysql://localhost:3306/myuser?useUnicode=true&characterEncoding=UTF-8"
              ,"root","123456");
            System.out.println(con);
           
            /*//新增记录
            String insertSQL = "insert into user_info() values (2,'test1',12)";
            pstm = con.prepareStatement(insertSQL);
            pstm.executeUpdate();*/
           
            /*//一
            con.setAutoCommit(false);
            String updateSQL = "update user_info set name='" + "test2" + "' where id=1";
            pstm = con.prepareStatement(updateSQL);
            pstm.executeUpdate();
            con.rollback();
            con.commit();
            con.setAutoCommit(true);*/
           
            //二
            String sql = "select * from user_info";
            pstm = con.prepareStatement(sql);
            rs = pstm.executeQuery();
            while(rs.next())
            {
                int ID = rs.getInt("id");
                if (ID == 1) {
                 con.setAutoCommit(false);
                    String updateSQL = "update user_info set name='" + "test3" + "' where id=1";
                    pstm = con.prepareStatement(updateSQL);
                    pstm.executeUpdate();
//                    con.rollback();
                    con.commit();
                    con.setAutoCommit(true);
                } else if (ID == 2) {
                 con.setAutoCommit(false);
                    String updateSQL = "update user_info set name='" + "test4" + "' where id=2";
                    pstm = con.prepareStatement(updateSQL);
                    pstm.executeUpdate();
                    con.rollback();
                    con.commit();
                    con.setAutoCommit(true);
                }
                System.out.print(ID + "  ");
               

            }


        } catch (Exception e) {
            e.printStackTrace();
            // TODO: handle exception
        } finally {
         try {
    con.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
        }
        System.out.println(con);
  
 }

}

 

 

分享到:
评论

相关推荐

    JDBC使用MySQL处理大数据+事务控制管理.txt

    ##### 启用事务处理 在使用事务时,首先需要关闭自动提交模式,然后执行一系列的操作,并在最后通过`commit()`方法显式提交事务。 ```java Class.forName("com.mysql.jdbc.Driver"); Connection conn = ...

    java使用jdbc对mysql的操作封装,包括java使用jdbc对mysql进行事务处理

    封装了java使用jdbc对mysql的操作,以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了...

    Mysql JDBC驱动 .zip_MYSQL_jdbc mysql_mysql jdbc_mysql jdbc driver_

    MySQL JDBC驱动,也称为Connector/J,是Oracle公司提供的官方MySQL数据库适配器,它实现了JDBC接口,使得Java程序员可以方便地在MySQL数据库上执行SQL语句和处理结果。 **1. JDBC基础** JDBC提供了一组接口和类,...

    JDBC:MySQL8.0.29驱动

    使用JDBC驱动进行数据库操作时,开发者还需要注意处理异常、事务管理、连接池的使用等最佳实践,以确保程序的稳定性和效率。例如,使用try-with-resources语句自动关闭资源,以及使用连接池如HikariCP或C3P0来管理...

    mysql-jdbc

    MySQL-JDBC是Java开发者在应用程序中与MySQL数据库交互的标准方式。JDBC(Java Database Connectivity)是Java平台中用于规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。本...

    PB通过JDBC连MYSQL教程

    JDBC(Java Database Connectivity)是Java语言中用于连接数据库的标准API,而MySQL则是一种广泛使用的开源关系型数据库管理系统。本教程将深入探讨如何使用PB通过JDBC来连接MySQL数据库。 首先,我们需要确保已经...

    JAVA JDBC MYSQL连接源代码

    10. **源代码**: 压缩包中的"Java JDBC MYSQL"可能是包含示例代码的文件,你可以参考这些代码了解如何在实际项目中设置JDBC连接,执行SQL,以及处理结果。 在实际开发中,除了基本的连接和查询,你可能还需要处理...

    Mysql5.6、Mysql5.7 JDBC驱动

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而JDBC(Java Database Connectivity)是Java语言与数据库交互的标准接口。本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-...

    jdbc.zip_JDBC mysql java_mysql jdbc

    7. **事务处理**:理解事务的ACID特性,学会使用`Connection.commit()`和`Connection.rollback()`进行事务提交和回滚。 8. **异常处理**:在JDBC编程中,必须正确处理SQLException,确保程序健壮性。 9. **批处理*...

    jdbc+spring+mysql事务理解和分析

    以下是对`jdbc+spring+mysql事务理解和分析`的详细说明: 1. **原子性(Atomicity)**:这是事务的基本特性,表示事务中的所有操作要么全部成功,要么全部回滚。如果在事务执行过程中发生错误,数据库会撤销所有已...

    jdbc mysql dirver.rar

    MySQL JDBC 驱动是Java应用程序连接MySQL数据库的关键组件。JDBC(Java Database Connectivity)是Java平台中的标准接口,允许Java程序与各种数据库进行交互。MySQL JDBC驱动,也称为Connector/J,是Oracle公司为...

    sql和mysql jdbc包

    MySQL支持多种存储引擎,如InnoDB(提供事务处理和行级锁定)、MyISAM(快速读取但不支持事务)等,以满足不同场景的需求。使用JDBC,Java开发者可以轻松地连接到MySQL数据库,执行SQL语句,并处理返回的结果。 ...

    mysql8.0 JDBC驱动

    在MySQL 8.0版本中,JDBC驱动提供了高效、稳定且功能丰富的接口,使开发者能够便捷地在Java应用中执行SQL查询、事务管理和数据操作。 MySQL 8.0带来了许多增强和新特性,例如: 1. **性能提升**:MySQL 8.0通过...

    Java实现的mysql事务处理操作示例

    本文主要介绍了Java实现的mysql事务处理操作,结合实例形式较为详细的分析了Java基于JDBC操作mysql数据库实现事务处理的相关概念、操作技巧与注意事项。 事务处理是数据库操作的一个执行单元,它是一组要么同时执行...

    mysql驱动 jdbc 5.17

    7. **新特性**:在MySQL JDBC 5.17版本中,可能会引入新的API、优化的性能、增强的错误处理机制以及对MySQL新特性的支持,例如JSON列类型、窗口函数等。 8. **兼容性**:虽然版本号为5.17,但要注意MySQL JDBC驱动...

    jdbc-mysql-connection

    这个JAR文件包含了必要的类和资源,使得Java应用程序能够通过JDBC API连接到MySQL服务器,执行SQL查询,处理结果集等操作。 JDBC驱动通常分为四种类型: 1. Type 1(JDBC-ODBC桥接):依赖于系统ODBC驱动,效率较低...

    JDBC连接Mysql数据库案例

    本案例将探讨如何使用JDBC连接MySQL数据库,并通过实际的代码示例讲解整个过程。我们将涉及以下知识点: 1. **JDBC驱动注册**: 在Java中,连接MySQL数据库首先需要加载并注册JDBC驱动。MySQL的JDBC驱动类是`...

    jdbc-MySQL-jar包

    通过JDBC,我们可以执行SQL语句、处理结果集、管理事务等。 2. **mysql-connector-java-5.0.8-bin.jar** 这是MySQL官方提供的Java驱动程序,也被称为MySQL Connector/J。它是JDBC与MySQL数据库之间的桥梁,使得...

    mysql5.7-jdbc.rar

    3. **InnoDB增强**:InnoDB存储引擎在5.7版本中得到了显著加强,包括更快的全文索引、更高的并发事务处理能力以及更好的内存管理。这使得InnoDB更适合大型、高并发的在线事务处理(OLTP)应用。 4. **分区增强**:...

Global site tag (gtag.js) - Google Analytics