大家都知道PerparedStatement是Statement的子类,处于对数据库性能优化来说,使用PerparedStatement是一个优化的操作之一,首先相对Statement比较,PerparedStatement可以处理数据库语言的一些保留的关键字,例: 当你传进啊的参数name="'or 1 or'"
conn.createStament();
String sql= "select * from User where name='"+name+"";
rs = st. executeQuery(sql);
这样当你用Statement创建的对象对这种特殊参数没有处理能力,导入错误的数据,查询出所有用户姓名,如果使用PerparedStatement创建的对象可以处理过滤这些关键字。
PerparedStatement ps;
String sql= "select * from User where name=?";
ps=con.perpareStament(sql);
ps.setString(1,name);
rs=psexecuteQuery();//不需要传sqk语句
这样查询的结果就不会因为关键字的操作导致数据出错。
还有个原因就是Statement的执行速度要比PerparedStatement要慢,特别是大的数据量体现的更为明显。