WorldABC一年的趣趣ABC学费是多少多少?

  时间在流逝生命中人来人往。不要错失机会告诉他们在你生命中的意义。

  我说不爱你那是假话;我说不在乎,那是假话;我告诉自己对你再不会有感觉了那也是假话。

  要得到真正的快乐我们只需拥有三样东西:有想做的事,有值得爱的人有美丽的梦。

  不管你有多痛苦这个卋界都不会为你停止转动。太阳依旧照样升起

结果集(ResultSet)是数据中查询结果返回的┅种对象可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能他同时还具有操纵数据的功能,可能完成对數据的更新等.

结果集读取数据的方法主要是getXXX()他的参数可以是整型表示第几列(是从1开始的),还可以是列名返回的是对应的XXX类型的值。如果对应那列 是空值XXX是对象的话返回XXX型的空值,如果XXX是数字类型如Float等则返回0,boolean返回false.使用getString()可以返回所有的列的值,不过返回的都是字符串类型的XXX可以代表的类型有: colname)可以获得该列对应的当前行的ascii流。也就是说所有的getXXX方法都是对当前行进行操作

结果集从其使用的特点上 可鉯分为四类,这四类的结果集的所具备的特点都是和Statement语句的创建有关因为结果集是通过Statement语句执行后产生的,所以可以 说结果集具备何種特点,完全决定于Statement当然我是说下面要将的四个特点,在Statement创建时包括三种类型首先是无参数类型的, 它对应的就是下面要介绍的基本嘚ResultSet对应的Statement下面的代码中用到的Connection并没有对其初始化,变量conn代 表的就是Connection对应的对象SqlStr代表的是响应的SQL语句.

之所以说是最基本的ResultSet是因为这个ResultSet它起到的作用就是完成了查询结果的存储功能,而且只能读取一次不能够来回的滚动读取。这种结果集的创建方式如下:

由于这种结果集不支持滚动的读取功能,所以如果获得这样一个结果集只能使用它里面的next()方法,逐个的读去数据.

其中两个参数的意义是:

resultSetType是设置ResultSet对象的类型標示可滚动或者是不可滚动。取值如下:

只能向前滚动(这是默认值)

这两个方法都能够实现任意的前后滚动使用各种移动的ResultSet指针的方法。②者的区别在于前者对于修改不敏感而后者对于修改敏感。

设置为只读类型的参数

设置为可修改类型的参数。

所以如果只是想要可以滾动的类型的Result只要把Statement如下赋值就行了

用这个Statement执行的查询语句得到的就是可滚动的ResultSet。

这样的ResultSet对象可以完成对数据库中表的修改但是我知噵ResultSet只是相当于数据库中表的视图,所以并不是所有的ResultSet只要设置了可更新就能够完成更新的能够完成更新的ResultSet的SQL语句必须要具备如下的属性:

c、那些列中要包含主关键字。

具有上述条件的可更新的ResultSet可以完成对数据的修改,可更新的结果集的创建方法是:

这 样的Statement的执行结果得箌的就是可更新的结果集更新的方法是,把ResultSet的游标移动到你要更新的行然后调用 updateXXX(),这个方法XXX的含义和getXXX()是相同的updateXXX()方法有两个参数,第一个是要更新的列可以是列名或者 序号。第二个是要更新的数据这个数据类型要和XXX相同。每完成对一行的update要调用updateRow()完成对数据库的寫入而且是在 ResultSet的游标没有离开该修改行之前,否则修改将不会被提交

使用updateXXX方法还可以完成插入操作。但是首先要介绍两个方法:

moveToInsertRow()是把ResultSet迻动到插入行这个插入行是表中特殊的一行,不需要指定具体那一行只要调用这个方法系统会自动移动到那一行的。

moveToCurrentRow() 这是把ResultSet移动到记憶中的某个行通常当前行。如果没有使用insert操作这个方法没有什么效果,如果使用了insert操作这个方 法用于返回到insert操作之前的那一行,离開插入行当然也可以通过next(),previous()等方法离开插入行。

要完成对 数据库的插入首先调用moveToInsertRow()移动到插入行,然后调用updateXXX的方法完成对各列数据的更新完成更新后和更新操作 一样,要写到数据库不过这里使用的是insertRow(),也要保证在该方法执行之前ResultSet没有离开插入列否则插入不被执行,并苴对插 入行的更新将丢失.

正常情况下如果使用Statement执行完一个查询又去执行另一个查询时这 时候第一个查询的结果集就会被关闭,也就是说所有的Statement的查询对应的结果集是一个,如果调用Connection的commit()方法 也会关闭结果集可保持性就是指当ResultSet的结果被提交时,是被关闭还是不被关闭JDBC2.0和1.0提供的都是提交后ResultSet 就会被关闭。不过在JDBC3.0中我们可以设置ResultSet是否关闭。要完成这样的ResultSet的对象的创建要使用的 Statement的创建要具有三个参数,这个Statement嘚创建方式也就是我所说的Statement的第三种创建方式。如下:

前两个参数和createStatement方法中的参数是完全相同的这里只介绍第三个参数:

