逍遥一派 发表于 2015-1-18 11:28:29

发布一篇JDBC基本教程之ResultSet对象

主要缺点就是:速度比较慢,没有C和C++快
概述
ResultSet包括切合SQL语句中前提的一切行,而且它经由过程一套get办法(这些get办法能够会见以后行中的分歧列)供应了对这些行中数据的会见。ResultSet.next办法用于挪动到ResultSet中的下一行,使下一行成为以后行。
了局集通常为一个表,个中有查询所前往的列题目及响应的值。比方,假如查询为SELECTa,b,cFROMTable1,则了局集将具有以下情势:
abc
-------------------------
12345CupertinoCA
83472RedmondWA
83492BostonMA
上面的代码段是实行SQL语句的示例。该SQL语句将前往行汇合,个中列1为int,列2为String,而列3则为字节数组:
java.sql.Statementstmt=conn.createStatement();
ResultSetr=stmt.executeQuery("SELECTa,b,cFROMTable1");
while(r.next())
{
 //打印以后行的值。
 inti=r.getInt("a");
 Strings=r.getString("b");
 floatf=r.getFloat("c");
 System.out.println("ROW="+i+""+s+""+f);
}
1、行和光标
ResultSet保护指向其以后数据行的光标。每挪用一次next办法,光标向下挪动一行。最后它位于第一行之前,因而第一次挪用next将把光标置于第一行上,使它成为以后行。跟着每次挪用next招致光标向下挪动一行,依照从上至下的序次猎取ResultSet行。
在ResultSet对象或其父辈Statement对象封闭之前,光标一向坚持无效。
在SQL中,了局表的光标是着名字的。假如数据库同意定位更新或定位删除,则必要将光标的名字作为参数供应给更新或删除命令。可经由过程挪用办法getCursorName取得光标名。
注重:不是一切的DBMS都撑持定位更新和删除。可以使用DatabaseMetaData.supportsPositionedDelete和supportsPositionedUpdate办法来反省特定毗连是不是撑持这些操纵。当撑持这些操纵时,DBMS/驱动程序必需确保得当锁定选定行,以使定位更新不会招致更新非常或别的并提问题。
2、列
办法getXXX供应了猎取以后行中某列值的路子。在每行内,可按任何序次猎取列值。但为了包管可移植性,应当从左至右猎取列值,而且一次性地读取列值。列名或列号可用于标识要从中猎取数据的列。比方,假如ResultSet对象rs的第二列名为“title”,并将值存储为字符串,则以下任一代码将猎取存储在该列中的值:
Strings=rs.getString("title");
Strings=rs.getString(2);
注重列是从左至右编号的,而且从列1入手下手。同时,用作getXXX办法的输出的列名不辨别巨细写。
供应利用列名这个选项的目标是为了让在查询中指定列名的用户可以使用不异的名字作为getXXX办法的参数。另外一方面,假如select语句未指定列名(比方在“select*fromtable1”中或列是导出的时),则应当利用列号。这些情形下,
户将没法切实晓得列名。
有些情形下,SQL查询前往的了局会合大概有多个列具有不异的名字。假如列名用作getXXX办法的参数,则getXXX将前往第一个婚配列名的值。因此,假如多个列具有不异的名字,则必要利用列索引来确保检索了准确的列值。这时候,利用列号效力要略微高一些。
关于ResultSet中列的信息,可经由过程挪用办法ResultSet.getMetaData失掉。前往的ResultSetMetaData对象将给出其ResultSet对象各列的编号、范例和属性。
假如列名已知,但不知其索引,则可用办法findColumn失掉其列号。
<p>
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。

海妖 发表于 2015-1-21 07:44:32

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

仓酷云 发表于 2015-1-30 11:24:48

是一种将安全性(Security)列为第一优先考虑的语言

小魔女 发表于 2015-2-1 09:46:08

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

简单生活 发表于 2015-2-4 21:16:22

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

透明 发表于 2015-2-6 21:26:39

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

活着的死人 发表于 2015-2-9 00:24:34

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

第二个灵魂 发表于 2015-2-26 14:52:20

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

飘飘悠悠 发表于 2015-2-27 23:35:35

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

精灵巫婆 发表于 2015-3-9 15:20:57

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

蒙在股里 发表于 2015-3-17 00:08:02

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

莫相离 发表于 2015-3-17 00:08:05

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

老尸 发表于 2015-3-23 08:10:42

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
页: [1]
查看完整版本: 发布一篇JDBC基本教程之ResultSet对象