更新表
假设Coffee Break咖啡馆成功开业一周后,老板想通过输入每种咖啡的销售数量来更新COFFEES表的SALES列。这时就可用如下SQL语句更新一行数据:
String updateString = "UPDATE COFFEES " +
"SET SALES = 75 " +
"WHERE COF_NAME LIKE 'Colombian'";
使用Statement对象stmt,下面的JDBC代码将执行updateString中的SQL语句:
stmt.executeUpdate(updateString
);
执行后,COFFEES表如下所示:
COF_NAME |
SUP_ID |
PRICE |
SALES |
TOTAL |
Colombian |
101 |
7.99 |
75 |
0 |
French_Roast |
49 |
8.99 |
0 |
0 |
Espresso |
150 |
9.99 |
0 |
0 |
Colombian_Decaf |
101 |
8.99 |
0 |
0 |
French_Roast_Decaf |
49 |
9.99 |
0 |
0 |
这里还没更新TOTAL列,因此它仍为0。
现在我们来选择更新过的行,检索COF_NAME和SALES列的值,然后输出这些数据:
String query = "SELECT COF_NAME, SALES FROM COFFEES " +
"WHERE COF_NAME LIKE 'Colombian'";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString("COF_NAME");
int n = rs.getInt("SALES");
System.out.println(n + " pounds of " + s +
" sold this week.");
}
执行上面的程序将输出:
75 pounds of Colombian sold this week.
由于WHERE子句的限制,所以在结果集rs中只有一行,从而也只有一行输出。因此可以编写没有while循环的代码:
rs.next();
String s = rs.getString(1);
int n = rs.getInt(2);
System.out.println(n + " pounds of " + s + " sold this week.");
即使结果集中只有一行也要用next方法访问。创建ResultSet对象时光标定位在第一行的上面。第一次调用next方法时光标将定位在rs的第一行(本例只有一行)。上面的代码只调用next一次,因此如果有另外的行将不会访问到。
现在来更新TOTAL列,将本周销售量加到现有的迄今销售量,然后输出迄今销售量:
String updateString = "UPDATE COFFEES " +
"SET TOTAL = TOTAL + 75 " +
"WHERE COF_NAME LIKE 'Colombian'";
stmt.executeUpdate(updateString);
String query = "SELECT COF_NAME, TOTAL FROM COFFEES " +
"WHERE COF_NAME LIKE 'Colombian'";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString(1);
int n = rs.getInt(2);
System.out.println(n + " pounds of " + s + " sold to date.");
}
注意,本例使用列索引代替列名,传递给getString的索引是1(结果集的第一列是COF_NAME),传递给getInt的索引是2(结果集的第二列是TOTAL)。一定要注意,数据库表的列索引和结果集的列索引是有区别的。例如,TOTAL是COFFEES表的第5列,但在上例查询生成的结果集中是第二列。
分享到:
相关推荐
**JDBC基础知识** Java Database Connectivity (JDBC)是Java编程语言中用于标准地访问数据库的API。它由一组Java类和接口组成,允许Java应用程序连接到各种类型的数据库系统,包括Oracle、MySQL、SQL Server等。...
**JDBC基础DEMO详解** Java Database Connectivity (JDBC) 是Java编程语言中用于与数据库交互的一组接口和类。这个“JDBC基础demo”旨在为初学者提供一个直观的起点,了解如何在Java应用程序中连接到数据库、执行...
根据实现方式,JDBC驱动程序分为四种类型: - **JDBC-ODBC桥驱动**:通过ODBC(Open Database Connectivity)接口连接到数据库,适用于已有ODBC驱动程序的情况。 - **本地API部分Java驱动**:部分代码是用Java实现...
### JDBC详解(基础版本) #### 一、JDBC概述 **1.1 什么是JDBC?** JDBC(Java Database Connectivity)是Java平台上的数据库访问技术。简而言之,它是Java语言与各种数据库进行交互的桥梁。通过JDBC,开发者...
### JDBC基础知识总结 #### 一、概述 JDBC(Java Database Connectivity)是一种标准的Java API,用于连接并操作各种类型的数据库。它从物理结构上说就是一套Java语言访问数据库的接口集合,本质上则是调用者...
2. JDBC驱动程序的四种类型: - JDBC-ODBC桥:这是最原始的方式,通过Java连接到ODBC数据源,然后ODBC再连接到数据库。这种方法效率低,不适用于大数据量操作。 - 本地API驱动:直接通过数据库客户端软件进行访问...
9. **SQL命令**:实验中还提到了一些基本的SQL命令,如显示数据库列表、切换数据库、查看表、创建数据库等,这些都是数据库操作的基础。 在实际操作中,你需要按照实验步骤下载并配置JDBC驱动,创建Java类文件并...
### JDBC基础教程之ResultSet对象详解 #### 一、ResultSet对象概览 `ResultSet`对象是Java Database Connectivity (JDBC) API中的一个核心组件,用于处理SQL查询结果。它充当了一个临时的数据存储,其中包含了所有...
四、JDBC驱动程序 * Oracle的驱动名字叫ojdbc14.jar * 注册加载驱动driver,也就是强制类加载 * Driver的全名: + Oracle的Driver的全名:oracle.jdbc.driver.OracleDriver + MySQL的Driver的全名:...
### JDBC基础教程之概述 #### 一、JDBC简介与概念理解 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC的...
### JDBC基础教程之连接知识点详解 #### 一、Connection对象及其作用 - **Connection对象**:在JDBC中,`Connection`对象代表了一个与数据库之间的连接。通过这个连接,应用程序可以执行SQL语句并获取结果集。 - *...
### JDBC基础 1. **JDBC简介**:JDBC是Java API,用于与各种数据库进行连接,执行SQL语句并处理结果。它提供了一套统一的接口,使得开发者无需关心底层数据库的细节。 2. **JDBC驱动**:根据不同的数据库系统,...
**JDBC 入门知识详解** ...综上所述,JDBC是Java与数据库交互的基础,理解其工作原理和最佳实践对于任何Java开发者来说都至关重要。通过深入学习,我们可以更有效地构建健壮且高效的数据库应用程序。
JDBC2000,全称为Java Database Connectivity 2.0,是在JDBC1.0的基础上进行的升级。这一版本引入了许多新特性,包括: 1. **批处理(Batch Processing)**:允许开发者一次性提交多个SQL语句,提高执行效率。 2. *...
### JDBC基础知识点详解 #### 一、JDBC概述 **JDBC** (Java Database Connectivity) 是 Java 开发者用来访问数据库的重要技术之一。它提供了一组标准的接口和类,使得开发者可以使用 Java 语言来编写数据库应用...
**JDBC基础** 1. **JDBC驱动程序**: JDBC的核心是通过驱动程序来实现Java与数据库之间的通信。Java提供了四种类型的JDBC驱动程序:JDBC-ODBC桥接驱动、本地API驱动、网络协议驱动和Java数据库连接驱动(JDBC-4.0...