resultSetHoldability表示在结果集提交后结果集是否打开,取值有两个:

不过这种功能只是在JDBC3.0的驱动下才能成立

1 新定义了若干个常数,这些常数用于指定ResultSet的类型游标移动的方姠等性质,如下所示:

该常数的作用是指定处理记录集中行的顺序是由前到后即从第一行开始处理一直到最后一行.

该常数的作用是指定處理记录集中行的顺序,是由后到前即从最后一行开始处理一直到第一行.

该常数的作用是不指定处理记录集中行的顺序由JDBC 驱动程序和数據库系统决定.

该常数的作用是指定数据库游标的移动方向是向前,不允许向后移动即只能使ResultSet 接口的next()方法而不能使用previous()方法否则会产生错误.

该瑺数的作用是指定数据库游标可以在记录集中前后移动并且当前数据库用户获取的记录集对其他用户的操作不敏感;就是说,当前用户囸在浏览记录集中的数据与此同时,其他用户更新了数据库中的数据但是当前用户所获取的记录集中的数据不会受到任何影响。

该 常數的作用是指定数据库游标可以在记录集中前后移动并且当前数据库用户获取的记录集对其他用户的操作敏感,就是说当前用户正在瀏览记录集,但是其它用 户的操作使数据库中的数据发生了变化当前用户所获取的记录集中的数据也会同步发生变化,这样有可能会导致非常严重的错误产生建议慎重使用该常数

该常数的作用是指定当前记录集的协作方式(concurrencymode)为只读;一旦使用了这个常数,那么用户就不可鉯更新记录集中的数据

该常数的作用是指定当前记录集的协作方式(concurrencymode)为可以更新;一旦使用了这个常数,那么用户就可以使用updateXXX()等方法更新記

2 ResultSet 接口提供了一整套的定位方法

这些可以在记录集中定位到任意一行:

public boolean absolute(int row): 该方法的作用是将记录集中的某一行设定为当前行,亦即将数据庫游标移动到指定的行参数row 指定了目标行的行号,这是绝对的行号由记录集的第一行开始计算不是相对的行号.

public boolean relative(int rows): 该方法的作用也是将记錄集中的某一行设定为当前行,但是它的参数rows 表示目标行相对于当前行的行号

public boolean first(); 该方法的作用是将当前行定位到数据库记录集的第一行。

public void afterLast(); 該方法的作用是将数据库游标移到记录集的最后位于记录集最后一行的后面,如果该记录集不包含任何的行该方法不产生作用

public void beforeFirst(); 该方法嘚作用是将数据库游标移到记录集的最前面,位于记录集第一行的前面如果记录集不包含任何的行该方法不产生作用。

public boolean next(); 该方法的作用是將数据库游标向前移动一位使得下一行成为当前行,当刚刚打开记录集对象时数据库游标的位置在记录集的最前面,第一次使用next()方 法將会使数据库游标定位到记录集的第一行第二次使用next()方法将会使数据库游标定位到记录集的第二行,以此类推

public boolean previous(); 该方法的作用是将数据庫游标向后移动一位,使得上一行成为当前行.

3ResultSet 接口添加了对行操作的支持(最令人心动之处)

修 改了的记录集接口(ResultSet 接口)的方法使它支持可以滾动的记录集,即数据库游标可以在返回的记录集对象中自由地向前或向后滚动或者定位到某个特殊的行。利用ResultSet 接口中定义的新方法JSP/Servlet 程序员可以用Java语言来更新记录集,比如插入记录更新某行的数据,而不是靠执行SQL 语句这样就大大方便了程序员的开发工作,享受Java编程嘚乐趣了

ResultSet 接口中新添加的部分方法如下所示:

public boolean rowDeleted(); 如果当前记录集的某行被删除了,那么记录集中将会留出一个空位;调用rowDeleted()方法如果探测箌空位的存在,那么就返回true; 如果没有探测到空位的存在就返回false 值.

,以此类推第二个参数x 代表新的值,这个方法并不执行数据库操作需要执行insertRow()方法或者updateRow()方法以后,记录集和数据库中的数据才能够真正更新

往数据库当前记录集插入新行的操作流程如下:

2 调用updateXXX()方法指定插入行各列的值;

3 调用insertRow()方法往数据库中插入新的行。

更新数据库中某个记录的值(某行的值)的方法是:

2 使用相应updateXXX()方法设定某行某列的新值;XXX 所代表的Java数据类型必须可以映射为某列的JDBC数据类型,如果希望rollback 该项操作请在调用updateRow()方法以前,使用cancelRowUpdates()方法这个方法可以将某行某列的值複原;

删除记录集中某行(亦即删除某个记录)的方法:

删除记录集中某行(亦即删除某个记录)的方法:

初中志愿填报及录取方式为:每位小学毕业生必须在所属小学对应的一所或几所中学中填报一个升学志愿若小学填报某中学的志愿人数少于或等于该中学在该小学招生嘚指标数,即自动被该中学录取;若填报某中学志愿的学生人数大于该中学在该小学指标数则用微机派位的办法录取。志愿填报后任哬人不得更改。

我要回帖

更多关于 tutorABC学费 的文章

 

随机推荐