Java实现多线程并发带参数查询数据库
时间: 2023-07-11 12:26:40 浏览: 258
在Java中实现多线程并发带参数查询数据库,可以使用JDBC连接数据库,然后创建多个线程执行查询操作。以下是一个示例代码:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class QueryThread implements Runnable {
private String param;
public QueryThread(String param) {
this.param = param;
}
@Override
public void run() {
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE name = ?");
stmt.setString(1, param);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("name") + ": " + rs.getInt("age"));
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public class Main {
public static void main(String[] args) {
String[] params = {"Alice", "Bob", "Charlie"};
for (String param : params) {
new Thread(new QueryThread(param)).start();
}
}
}
```
在这个示例中,我们创建了一个`QueryThread`类,它实现了`Runnable`接口,可以在多个线程中执行查询操作。在`run()`方法中,我们连接到数据库,创建一个预编译的查询语句,并将参数设置为`param`。然后执行查询,遍历结果集并输出查询结果。最后关闭结果集、语句和连接。
在`Main`类中,我们创建了多个`QueryThread`线程,并启动它们来执行查询操作。每个线程都传入不同的参数,这样可以并发地查询不同的数据,提高查询效率。
阅读全文