一、请使用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);
}
}
相关推荐
##### 启用事务处理 在使用事务时,首先需要关闭自动提交模式,然后执行一系列的操作,并在最后通过`commit()`方法显式提交事务。 ```java Class.forName("com.mysql.jdbc.Driver"); Connection conn = ...
封装了java使用jdbc对mysql的操作,以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了...
MySQL JDBC驱动,也称为Connector/J,是Oracle公司提供的官方MySQL数据库适配器,它实现了JDBC接口,使得Java程序员可以方便地在MySQL数据库上执行SQL语句和处理结果。 **1. JDBC基础** JDBC提供了一组接口和类,...
使用JDBC驱动进行数据库操作时,开发者还需要注意处理异常、事务管理、连接池的使用等最佳实践,以确保程序的稳定性和效率。例如,使用try-with-resources语句自动关闭资源,以及使用连接池如HikariCP或C3P0来管理...
MySQL-JDBC是Java开发者在应用程序中与MySQL数据库交互的标准方式。JDBC(Java Database Connectivity)是Java平台中用于规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。本...
JDBC(Java Database Connectivity)是Java语言中用于连接数据库的标准API,而MySQL则是一种广泛使用的开源关系型数据库管理系统。本教程将深入探讨如何使用PB通过JDBC来连接MySQL数据库。 首先,我们需要确保已经...
10. **源代码**: 压缩包中的"Java JDBC MYSQL"可能是包含示例代码的文件,你可以参考这些代码了解如何在实际项目中设置JDBC连接,执行SQL,以及处理结果。 在实际开发中,除了基本的连接和查询,你可能还需要处理...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而JDBC(Java Database Connectivity)是Java语言与数据库交互的标准接口。本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-...
7. **事务处理**:理解事务的ACID特性,学会使用`Connection.commit()`和`Connection.rollback()`进行事务提交和回滚。 8. **异常处理**:在JDBC编程中,必须正确处理SQLException,确保程序健壮性。 9. **批处理*...
以下是对`jdbc+spring+mysql事务理解和分析`的详细说明: 1. **原子性(Atomicity)**:这是事务的基本特性,表示事务中的所有操作要么全部成功,要么全部回滚。如果在事务执行过程中发生错误,数据库会撤销所有已...
MySQL JDBC 驱动是Java应用程序连接MySQL数据库的关键组件。JDBC(Java Database Connectivity)是Java平台中的标准接口,允许Java程序与各种数据库进行交互。MySQL JDBC驱动,也称为Connector/J,是Oracle公司为...
MySQL支持多种存储引擎,如InnoDB(提供事务处理和行级锁定)、MyISAM(快速读取但不支持事务)等,以满足不同场景的需求。使用JDBC,Java开发者可以轻松地连接到MySQL数据库,执行SQL语句,并处理返回的结果。 ...
在MySQL 8.0版本中,JDBC驱动提供了高效、稳定且功能丰富的接口,使开发者能够便捷地在Java应用中执行SQL查询、事务管理和数据操作。 MySQL 8.0带来了许多增强和新特性,例如: 1. **性能提升**:MySQL 8.0通过...
本文主要介绍了Java实现的mysql事务处理操作,结合实例形式较为详细的分析了Java基于JDBC操作mysql数据库实现事务处理的相关概念、操作技巧与注意事项。 事务处理是数据库操作的一个执行单元,它是一组要么同时执行...
7. **新特性**:在MySQL JDBC 5.17版本中,可能会引入新的API、优化的性能、增强的错误处理机制以及对MySQL新特性的支持,例如JSON列类型、窗口函数等。 8. **兼容性**:虽然版本号为5.17,但要注意MySQL JDBC驱动...
这个JAR文件包含了必要的类和资源,使得Java应用程序能够通过JDBC API连接到MySQL服务器,执行SQL查询,处理结果集等操作。 JDBC驱动通常分为四种类型: 1. Type 1(JDBC-ODBC桥接):依赖于系统ODBC驱动,效率较低...
本案例将探讨如何使用JDBC连接MySQL数据库,并通过实际的代码示例讲解整个过程。我们将涉及以下知识点: 1. **JDBC驱动注册**: 在Java中,连接MySQL数据库首先需要加载并注册JDBC驱动。MySQL的JDBC驱动类是`...
通过JDBC,我们可以执行SQL语句、处理结果集、管理事务等。 2. **mysql-connector-java-5.0.8-bin.jar** 这是MySQL官方提供的Java驱动程序,也被称为MySQL Connector/J。它是JDBC与MySQL数据库之间的桥梁,使得...
3. **InnoDB增强**:InnoDB存储引擎在5.7版本中得到了显著加强,包括更快的全文索引、更高的并发事务处理能力以及更好的内存管理。这使得InnoDB更适合大型、高并发的在线事务处理(OLTP)应用。 4. **分区增强**:...