在Java中,可以使用try-catch语句捕获MySQL死锁异常,然后进行重试。以下是一个示例代码:,,“java,import java.sql.Connection;,import java.sql.DriverManager;,import java.sql.PreparedStatement;,import java.sql.SQLException;,,public class MySQLDeadlockRetry {, public static void main(String[] args) {, int maxRetries = 3;, for (int i = 0; i < maxRetries; i++) {, try {, // 连接数据库, Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "username", "password");, // 执行操作, PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO table_name (column1, column2) VALUES (?, ?)");, preparedStatement.setString(1, "value1");, preparedStatement.setString(2, "value2");, preparedStatement.executeUpdate();, // 关闭连接, preparedStatement.close();, connection.close();, break; // 如果成功,跳出循环, } catch (SQLException e) {, if (e.getErrorCode() == 1213) { // MySQL错误码1213表示死锁, System.out.println("发生死锁,正在重试...");, continue; // 重试, } else {, e.printStackTrace();, break; // 如果发生其他异常,跳出循环, }, }, }, },},“
在Java中连接MySQL数据库,首先需要导入JDBC驱动,然后通过DriverManager获取数据库连接,以下是详细的步骤:
1、添加JDBC驱动到项目中

下载MySQL的JDBC驱动(mysqlconnectorjavax.x.xx.jar),可以从官网下载:https://dev.mysql.com/downloads/connector/j/
将下载的jar文件添加到项目的类路径中

2、编写Java代码连接MySQL数据库
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQLDemo {
public static void main(String[] args) {
// 加载驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
// 连接数据库
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
String user = "root";
String password = "your_password";
try (Connection connection = DriverManager.getConnection(url, user, password)) {
// 创建Statement对象
try (Statement statement = connection.createStatement()) {
// 执行SQL查询
String sql = "SELECT * FROM users";
try (ResultSet resultSet = statement.executeQuery(sql)) {
// 处理查询结果
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String email = resultSet.getString("email");
System.out.println("ID: " + id + ", Name: " + name + ", Email: " + email);
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们首先加载了MySQL的JDBC驱动,然后使用DriverManager.getConnection()方法连接到本地的MySQL数据库,接着,我们创建了一个Statement对象,并执行了一个SQL查询,我们遍历查询结果并打印出来。

注意:请将your_password替换为实际的MySQL数据库密码。



评论(0)