Sum*_*mit 6 java sql database jdbc prepared-statement
我在互联网上阅读了它,但我无法得到某些查询的答案。
一季度。据说在执行PreparedStatement时,DBMS可以直接运行PreparedStatement SQL语句,无需先编译。我的问题是当preparedStetement.execute() 被调用时会发生什么?(我的理解:没有任何参数的sql被发送到DBMS,由DBMS编译和缓存以备将来使用。然后发送参数&DBMS用占位符替换它们&执行。)
Q2。如果下次我使用相同的 sql 执行 PreparedStetement.execute() 那么会发生什么?(我的理解:DBMS 将 sql 与之前的 sql 进行比较,如果匹配则采用编译后的 sql,替换参数并执行。)
Q3。如果我偶尔调用数据库,那么准备好的语句不会帮助我提高性能,因为在此期间数据库缓存将被清除。所以每次都会编译sql。对?
java.sql.PreparedStatement
是JRE定义的API。
实际的内部行为execute()
取决于 DBMS 供应商提供的 JDBC 驱动程序实现。
例如,有一些sending statement to server
没有意义的嵌入式数据库(SQLite、H2)。
您应该查阅您正在使用的 JDBC 驱动程序的文档。