论PrepareStatement相对于Statement的优点在于哪里?
1、防止了之前使用Statement产生的sql注入问题。
最核心的原理就是PrepareStatement可以使用占位符预编译sql语句
比如登陆的sql在where条件里面
where username=? and password=?
这里是完全依据and条件的,不管你两个占位符里面填充的是什么。
但是之前的statement不能使用占位符,就可以在两边写or关键字来破坏and逻辑,造成永远的登录成功,这就是所谓的sql注入问题
2、PrepareStatement可以操作Blob的数据类型,而Statement不能,PrepareStatement可以处理图片视频等数据。
3、PrepareStatement对于批量操作数据库更加高效,毕竟它可以预编译sql,将sql的模板先加载到缓存,之后sql的执行并不需要执行10000次,但是Statement的每条sql都需要执行,效率很低。
(附加JDBC总结)