通过Statement对象可以给数据库发送SQL语句,数据库中的SQL解释器负责把SQL语句生成底层的内部命令,然后执行命令,完成操作,如果不断向数据库发送SQL语句,就会增加SQL解释器的负担而降低运行速度。通过Connection对象的preparedStatement(String sql)方法对SQL语句进行预处理,生成数据库底层的命令,并将该命令封装在PreparedStatement对象(PreparedStatemen类继承自Statement类)中,然后调用该类的方法,可执行底层数据库命令,则无需数据库自己解释SQL语句了。这样可以大大地增加数据库的执行速度。对SQL进行预处理时可以使用通配符“?”来代替任何字段,如:
PreparedStatement 对象名=Connection对象.PreparedStatement(“SELECT * FROM 表名 WHERE 字段=?”);
PreparedStatement对象名.setString(int number,x);
其中number表示第几个通配符“?”,x表示通配符代表的字段字段内容。
示例如下:
对比直接发送SQL语句:预处理把Statement对象改成了PreparedStatement对象,PreparedStatement对象调用preparedStatement(String sql)方法,无需在ResultSet对象的方法中的参数输入SQL语句。
