PreparedStatement从Statement继承而来。
同构sql:sql语句基本一样,只是具体参数数值不同。
异构sql:sql语句完全不一样。
Statement不足:
1.?效率比较低?2.?对字段类型的支持比较差?3.?语法含义不清晰(结构不清楚)。
由于编译不需要参数,PreparedStatement可以使用“?”来替代sql语句中的某些参数,它先将不带参数的sql语句发送到数据库,进行预编译,然后PreparedStatement会再将设置好的参数发送给数据库。
在使用PreparedStatement设置相应参数时,要指明参数的位置和类型,以及给出参数的具体值,根据不同的参数类型使用不同的setXXX(参数的位置,参数值)来设置参数。
如:String?sql=”update?student?set?name=??where?id=4;”
//其中的?代表占位符,在这里并没有设置具体值。
PreparedStatement?pstm=con.prepareStatement(sql);
//?sql语句已经发送到数据库去编译了,即预编译。