日期:2014-05-16  浏览次数:20449 次

Statement和PreparedStatement区别:

PreparedStatementStatement继承而来。

同构sqlsql语句基本一样,只是具体参数数值不同。

异构sqlsql语句完全不一样。

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语句已经发送到数据库去编译了,即预编译。