Java 根据给定条件,报表和编制报表之间的差异
大多数关系数据库通过四个步骤处理JDBC/SQL查询:Java 根据给定条件,报表和编制报表之间的差异,java,jdbc,Java,Jdbc,大多数关系数据库通过四个步骤处理JDBC/SQL查询: 解析传入的SQL查询 编译SQL查询 规划/优化数据采集路径 执行优化的查询/获取和返回数据 有人能用下面的代码给我解释一下这些步骤吗 Statement st=con.createStatement(); ResultSet rset=st.executeQuerry("Select * from tab"); PrepareStatement stm=con.preparedStatement("select * from tab")
Statement st=con.createStatement();
ResultSet rset=st.executeQuerry("Select * from tab");
PrepareStatement stm=con.preparedStatement("select * from tab");
ResulSet rset=stm.executeQuerry();
与上述内容有什么区别?
PrepareStatement
是预编译的,因此速度更快。当您在select语句中具有where条件时,会出现显著的差异,其中语句
sql查询受sql注入的约束,而使用PrepareStatement
则不受sql注入的影响
当您有DML语句,如INSERT
、UPDATE
、DELETE
等时,同样适用
您可以找到更多详细信息
准备好的语句
查询是在数据库上预编译的,访问计划将被重用以执行进一步的查询,这使它们能够比语句
对象生成的普通查询执行得快得多
PreparedStatement
还允许您编写动态和参数查询。使用参数查询和PreparedStatement
可以防止多种形式的SQL注入,因为作为占位符一部分传递的所有参数都将由JDBC驱动程序自动转义 在多次调用方面,差异将是可见的,因为PreparedStatements
以预编译格式存储,如果驱动程序支持预编译,则con.preparedStatement(“从选项卡中选择*)代码>将把语句发送到数据库进行预编译。你可以在这里看到不同:“acc”是什么意思?