AI智能
改变未来

execute,executeQuery,executeUpdate的区别,PreparedStatement的优点,ResultSet是?

1.execute,executeQuery,executeUpdate的区别是什么?

a、Statement的execute(String  query)方法用来执行任意的SQL查询,如果查询的结果是一个ResultSet,这个方法就返回true。如果结果不是ResultSet,比如insert或者update查询,它就会返回false。b、Statement的executeQuery(String query)接口用来执行select查询,并且返回ResultSet。即使查询不到记录返回的ResultSet也不会为null。我们通常使用executeQuery来执行查询语句,这样的话如果传进来的是insert或者update语句的话,它会抛出错误信息为 “executeQuery method can not be used for update”的java.util.SQLException。c、Statement的executeUpdate(String query)方法用来执行insert或者update/delete(DML)语句。d、只有当你不确定是什么语句的时候才应该使用execute()方法,否则应该使用executeQuery或者executeUpdate方法。

2.JDBC的PreparedStatement是什么?

PreparedStatement对象代表的是一个预编译的SQL语句。用它提供的setter方法可以传入查询的变量。由于PreparedStatement是预编译的,通过它可以将对应的SQL语句高效的执行多次。由于PreparedStatement自动对特殊字符转义,避免了SQL注入攻击,因此应当尽量的使用它。

3.相对于Statement,PreparedStatement的优点是什么?

a、PreparedStatement有助于防止SQL注入,因为它会自动对特殊字符转义。b、PreparedStatement可以用来进行动态查询。c、PreparedStatement执行更快。尤其当你重用它或者使用它的拼量查询接口执行多条语句时。d、使用PreparedStatement的setter方法更容易写出面向对象的代码,而Statement的话,我们得拼接字符串来生成查询语句。如果参数太多了,字符串拼接看起来会非常丑陋并且容易出错。

3.JDBC的ResultSet是什么?

在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表。ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了, next()方法会返回false。可以在for循环中用它来遍历数据集。

4.java.util.Date和java.sql.Date有什么区别?

java.util.Date包含日期和时间,而java.sql.Date只包含日期信息,而没有具体的时间信息。如果你想把时间信息存储在数据库里,可以考虑使用Timestamp或者DateTime字段。
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » execute,executeQuery,executeUpdate的区别,PreparedStatement的优点,ResultSet是?