如何获得sql语句的执行结果?
下面的代码段是执行sql语句的示例.该sql语句将返回行集合,其中列1为int,列2为string,而列3则为字节数组: 【程序编程相关:网络数据加密的三种技术】
resultset包含符合sql语句中条件的所有行,并且它通过一套get方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问.resultset.next方法用于移动到resultset中的下一行,使下一行成为当前行. 【推荐阅读:Static 的意义与实作方式】
resultset r=stmt.executequery("select a,b,c from table1"); 【扩展信息:应用 Rational 工具简化基于 J】java.sql.statementstmt=conn.createstatement();
while(r.next()){//打印当前行的值.int i=r.getint("a");string s=r.getstring("b");float f=r.getfloat("c");system.out.println("row="+i+" "+s+" "+f);}1. 行与光标
resultset维护指向其当前数据行的光标.每调用一次next方法,光标向下移动一行.
最初它位于第一行之前,因此第一次调用next将把光标置于第一行上,使它成为当前行.随着每次调用next导致光标向下移动一行,按照从上至下的次序获取resultset行.
在resultset对象或其父辈statement对象关闭之前,光标一直保持有效.在sql中,结果表的光标是有名字的.如果数据库允许定位更新或定位删除,则需要将光标的名字作为参数提供给更新或删除命令.可通过调用方法getcursorname获得光标名.
databasemetadata.supportspositioneddelete与supportspositionedupdate方法来检查特定连接是否支持这些操作.当dbms支持定位更新与删除操作时,dbms/驱动程序必须确保适当锁定选定行,以使定位更新不会导致更新异常或其它并发问题.
2. 列
方法getxxx提供了获取当前行中某列值的途径.在每一行内,可按任何次序获取列值.但为了保证可移植性,应该从左至右获取列值,并且一次性地读取列值.
列名或列号可用于标识要从中获取数据的列.例如,如果resultset对象rs的第二列名为"title",并将值存储为字符串,则下列任一代码将获取存储在该列中的值:
string s=rs.getstring("title");
string s=rs.getstring(2); 注意列是从左至右编号的,并且从列1开始.... 下一页