用户使用GBASE南大通用数据库 GBase JDBC 的方式分享

 ResultSet 

 缺省情况下,ResultSets 被完整地取回并存储在内存中。在大多数情况下, 这是操作起来最有效的方式,而且由于 GBASE南大通用GBase 网络协议的设计这也更容易实现。 如果用户使用着拥有大量行或大数据的 ResultSets,而且无法在 JVM 内为所需 内存分配大量空间,可以通知驱动以“流”方式返回结果,一次一行。为了使 这个功能可用,用户需要按如下方式创建一个语句实例:

 stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, 

 java.sql.ResultSet.CONCUR_READ_ONLY); 

 stmt.setFetchSize(Integer.MIN_VALUE); 

 这是个向前只读结果集,它读取得容量以整数为单位。MIN_VALUE 指示驱动 程序以逐行操作的方式形成“流”结果输出。 

 此后,任何用这个语句创建的结果集都按行检索。

 使用这种方法有些要注意的地方,用户必须在当前连接上使用任何查询之 前,读出结果集中所有的行(或者关闭它),否则就是会抛出异常。 

 这些语句持有的锁(在 GsDB 存储引擎中,无论它们是 GsSYS 表级锁还是行 级锁),最早可以在语句完成的时候释放。 

 如果这个语句在一个事务的范围内,那么这些锁在事务结束时(这意味着 那条语句需要先完成)释放。和大多数其它数据库一样,语句不会完成直到所 有依赖于该语句的结果被读取或对于这个语句活跃的结果被关闭。

 因此,当使用“流”结果时,如果用户想对那些被这个语句引用并产生结 果集的表保持并发访问,应当尽快地处理它们。

 ResultSetMetaData 

 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象。

   Statement 

 Statements 允许用户执行基本的 SQL 查询并且通过后面将介绍的类 ResultSet 获得结果。 

 调用在对象 Connection 上的 createStatement()方法,可以创建一个 Statement 实例,而这个 Connection 对象可以通过在前面介绍过的 DriverManager.getConnection()或 DataSource.getConnection()方法获得。 

 一旦拥有了一个 Statement 实例,就能调用 executeQuery(String)方法执 行一个 SELECT 查询。

 更新数据库中的数据可以使用 executeUpdate(String SQL)方法,该方法返 回由更新语句影响到的行数。 

 如果事先不知道 SQL 语句将执行一个 SELECT 操作还是一个 UPDATE/INSERT 操作,那么就可以使用 execute(String SQL)方法。如果 SQL 查询是一个 SELECT, 该方法返回 true,如果是一个 UPDATE/INSERT/DELETE 查询时返回 false。并且, 如果是一个 SELECT 查询,可以调用 getResultSet()方法获得结果,如果是一个 UPDATE/INSERT/DELETE 查询,可以调用 Statement 实例上的 getUpdateCount() 方法获得被影响到的行数。 

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值