Statement和PreparedStatement的区别
首先先说二者联系:
- PreparedStatement继承自Statement
- PreparedStatement与Statement都是接口
然后是二者区别:
- PreaparedStatement是会进行预编译的,而Statement是不会预预编译
于是当我们进行操作时,有时会考虑使用哪一个 。
首先我们先明确,PreparedStatement的对象开销是比Statement大的,但是,它会进行预编译, 也就是说,下一次再使用该对象时,不会再次编译,从而节约了编译时间,而Statement是不会进行预编译的
所以,当我们需要批量处理的时候,就使用PreparedStatement,并且PreparedStatement支持使用占位符
当我们仅需一次性存取时使用Statement。
在这引申一下占位符使用
String sql = ("insert into student values(?,?)");/在这用?代替字符
PreparedStatement preparedStatement = connection.prepareStatement(sql);
在我们需要使用占位符时就:
preparedStatement.setInt(1,6);
preparedStatement.setString(2,张三);
注意,这里student的表列名分别是:id int,name varchar(20)
我们使用set时,第一个参数从1开始写,第二个参数为代替占位符的内容
就例如上述的代码,在表中插入了id:6 name:张三 的一行