云数据库 GaussDB-处理结果集:设置结果集类型

时间:2023-11-01 16:22:10

设置结果集类型

不同类型的结果集有各自的应用场景,应用程序需要根据实际情况选择相应的结果集类型。在执行SQL语句过程中,都需要先创建相应的语句对象,而部分创建语句对象的方法提供了设置结果集类型的功能。具体的参数设置如表1所示。涉及的Connection的方法如下:

12345678
//创建一个Statement对象,该对象将生成具有给定类型和并发性的ResultSet对象。createStatement(int resultSetType, int resultSetConcurrency);//创建一个PreparedStatement对象,该对象将生成具有给定类型和并发性的ResultSet对象。prepareStatement(String sql, int resultSetType, int resultSetConcurrency);//创建一个CallableStatement对象,该对象将生成具有给定类型和并发性的ResultSet对象。prepareCall(String sql, int resultSetType, int resultSetConcurrency);
表1 结果集类型

参数

描述

resultSetType

表示结果集的类型,具体有三种类型:

  • ResultSet.TYPE_FORWARD_ONLY:ResultSet只能向前移动。是缺省值。
  • ResultSet.TYPE_SCROLL_SENSITIVE:在修改后重新滚动到修改所在行,可以看到修改后的结果。
  • ResultSet.TYPE_SCROLL_INSENSITIVE:对可修改例程所做的编辑不进行显示。
说明:

结果集从数据库中读取了数据之后,即使类型是ResultSet.TYPE_SCROLL_SENSITIVE,也不会看到由其他事务在这之后引起的改变。调用ResultSet的refreshRow()方法,可进入数据库并从其中取得当前游标所指记录的最新数据。

resultSetConcurrency

表示结果集的并发,具体有两种类型:

  • ResultSet.CONCUR_READ_ONLY:如果不从结果集中的数据建立一个新的更新语句,不能对结果集中的数据进行更新。
  • ResultSet.CONCUR_UPDATEABLE:可改变的结果集。对于可滚动的结果集,可对结果集进行适当的改变。
support.huaweicloud.com/centralized-devg-v2-opengauss/devg_03_0096.html