执行SQL对象之statement与preparedstatement区别

使用 PreparedStatement 的起因

如果使用 Statement 来发送 SQL 的话,量大时,就会导致访问流量激增。 Statement 对象执行每一条 SQL 语句的时候,都会先把 SQL 语句发送到数据库中,然后进行编译,最 后才能执行。每个sql语句都会生成一个执行计划。 如果说,将来有 1w、10w、100w 条数据的时候,很明显就会造成性能问题。
PreparedStatement 的执行原理
如果使用了 PreparedStatement 类

step1:首先会将你的 SQL 发送到数据库中进行预编译动作
step2:然后会直接引用预编译之后的结果。
ps:如果你的SQL需要传递参数的话,也可以多次传入不同的参数给这个对象并执行。

不管有多少条 SQL 插入语句,数据库只需要预编译一次即可,可以传入多次参数,并执行。这里主要 是减少了预编译的次数,提高了执行的效率。 statement:
执行静态SQL语句,每次执行语句时,数据库都要执行SQL的编译操作,效率低下,并且有参数时还需要去接字符串,使用起来麻烦,不能防止SQL注入
preparedstatement:
执行动态SQL语句,预编译SQL语句,执行效率高,安全性好,代码可读性高,有参数时可以使用占位符,更方便,可防止SQL注入

发布了14 篇原创文章 · 获赞 16 · 访问量 306

猜你喜欢

转载自blog.csdn.net/qq_41490938/article/details/104845142
今日推荐