标签:语句 存储 PreparedStatement 编译 Statement SQL 秋招
Statement和PreparedStatement都是数据库用于执行SQL语句的句柄,但是PreparedStatement代表一个预编译的SQL。
以下是PreparedStatement和Statement的区别,也是PreparedStatement相对Statement的优势。
1.PreparedStatement接口代表预编译的语句,它主要的优势是可以减少SQL的编译错误并增加SQL的安全性,减少SQL注入的可能性。
2.PreparedStatement中的SQL语句是可以带参数的,避免了使用字符串连接拼接SQL语句的麻烦和不安全。
3.当批量处理SQL或频繁执行相同的查询时,PreparedStatement有明显的性能上的优势,由于数据库可以将编译优化后的SQL语句缓存起来,下次执行相同结构的语句时就会很快,不用再次编译和生成执行计划。
所以总体上,PreparedStatement在使用和性能方面都比Statement更有优势。
补充:为了提供对存储过程的调用,jdbc api还提供了CallableStatement接口,存储过程(Stored Procedure)是数据库中一组为了完成特定功能的SQL语句的集合,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果存储过程需要传入参数)来执行它。虽然调用存储过程在网络开销、安全性、性能上有很多好处,但是如果底层数据库发生迁移就会有很多麻烦,因为每种数据库的存储过程在书写上存在不少差别。
标签:语句,存储,PreparedStatement,编译,Statement,SQL,秋招 来源: https://www.cnblogs.com/wenbinshen/p/11181485.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。