1.创建PreparedStatement:
PreparedStatement 对象名 = Connection对象.prepareStatement (String sql);
其中,sql语句形如:Insert into tb_user value(?,?,?),?为占位符
2.使用PreparedStatement的好处:
往PreparedStatement里写入参数,通过PreparedStatement的setString(),等方法来给占位符进行赋值,使得sql语句变得灵活。package PlasticWeaving.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class JDBC使用PreparedStatement对象更新数据 {
public static void main(String[] args) {
String url="jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8";
String user="root";
String passwd="123456";
try {
//2.加载并注册驱动程序
Class.forName("com.mysql.jdbc.Driver");
//3.创建一个Connection对象
//DriverManager.getConnection("url","用户名","密码")
Connection con = DriverManager.getConnection(url,user,passwd);
//4.创建一个PreparedStatement对象,使用预编译语句更新数据
PreparedStatement psm = con.prepareStatement("insert into goods value(?,?,?,?,?)");
//setXxx(int index,Object val)设置占位符的值
psm.setString(1,"4");
psm.setString(2,"香蕉");
psm.setString(3,"1");
psm.setString(4,"2021-08-28");
psm.setString(5,"129");
//5.执行更新操作,对数据库进行更新,executeUpdate()
int count = psm.executeUpdate();
System.out.println(count);
//6.关闭连接和Statement对象
psm.close();
con.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}