当重复执行多次一个sql,而只是参数不同时,执行多少次sql
一、Statement为一条Sql语句生成执行计划
Statement就会生成多少个个执行计划,而且每次都是从零开始执行,效率不高;
Statement会将变量直接用于sql,这点也不安全。
二、PreparedStatement只生成一个执行计划
而PreparedStatement只生成一次执行计划,对sql语句进行了预处理,通过绑定变量,每次改变变量的值,来进行新的查询,效率较高;
PreparedStatement会将变量强制类型转换,然后装入sql语句的“?”中,比较安全对于库中数据类型来说。
preparedStatement.setDate(1, java.sql.Date.valueOf(dtstr)); preparedStatement.setString(2,orderId); preparedStatement.setString(3,popuId);
当执行一次或者少量若干次语句
当sql语句执行少次时,最好还是用statement,虽然PreparedStatement操作的比较快,但是系统开销 比较大