使用 com.mysql.cj.jdbc.PreparedStatement 类
时间: 2023-06-21 21:04:54 浏览: 202
com.mysql.cj.jdbc.PreparedStatement 类是用于执行预编译 SQL 语句并传递参数的 JDBC 接口。它是 java.sql.PreparedStatement 接口的实现类,用于与 MySQL 数据库进行交互。
通过使用 PreparedStatement,可以有效地防止 SQL 注入攻击,提高执行 SQL 语句的效率,并且可以重复使用已经编译好的语句,从而提高应用程序的性能。
以下是使用 com.mysql.cj.jdbc.PreparedStatement 类执行 SQL 查询的示例代码:
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC";
String username = "root";
String password = "123456";
try (Connection conn = DriverManager.getConnection(url, username, password)) {
String sql = "SELECT * FROM users WHERE age > ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 18);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("name") + ", " + rs.getInt("age"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先创建了一个 Connection 对象,然后使用 prepareStatement() 方法创建了一个 PreparedStatement 对象。在 SQL 语句中,我们使用了一个占位符 ? 来表示参数,然后使用 setInt() 方法为占位符设置参数值。最后,使用 executeQuery() 方法执行 SQL 查询,并遍历 ResultSet 对象来获取查询结果。
阅读全文