欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JDBC中的Statement vs PreparedStatement

程序员文章站 2022-03-03 20:02:37
...

重点内容

(一).PreparedStatement是Statement的子类,我们可以使用PreparedStatement对象将SQL语句发送到数据库中去运行。

(二).Statement和PreparedStatement的区别

1.Statement:statement将SQL发送到数据库之前, JDBC驱动器事先回将SQL编译好。如果statement向数据库发送多条SQL语句,事先也是一样要把SQL语句编译好。

Statement stmt = conn.createStatement();
stmt.executeUpdate("insert into employee(age,name) values(23,'张三')");
stmt.executeUpdate("insert into employee(age,name) values(25,'李四')");
stmt.executeUpdate("insert into employee(age,name) values(23,'王五')");

2.PreparedStatement编译语句一次,使用替换变量修改最后的语句被执行。编译一次,多次执行,因此PreparedStatement是非常有效的方式执行SQL语句。

添加操作

String insertSql = "insert into employee(age,name) values(?,?)";
PreparedStatement ps1 = conn.prepareStatement(insertSql);

ps1.setInt(1, 23);
ps1.setString(2, "张三");
ps1.executeUpdate();

ps1.setInt(1, 25);
ps1.setString(2, "李四");
ps1.executeUpdate();

查询操作


String selectSql = "Select * from User where userid= ?";
PreparedStatement ps3 = conn.prepareStatement(selectSql);
ps3.setString(1, "李四");

修改操作

String sql = "Update employee set name=? where id=1";
PreparedStatement ps3 = conn.prepareStatement(sql);
ps3.setString(1, "科比");
ps3.executeUpdate();

删除操作

String sql=delete from employee where name=?
PreparedStatement ps4 = conn.prepareStatement(sql);
ps4.setString(1, "科比");
ps4.executeUpdate();