快速导航
×在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同jdbc的statement的区别的 Statement 对象生成jdbc的statement的区别的如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它PreparedStatement是Sta。
每次都会执行SQL语句,相关数据库都要执行SQL语句的编译Statement为一条Sql语句生成执行计划,如果要执行两条sql语句 select colume from table where colume=1select colume from table where colume=2会生成两个执行计划 一千个查询就生成一千个执行计划。
在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement也就是说,在任何时候都不要使用Statement 一代码的可读性和可维护性虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说都比直接用Statement的代码高很多档次stmt。
PreparedStatement 数据库会对sql语句进行预编译,下次执行相同的sql语句时,数据库端不会再进行预编译jdbc的statement的区别了,而直接用数据库的缓冲区,提高数据访问的效率但尽量采用使用号的方式传递参数,如果sql语句只执行一次,以后不再复用 从安全性上来看,PreparedStatement是通过?来传递参数的,避免了拼sql。
JDBCAPI主要位于JDK中的javasql包中之后扩展的内容位于javaxsql包中,主要包括斜体代表接口,需驱动程序提供者来具体实现负责加载各种不同驱动程序Driver,并根据不同的请求,向调用者返回相应的数据库连接ConnectionDriver驱动程序,会将自身加载到中去,并处理相应的请求并返回。
如果单独用来查询,并且没有条件,这两个是没区别的如果sql中有参数,则使用Statement 会存在sql注入的问题使用PrepareStatement在执行时会进行预编译,sql语句中使用?代替具体的参数,在真正用到的时候再进行传参。
面试知识点了解JDBC的定义核心类及其功能掌握JDBC的使用步骤,包括注册驱动获取连接获取Statement和执行SQL语句理解PreparedStatement如何防止SQL注入攻击,并知道其与Statement的区别熟悉JDBC的异常处理机制,包括SQLException及其子类了解JDBC的事务管理,包括开启事务提交事务和回滚事务的方法。