📅  最后修改于: 2023-12-03 15:24:32.063000             🧑  作者: Mango
PreparedStatement是一种Java提供的用于执行预编译SQL语句的机制。使用PreparedStatement执行SQL语句可以避免SQL注入攻击、提高SQL语句的可读性以及执行效率,特别是在需要执行大量相似SQL语句时,PreparedStatement能够节省编译时间和优化查询计划所需的时间。
使用PreparedStatement执行SQL语句的步骤如下:
下面是一个简单的例子,实现了通过PreparedStatement插入一条记录到数据库:
import java.sql.*;
public class Demo {
public static void main(String[] args) {
// 1. 创建数据库连接
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, username, password)) {
// 2. 创建PreparedStatement对象
String sql = "INSERT INTO user (name, age) VALUES (?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
// 3. 给SQL语句的占位符设定值
stmt.setString(1, "Tom");
stmt.setInt(2, 18);
// 4. 执行SQL语句
int rows = stmt.executeUpdate();
System.out.println(rows + " rows have been inserted.");
// 5. 释放资源
stmt.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
上面的例子演示了如何通过PreparedStatement插入一条记录到数据库。其中,第二步创建了PreparedStatement对象,而第三步使用了setString
和setInt
方法设定SQL语句中的占位符值。执行SQL语句时,使用了executeUpdate
方法。对于查询操作,可以使用executeQuery
方法来获取ResultSet对象。
通过PreparedStatement执行SQL语句,可以避免SQL注入攻击,提高SQL语句的可读性和执行效率。使用PreparedStatement的步骤包括创建PreparedStatement对象、给占位符设定值、执行SQL语句并获取结果集、处理结果集并释放资源。