分享
 
 
 

一个简单的JDBC包装器(2)

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

一个简单的JDBC包装器(2)

一个完整的示例

现在我们已经看过了所有的类,让我们来看一个完整的示例吧。在清单 4 中,我们将抽取出符合特定条件的一套记录,然后打印出它们的值。

清单 4. 一个读取数据的完整示例

// First, get all rows meeting the criterion

RowSet rs = table.getRows( "id<103" );

// Iterate through the set

for (int i=0; i<rs.length(); ++i) {

// Grab each row in turn

Row row = rs.get( i );

// Get and print the value of the "name" field

String name = row.get( "name" );

System.out.println( "Name: "+name );

}

如此轻易!在下一节中,我们将看看怎样向数据库写入数据。

修改数据

正如前面所提到的,使用我们的 API 读写数据是以整个行为单位的。为了向数据库写入数据,您必须创建(或修改)Row 对象,然后向数据库写入那个 Row 对象。

向数据库写入数据是通过使用 Table 中的 putRow 方法。这种方法有两种变体:

public void putRow( Row row )

public void putRow( Row row, String conditions )

这两种变体分别对应于 SQL 中的 INSERT 和 UPDATE 命令。

在第一个变体中,写一行意味着将一个全新的行插入表中。

在第二个变体中,写一行意味着修改一个现有的行。conditions 参数使您能够指定您想要修改的是哪一行(哪些行)。

让我们来看看每种方法的一个示例。

插入一个新行

插入一个新行很简单,因为您不必指定要修改的行(一行或多行)。您只是简单地把行插入:

table.putRow( row );

您可以重新创建一个 Row,如清单 5 所示。

清单 5. 重新创建一个 Row

// Create an empty row object

Row row = new Row();

// Fill it up with data

row.put( "id", "200" );

row.put( "name", "Joey Capellino" );

或者,您可以修改一个以前曾经从数据库中读取的一个现有的行,如清单 6 所示。

清单 6. 修改现有的 Row

// Grab a row from the database

Row row = table.getRow( someConditions );

// Change some or all of the fields

row.put( "name", "Joey Capellino" );

虽然通常是在插入时重新创建 Row,更新时使用现有的 Row,实际上您可以用任何方式来进行。

更新现有的行

正如前面的部分提到的,对于您如何创建用来更新的 Row 是没有限制的。 但是,通常您是使用一个刚从数据库中读出的 Row。

为了具体描述这一点,我们将使用一个示例(在该例子中我们读出一个员工的姓名),改变这个名字,然后将更改后的结果写回数据库,如清单 7 所示。

清单 7. 通过修改 Row 进行更新

Row row = table.getRow( "id=104" );

row.put( "name", newName );

table.putRow( row, "id=104" );

注重我们必须在调用 putRow() 中指定条件。这样才会使调用成为更新,而不是插入。

注重,这个调用将更新所有符合条件的行,而不是其中的一行。

结论

在本文中,我们初步熟悉了一种通过 JDBC 包提供一种简化的通往关系型数据库接口的 API。这种抽象保留了 JDBC 接口的很多基本关系型功能,但对其进行了简化,从而让使用非常地方便。这种简化是以效率为代价的,但当目标是简单性时,这并不是一个令人惊异的结果。

参考资料

参加本文的讨论论坛。

下载本文中讨论的类的全部资料:

Database.Java

Table.java

RowSet.java

Row.java

JDBC 学习中心包含许多教程的链接。

阅读 JDBC 文档页可以获得很多有用的文档的链接。

您可以在 Amazon 购买 《JDBC API 教程和参考大全》,第 2 版,或者只是阅读它。

免费数据库清单包含许多免费 RDBMS 软件包的链接,您可以在启用 JDBC 的程序的服务器端使用。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有