写一个Java多线程操作MySQL的实例。
时间: 2024-03-20 21:41:00 浏览: 14
以下是一个Java多线程操作MySQL的示例代码:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class MySQLThread implements Runnable {
private String url;
private String user;
private String password;
private String sql;
public MySQLThread(String url, String user, String password, String sql) {
this.url = url;
this.user = user;
this.password = password;
this.sql = sql;
}
@Override
public void run() {
try {
Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement ps = conn.prepareStatement(sql);
ps.executeUpdate();
System.out.println(Thread.currentThread().getName() + "执行SQL成功");
} catch (SQLException e) {
System.out.println(Thread.currentThread().getName() + "执行SQL失败:" + e.getMessage());
}
}
}
```
上面的代码定义了一个MySQLThread类,它实现了Runnable接口,可以被多线程调用。在run()方法中,创建一个数据库连接,执行传入的SQL语句,输出执行结果。
调用MySQLThread的示例代码:
```java
public class Test {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
String user = "root";
String password = "123456";
String sql = "INSERT INTO user (name, age) VALUES ('张三', 20)";
for (int i = 0; i < 10; i++) {
new Thread(new MySQLThread(url, user, password, sql), "线程" + i).start();
}
}
}
```
上面的代码创建了10个线程,每个线程都执行一条SQL语句,将一个名为“张三”,年龄为20的用户插入到数据库中。注意,这里的SQL语句是硬编码的,实际应用中应该由外部传入,以便动态生成SQL语句。