📅  最后修改于: 2023-12-03 15:36:49.364000             🧑  作者: Mango
在Java编程中,使用准备好的语句是一种非常有效的方式来预编译SQL语句。这些语句已经由数据库连接程序编译并准备好,因此可以大大提高程序的执行效率。本文将介绍如何在Java中使用准备好的语句来执行SQL语句。
在使用准备好的语句之前,需要先建立一个数据库连接。具体实现方法可以参考以下代码:
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false", "root", "password");
在建立完数据库连接后,需要创建一个PreparedStatement对象,以下代码展示了如何创建一个PreparedStatement对象:
String sql = "INSERT INTO user(name, age) VALUES(?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
在创建PreparedStatement对象之后,可以使用setXXX()方法来设置参数值。这些参数值将用于执行SQL语句中的占位符。以下代码展示了如何设置参数值:
pstmt.setString(1, "张三");
pstmt.setInt(2, 20);
执行SQL语句时,可以调用PreparedStatement对象的execute()或executeUpdate()方法。以下代码展示了如何执行SQL语句:
pstmt.executeUpdate();
下面的示例代码展示了如何使用准备好的语句向MySQL数据库中插入一条记录:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class PreparedStmtDemo {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false", "root", "password");
String sql = "INSERT INTO user(name, age) VALUES(?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.setInt(2, 20);
pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}