This Domain(Admin5.com) is for Sale:

全面解析JDBC

时间:2007-10-22  来源:不详  作者:林子
QQ 收藏到MisterWong
  ResultSet可以获取任意大的LONGVARBINARY或LONGVARCHAR数据。方法getBytes和getString将数据返回为大的块(最大为Statement.getMaxFieldSize的返回值)。但是,以较小的固定块获取非常大的数据可能会更方便,而这可通过让ResultSet类返回Java.io.Input流来完成。从该流中可分块读取数据。注意:必须立即访问这些流,因为在下一次对ResultSet调用getXXX时它们将自动关闭(这是由于基本实现对大块数据访问有限制)。

  JDBCAPI具有三个获取流的方法,分别具有不同的返回值:

  ⷧetBinaryStream:返回只提供数据库原字节而不进行任何转换的流。

  ⷧetAsciiStream返回提供单字节ASCII字符的流。

  ⷧetUnicodeStream返回提供双字节Unicode字符的流。

  注意:它不同于Java流,后者返回无类型字节并可(例如)通用于ASCII和Unicode字符。下列代码演示了getAsciiStream的用法:

Java.sql.Statementstmt=con.createStatement();
ResultSet r=stmt.executeQuery("SELECT x FROM Table2");
//现在以4K块大小获取列1结果:
byte buff=newbyte[4096];
while(r.next()){ 织梦好,好织梦
Java.io.InputStream fin=r.getAsciiStream(1);
for(;;){
intsize=fin.read(buff);
if(size==-1){//到达流末尾
break;
}
//将新填充的缓冲区发送到ASCII输出流:
output.write(buff,0,size);
}
}

   5. NULL结果值

  要确定给定结果值是否是JDBC NULL,必须先读取该列,然后使用ResultSet.wasNull
方法检查该次读取是否返回JDBC NULL。

  当使用ResultSet.getXXX方法读取JDBC NULL时,方法wasNull将返回下列值之一:

  (1)Javanull值

  对于返回Java对象的getXXX方法(例如getString、getBigDecimal、getBytes、getDate、getTime、getTimestamp、getAsciiStream、getUnicodeStream、getBinaryStream、getObject等)。

  (2)零值:对于getByte、getShort、getInt、getLong、getFloat和getDouble。

  (3)false值:对于getBoolean。

  6. 可选结果集或多结果集

  通常使用executeQuery(它返回单个ResultSet)或executeUpdate(它可用于任何数据库修改语句,并返回更新行数)可执行SQL语句。但有些情况下,应用程序在执行语句之前不知道该语句是否返回结果集。此外,有些已存储过程可能返回几个不同的结果集和/或更新计数。

看完这篇,您有何感觉呢?

上一篇:jsp入门学习教程   下一篇:JSP漏洞大观

文章评论

共有位Admini5网友发表了评论 查看完整内容