PreparedStatement是Statement的一个子接口,从它的名字就可以看出,它是"准备好了"的Statement,所以它表示的是将一条sql语句进行预编译;要获取它的对象可以通过Connection中的prepareStatement(String sql)方法来获取,其中的参数为带有占位符( ? )的sql语句,所以它其中提供了补充占位符变量值的一些setXxx()方法;
看到这里很多人就在想,既然我已经可以用Statement接口来实现更新等操作,那为何要用PreparedStatement接口呢。。。想必我们每个人在使用Statement接口时,都要编SQL语句吧。。那么在编写的时候的一个最大的问题就是。。拼SQL语句太郁闷了,一不小心就容易出错,而且维护起来又很麻烦,比如下面这个SQL语句(例子来源于我自己写的一个程序)
现在,本地数据库中有这样一个表
现在我想向表中插入Student的数据,如果利用Stetement接口,那么写入的sql语句应该为:
public void addStudent(Student stude