首页 > 试题广场 >

以下可以正确获取结果集的有

[不定项选择题]
  • Statement sta=con.createStatement();
    ResultSet rst=sta.executeQuery("select * from book");
  • Statement sta=con.createStatement("select * from book"); 
    ResultSet rst=sta.executeQuery();
  • PreparedStatement pst=con.prepareStatement();
    ResultSet rst=pst.executeQuery("select * from book");
  • PreparedStatement pst=con.prepareStatement("select * from book");
    ResultSet rst=pst.executeQuery();
推荐
A,D是正确的;创建Statement是不传参的,PreparedStatement是需要传入sql语句
编辑于 2015-03-31 10:26:06 回复(8)
说一下preparedStatement和statement的区别与联系:在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement。   PreparedStatement 接口继承 Statement   PreparedStatement 实例包含已编译的 SQL 语句, 所以其执行速度要快于 Statement 对象。 Statement为一条Sql语句生成执行计划, 如果要执行两条sql语句
select colume from table where colume=1;select colume from table where colume=2; 会生成两个执行计划 一千个查询就生成一千个执行计划! PreparedStatement用于使用绑定变量重用执行计划 select colume from table where colume=:x; 通过set不同数据只需要生成一次执行计划,可以重用
发表于 2015-08-16 14:07:55 回复(15)
我:题目???
发表于 2022-05-11 07:04:38 回复(4)
1、   PreparedStatement 继承 Statement   PreparedStatement 实例包含已编译的 SQL 语句, 所以其执行速度要快于 Statement 对象。
2、作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。三种方法
      execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数
3. PreparedStatement尽最大可能提高性能. 最重要的一点是极大地提高了安全性.

编辑于 2016-01-10 20:09:39 回复(1)
AD:看了下面几位前辈的解释,想要补充下:因为preparedStatement是预编译的,所以在创建preparedstatement的时候,将sql语句传入preparedstatement的构造方法,而这个带有参数的构造方法内部,我估计就是处理预编译的代码(各位可以查下构造方法源代码,确定下),作为预编译。而statement是没有预编译的,只能在执行的时候,具体传入sql语句。
编辑于 2015-03-31 10:25:23 回复(1)
成功避开所有正确答案
发表于 2019-02-27 18:29:59 回复(1)
只有我没看到题目吗?😂
发表于 2022-04-14 15:37:05 回复(0)
请大家注意这句con.preparedStatement(String sql);
API 中是 prepareStatement(String sql)
创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。

所以答案只能是A 不存在prepared Statement方法
编辑于 2015-04-14 10:30:54 回复(2)
A,D是正确的,Statement 是不能传参数的,PreparedStatement是需要传参数的。
发表于 2015-03-12 09:35:49 回复(0)
我能说A选项多了<br>,这能编译通过吗?
发表于 2018-04-07 12:57:18 回复(3)
并且使用PreparedStatement可以防止注入式攻击
发表于 2015-04-05 17:12:13 回复(1)
第一句中间加个<br>,WTF?????
发表于 2018-03-25 21:45:02 回复(2)

使用PreparedStatement的好处:

1.提高可读性和可维护性;
2.最大程度的提高性能。PreparedStatement的第一次执行消耗是很高的. 它的性能体现在后面的重复执行(缓存的作用). 例如, 假设我使用Employee ID, 使用prepared的方式来执行一个针对Employee表的查询. JDBC驱动会发送一个网络请求到数据解析和优化这个查询. 而执行时会产生另一个网络请求.

3.防止SQL注入

PreparedStatement的使用:

String sql = "select distinct loan_type from loan where bank=?";
PreparedStatement preStatement = conn.prepareStatement(sql);
preStatement.setString(1, "Citibank");
ResultSet result = preStatement.executeQuery();

Statement的使用:

String sql = "select * from users where username='" + username + "' AND " + "password='" + password + "'";
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
编辑于 2018-03-15 16:47:25 回复(0)
statement是不传入参数的,PreparedStatement是要传入sql语句的,通过PreparedStatement方式可以防止sql注入
发表于 2015-08-11 00:04:17 回复(0)
PreparedStatement 会先预编译,需要sql作为参数,从而防止SQL的注入攻击
发表于 2019-03-23 16:11:20 回复(0)
A ,D   java数据库接口定义方法
发表于 2015-03-11 11:09:47 回复(0)
创建Statement是不传参的,PreparedStatement是需要传入sql语句
发表于 2021-10-31 20:17:32 回复(0)
记住:创建Statement是不传参的,preparedStatement是需要传参的。
发表于 2019-02-18 10:53:52 回复(0)
AD:看了下面几位前辈的解释,想要补充下:因为preparedStatement是预编译的,所以在创建preparedstatement的时候,将sql语句传入preparedstatement的构造方法,而这个带有参数的构造方法内部,我估计就是处理预编译的代码(各位可以查下构造方法源代码,确定下),作为预编译。而statement是没有预编译的,只能在执行的时候,具体传入sql语句。
发表于 2018-10-28 15:34:11 回复(0)
PreparedStatement是预编译指令,查询结果只需要执行executeQuery()就行了。
发表于 2015-11-22 20:57:54 回复(0)
A D
con.preparedStatement(String sql);
API 中是 prepareStatement(String sql) 
创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
发表于 2015-08-24 10:48:42 回复(0)