📜  如何在Java中使用 PreparedStatement?(1)

📅  最后修改于: 2023-12-03 15:24:32.063000             🧑  作者: Mango

如何在Java中使用PreparedStatement?

PreparedStatement是一种Java提供的用于执行预编译SQL语句的机制。使用PreparedStatement执行SQL语句可以避免SQL注入攻击、提高SQL语句的可读性以及执行效率,特别是在需要执行大量相似SQL语句时,PreparedStatement能够节省编译时间和优化查询计划所需的时间。

使用步骤

使用PreparedStatement执行SQL语句的步骤如下:

  1. 创建数据库连接
  2. 创建PreparedStatement对象
  3. 给SQL语句的占位符设定值
  4. 执行SQL语句并获取结果集
  5. 处理结果集并释放资源

下面是一个简单的例子,实现了通过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对象,而第三步使用了setStringsetInt方法设定SQL语句中的占位符值。执行SQL语句时,使用了executeUpdate方法。对于查询操作,可以使用executeQuery方法来获取ResultSet对象。

总结

通过PreparedStatement执行SQL语句,可以避免SQL注入攻击,提高SQL语句的可读性和执行效率。使用PreparedStatement的步骤包括创建PreparedStatement对象、给占位符设定值、执行SQL语句并获取结果集、处理结果集并释放资源。