- 当用name作为参数时, 如果名字里面含有or 等带有歧义的情况时, 或导致错误。比如String name = "or 1 or "将导致全部的记录都会被输出。这种错误叫做sql注入。我们需要将过滤的工作交给数据库来处理。即PreparedStatement ps.
例子如下:
PreparedStatement ps = null;
String sql = "select id, name from user where name=?";
ps = conn.prepareStatement(sql);
ps.setString(1,name);
rs = ps.executeQuery();
2.PreparedStatement 除了具有上面过滤处理的优点,后具有效率的优点。