`
xiao_yi
  • 浏览: 405408 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JDBC基础(四)

阅读更多

更新表

假设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基础知识

    **JDBC基础知识** Java Database Connectivity (JDBC)是Java编程语言中用于标准地访问数据库的API。它由一组Java类和接口组成,允许Java应用程序连接到各种类型的数据库系统,包括Oracle、MySQL、SQL Server等。...

    JDBC基础demo

    **JDBC基础DEMO详解** Java Database Connectivity (JDBC) 是Java编程语言中用于与数据库交互的一组接口和类。这个“JDBC基础demo”旨在为初学者提供一个直观的起点,了解如何在Java应用程序中连接到数据库、执行...

    JDBC 基础知识课件.ppt

    根据实现方式,JDBC驱动程序分为四种类型: - **JDBC-ODBC桥驱动**:通过ODBC(Open Database Connectivity)接口连接到数据库,适用于已有ODBC驱动程序的情况。 - **本地API部分Java驱动**:部分代码是用Java实现...

    jdbc详解(基础版本)

    ### JDBC详解(基础版本) #### 一、JDBC概述 **1.1 什么是JDBC?** JDBC(Java Database Connectivity)是Java平台上的数据库访问技术。简而言之,它是Java语言与各种数据库进行交互的桥梁。通过JDBC,开发者...

    jdbc基础知识总结

    ### JDBC基础知识总结 #### 一、概述 JDBC(Java Database Connectivity)是一种标准的Java API,用于连接并操作各种类型的数据库。它从物理结构上说就是一套Java语言访问数据库的接口集合,本质上则是调用者...

    jdbc基础介绍文档

    2. JDBC驱动程序的四种类型: - JDBC-ODBC桥:这是最原始的方式,通过Java连接到ODBC数据源,然后ODBC再连接到数据库。这种方法效率低,不适用于大数据量操作。 - 本地API驱动:直接通过数据库客户端软件进行访问...

    实验3 JDBC操作数据库3

    9. **SQL命令**:实验中还提到了一些基本的SQL命令,如显示数据库列表、切换数据库、查看表、创建数据库等,这些都是数据库操作的基础。 在实际操作中,你需要按照实验步骤下载并配置JDBC驱动,创建Java类文件并...

    JDBC基础教程之ResultSet对象.doc )

    ### JDBC基础教程之ResultSet对象详解 #### 一、ResultSet对象概览 `ResultSet`对象是Java Database Connectivity (JDBC) API中的一个核心组件,用于处理SQL查询结果。它充当了一个临时的数据存储,其中包含了所有...

    自学jdbc心得体会

    四、JDBC驱动程序 * Oracle的驱动名字叫ojdbc14.jar * 注册加载驱动driver,也就是强制类加载 * Driver的全名: + Oracle的Driver的全名:oracle.jdbc.driver.OracleDriver + MySQL的Driver的全名:...

    JDBC基础教程之概述.txt

    ### JDBC基础教程之概述 #### 一、JDBC简介与概念理解 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC的...

    JDBC基础教程之连接.doc

    ### JDBC基础教程之连接知识点详解 #### 一、Connection对象及其作用 - **Connection对象**:在JDBC中,`Connection`对象代表了一个与数据库之间的连接。通过这个连接,应用程序可以执行SQL语句并获取结果集。 - *...

    JSP JDBC 学习笔记(基础)

    ### JDBC基础 1. **JDBC简介**:JDBC是Java API,用于与各种数据库进行连接,执行SQL语句并处理结果。它提供了一套统一的接口,使得开发者无需关心底层数据库的细节。 2. **JDBC驱动**:根据不同的数据库系统,...

    JDBC 入门电子书.zip

    **JDBC 入门知识详解** ...综上所述,JDBC是Java与数据库交互的基础,理解其工作原理和最佳实践对于任何Java开发者来说都至关重要。通过深入学习,我们可以更有效地构建健壮且高效的数据库应用程序。

    jdbc2000,jdbc2005

    JDBC2000,全称为Java Database Connectivity 2.0,是在JDBC1.0的基础上进行的升级。这一版本引入了许多新特性,包括: 1. **批处理(Batch Processing)**:允许开发者一次性提交多个SQL语句,提高执行效率。 2. *...

    JDBC基础-Java学习笔记

    ### JDBC基础知识点详解 #### 一、JDBC概述 **JDBC** (Java Database Connectivity) 是 Java 开发者用来访问数据库的重要技术之一。它提供了一组标准的接口和类,使得开发者可以使用 Java 语言来编写数据库应用...

    java jdbc基础

    **JDBC基础** 1. **JDBC驱动程序**: JDBC的核心是通过驱动程序来实现Java与数据库之间的通信。Java提供了四种类型的JDBC驱动程序:JDBC-ODBC桥接驱动、本地API驱动、网络协议驱动和Java数据库连接驱动(JDBC-4.0...

Global site tag (gtag.js) - Google Analytics