JDBC 入门(三)
在繁忙的数据库世界中,我们创建了一张名为COFFEES的表,用以记录咖啡店所售咖啡的详细信息。这张表就像一本生动的咖啡日志,记录着每一种咖啡的名字、价格,以及本周和至今的销售数量。
让我们深入了解一下COFFEES表的结构。咖啡的名字被储存在COF_NAME这一列中,其数据类型为VARCHAR,允许的最大长度为32个字符。每一种咖啡都有自己独特的名字,这些名字作为主键,唯一地标识了每一种咖啡。
接下来是SUP_ID列,它存储了咖啡供应商的标识,类型为INTEGER。价格则被保存在PRICE列中,由于需要存储带小数的十进制数,所以这里我们选择了FLOAT类型。至于本周的销售数量,则储存在类型为INTEGER的SALES列中。而TOTAL列也同样是INTEGER类型,记录着每种咖啡至今的总销售数量。
我们还有一张SUPPLIERS表,其中包含了每个供应商的信息。这张表以SUP_ID作为主键,唯一地标识每个供应商。有趣的是,COFFEES表中的SUP_ID列是SUPPLIERS表的外键。这意味着我们可以通过SELECT语句从这两张表中获取相关信息。
在创建COFFEES表的SQL语句中,我们看到了SQL语句的格式化要求。CREATE TABLE语句中的关键字使用大写字母,每个项目独占一行,旨在提高可读性。值得注意的是,SQL标准并不区分关键词的大小写。某些特定部分如引号内的内容却是大小写敏感的。例如,在查询名字为"Washington"的语句中,"W"必须大写,而其余字符必须小写。
让我们回顾一下创建COFFEES表的SQL语句:
```sql
CREATE TABLE COFFEES (
COF_NAME VARCHAR(32),
SUP_ID INTEGER,
PRICE FLOAT,
SALES INTEGER,
TOTAL INTEGER
);
```
这个语句简洁明了地定义了COFFEES表的结构。现在,我们已经准备好了开始使用这张表进行各种查询和操作,无论是查找特定咖啡的信息,还是分析销售数据,都将变得轻而易举。对于数据库中的标识,不同的数据库管理系统(DBMS)确实有不同的规定。有的DBMs要求创建时列名和表名必须一致,有的则没有这样的限制。出于安全考虑,我们采用全部使用大写标识的方法,如COFFEES和SUPPLIERS,这是我们在定义它们时采用的格式。
至今为止,我们已经写出了创建COFFEES表的SQL语句。现在我们将这个语句包裹在引号中,使其成为字符串,并将其赋值给变量createTableCoffees。在后续的JDBC代码中,我们将使用这个变量。值得注意的是,数据库管理系统并不在意语句的分行情况,但在Java语言中,字符串对象如果分行则无法通过编译。我们使用加号(+)来连接每一行的字符串。示例代码如下:
String createTableCoffees = "CREATE TABLE COFFEES " + "(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " + "SALES INTEGER, TOTAL INTEGER)";
在CREATE TABLE语句中使用的数据类型是通用的SQL类型(也称为JDBC类型),它们在java.sql.Types类中定义。数据库管理系统通常使用这些标准类型。当你尝试运行JDBC应用程序时,你可以直接使用CreateCoffees.java程序,它使用了CREATE TABLE语句。如果DBMS使用自己的本地类型名称,我们将提供其他应用程序,并在后面进行详细解释。
在运用任何应用程序之前,我们需要了解JDBC的基础知识。创建JDBC Statements对象。Statement对象用于将SQL语句发送到数据库管理系统。只需创建一个Statement对象,然后使用适当的方法执行你发送的SQL语句即可。对于SELECT语句,可以使用executeQuery方法。而要创建或修改表的语句则使用executeUpdate方法。
创建一个Statement对象的实例需要一个活跃的连接。以创建表为例,我们使用Connection对象con来创建Statement对象stmt:Statement stmt = con.createStatement();此时stmt已经存在,但还没有将SQL语句传递到DBMS。我们需要将SQL语句作为参数提供给我们使用的Statement方法。例如,在创建表的代码段中,我们将上述SQL语句作为executeUpdate的参数。因为我们已经将SQL语句赋值给了createTableCoffees变量,所以我们可以这样编写代码:stmt.executeUpdate(createTableCoffees);来执行语句。
我们使用executeUpdate方法是因为在createTableCoffees中的SQL语句是数据定义语言(DDL)语句。创建表、修改表、删除表都是DDL语句的例子,需要用executeUpdate方法来执行。从它的名字也可以看出,executeUpdate方法也用于执行更新表的SQL语句。实际上,与创建表相比,executeUpdate更多地用于更新表,因为表只需要创建一次,但经常被更新。
最常用的执行SQL语句的方法是executeQuery。这个方法用于执行SELECT语句,几乎是使用最广泛的SQL语句。接下来你将看到如何使用这个方法。
在数字化世界中,数据库是存储和检索信息的核心。想象一下,我们正在处理一个咖啡销售数据库,每一杯美味的咖啡都有它的详细信息。让我们深入了解一下如何使用SQL语句与数据库进行交互。
```java
Statement stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO COFFEES VALUES ('Colombian', 101, 7.99, 0, 0)");
```
```java
stmt.executeUpdate("INSERT INTO COFFEES VALUES ('French_Roast', 49, 8.99, 0, 0)");
stmt.executeUpdate("INSERT INTO COFFEES VALUES ('Espresso', 150, 9.99, 0, 0)");
stmt.executeUpdate("INSERT INTO COFFEES VALUES ('Colombian_Decaf', 101, 8.99, 0, 0)");
stmt.executeUpdate("INSERT INTO COFFEES VALUES ('French_Roast_Decaf', 49, 9.99, 0, 0)");
```
```sql
SELECT FROM COFFEES;
```
这将返回表中的所有行和列。结果可能如下所示:
```bash
COF_NAME SUP_ID PRICE SALES TOTAL
-- -- -- --
Colombian 101 7.99 0 0
French_Roast 49 8.99 0 0
Espresso 150 9.99 0 0
... (其他咖啡)
```
如果你想查看具体的咖啡名称及其价格,可以使用如下查询:
```sql
SELECT COF_NAME, PRICE FROM COFFEES;
```
这将返回每杯咖啡的名称和价格。结果集将显示所有咖啡的名称和价格。而狼蚁网站SEO优化的SELECT语句只会选择价格低于$9.00的咖啡。这就是数据库查询的魔力所在,它让我们能够轻松地检索和管理大量数据。在我们的Java应用程序与数据库交互时,我们将学习如何检索和处理这些结果。让我们期待下一节的精彩内容吧!
平面设计师
- JDBC 入门(三)
- nodejs中解决异步嵌套循环和循环嵌套异步的问题
- 10种JavaScript最常见的错误(小结)
- EasyUI框架 使用Ajax提交注册信息的实现代码
- 详解AngularJS如何实现跨域请求
- PHP接入微信H5支付的方法示例
- Java遍历集合方法分析(实现原理、算法性能、适
- JS实现图片点击后出现模态框效果
- Vue.js 父子组件通讯开发实例
- javaScript基础详解
- PHP实现统计在线人数功能示例
- javascript从定义到执行 你不知道的那些事
- 如何使用纯PHP实现定时器任务(Timer)
- PHP基于curl实现模拟微信浏览器打开微信链接的方
- 基于PHP-FPM进程池探秘
- 解决layui的使用以及针对select、radio等表单组件不