关于PreparedStatement:
1.PreparedStatement是Statement的子接口,作用与Statement一样
2.PreparedStatement特点:
使用PreparedStatement可以执行动态参数化sql(在sql语句中用占位符?);
3.PreparedStatement原理:
在我们调用创建PreparedStatement 对象 pstm时候,我们需要将一个半成品sql语句交给pstm,pstm拿着这个sql先发送到数据库,进行预编译(检查语法,检查权限),当我们调用pstm.setXXX()的时候,再一起把占位符设置的动态参数值一起发送到数据库执行,不用再编译当前的sql语句,这样可以大大的节省时间,提高运行效率。
Statement与PreparedStatement的区别【重点】
1.使用statement执行sql语句,是以字符串拼接的方式,给sql语句加入参数,这个时候存在sql注入危险。
2.使用PreparedStatement 可以避免sql注入(安全)
3.使用PreparedStatement,代码的可读性高,可维护性好,可以提高运行效率。
什么是sql注入?
一些黑客,将一些特殊的字符通过字符串拼接的方式注入到sql语句中,改变sql语句原有的运行逻辑,从而威胁到数据库的安全,这种现象叫做sql注入。
代码示例:(待续…)