JSP实用简明教程(第二版) 教学课件 作者 978 7 302 20085 7 chapter07.pptVIP

  • 5
  • 0
  • 约3.14万字
  • 约 63页
  • 2017-08-19 发布于广东
  • 举报

JSP实用简明教程(第二版) 教学课件 作者 978 7 302 20085 7 chapter07.ppt

四、查询记录 DBC提供了三种接口来实现SQL语句的发送执行,它们分别是Statement、PreparedStatement和CallableStatement。PreparedStatement继承了Statement,而CallableStatement又从PreparedStatement继承而来。它们用于执行不同的SQL语句:Statement接口的对象用于执行简单的不带参数的SQL语句;PreparedStatement接口的对象用于执行带有IN类型参数的预编译过的SQL语句;而CallableStament接口的对象用于执行一个数据库的存储过程。这里主要介绍最常用的Statement类。 1.Statement类 使用Statement类来发送执行SQL语句前首先要创建Statement对象实例。Statement对象实例可以通过Connection类提供的createStatement()方法来创建,代码如下: Statement stmt = connection.creatStatement(int type,int concurrency); 其中type参数有两个取值: ● ResultSet.TYPE_SCROLL_INSENSITIVE:游标上下滚动,数据库变化时,当前结果集不变。 ● ResultSet.TYPE-SCROLL_SENSITIVE:游标上下滚动,数据库变化时,结果集随之变动 Concurrency参数用来指定是否可以用结果集更新数据库,它也有两种取值: ● ResultSet.CONCUR_READ_ONLY:不能用结果集更新数据库中的表 ● ResultSet.CONCUR_UPDATETABLE:可以更新数据库中的表。 2、JSP发送执行查询语句 四、查询记录 Statement类提供了三种执行方法,即用来执行查询操作的executeQuery()、用来执行更新操作的executeUpdate()和用来执行动态的未知的操作的execute()。 创建好Statement对象实例后,就可以使用它发送执行SQL语句了。Statement类提供的executeQuery()方法用来执行查询语句SELECT。execQuery()方法用来执行一个产生单个结果集的查询语句,它只有一个String对象参数,即一个SQL的SELECT语句,它返回一个ResultSet类的对象。例如下面的一行代码将返回从stu_info表中查询到的所有学生记录,并将它们保存到ResultSet对象rs中: ResultSet rs = stmt.executeQuery(SELECT * FROM stu_info); 一个Statement对象同时只能有一个结果集在活动,这是宽容性的,也就是说即使没有调用ResultSet的close()方法,只要打开第二个结果集就隐含着对上一个结果集的关闭,所以如果想同时对多个结果集操作,就要创建多个Statement对象,如果不需要同时操作,那么可以在一个Statement对象上须序操作多个结果集。 Statement类还提供了一些方法用来设置和获取查询选项,如setMaxRow()和getMaxRow()方法用来设置和获取结果集能容纳的最多行数;setQueryTimeOut()和getQueryTimeOut()方法用来设置和获取一个语句的执行等待时间(以秒为单位)。 使用完Statement对象后,应该使用close ()方法将其关闭,以释放它占用的资源。代码如下: stmt.close(); 2、JSP发送执行查询语句 四、查询记录 2.PreparedStatement类 如果数据库支持预编译,这时可以使用 PreparedStatement接口,它可以将SQL语句传给数据库做预编译,以后每次执行这个SQL语句时,速度就可以提高很多。 PreparedStatement提供了传递使用参数的预编译SQL语句的有效机制,它执行的SQL语句可以包含一个或多个的IN参数。所谓IN参数是指那些在SQL语句创立时尚未指定值的参数,在SQL语句中IN参数的值用问号(“?”)来代替。例如,下面的代码创建的PreparedStatement对象包含一个带有两个IN参数的SQL语句: PreparedStatement pstmt=connection.prepareStatement(UPDATE stu_info SET name = ? WHERE id = ?); 在PreparedStatement对象执行前,每一个IN参数都必须被设置,这通过一个合适的 setXXX( ) 方法来实现,其中 XXX 表示各种数据类型名。假设IN参数是integer类型,则可以用set

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档