JDBC SQL 语法
结构化查询语言(SQL)是一种标准化的语言,它允许你在数据库上执行操作,如创建项目,读取内容,内容更新和删除条目。
SQL是所有可能会使用几乎任何数据库支持,它允许独立于底层数据库的写入数据库的代码。
本教程给出的SQL,这是一个先决条件,了解JDBC概述。本教程提供了足够的SQL,以便能够创建,读取,更新和删除(通常被称为CRUD操作)从一个数据库中的数据。
有关SQL的详细了解,可以阅读我们的MySQL教程。
创建数据库:
CREATE DATABASE语句用于创建一个新的数据库。语法是:
SQL> CREATE DATABASE DATABASE_NAME;
例子:
下面的SQL语句创建一个名为EMP数据库:
SQL> CREATE DATABASE EMP;
删除数据库:
使用DROP DATABASE语句用于删除现有的数据库。语法是:
SQL> DROP DATABASE DATABASE_NAME;
注意:要创建或删除,应该有数据库服务器上管理员权限的数据库。请注意,删除数据库将所有损失存储在数据库中的数据。
创建表:
CREATE TABLE语句用于创建一个新表。语法是:
SQL> CREATE TABLE table_name ( column_name column_data_type, column_name column_data_type, column_name column_data_type ... );
例子:
下面的SQL语句创建一个有四个栏位名为Employees表:
SQL> CREATE TABLE Employees ( id INT NOT NULL, age INT NOT NULL, first VARCHAR(255), last VARCHAR(255), PRIMARY KEY ( id ) );
删除表:
DROP TABLE语句用于删除现有的表。语法是:
SQL> DROP TABLE table_name;
例子:
下面的SQL语句删除一个名为Employees表:
SQL> DROP TABLE Employees;
插入数据:
语法INSERT类似于以下内容,其中column1, column2,依此类推表示新的数据出现在各列:
SQL> INSERT INTO table_name VALUES (column1, column2, ...);
例子:
下面的SQL INSERT语句中插入先前创建的Employees数据库:
SQL> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');
SELECT 数据:
SELECT语句用于从数据库中检索数据。该语法的SELECT是:
SQL> SELECT column_name, column_name, ... FROM table_name WHERE conditions;
WHERE子句可以使用比较操作符例如=, !=, <, >, <=, >=,以及BETWEEN和LIKE操作符。
例子:
下面的SQL语句从Employees表选择age第一个和最后一列名where id =100:
SQL> SELECT first, last, age FROM Employees WHERE id = 100;
下面的SQL语句从Employees表,其中第一列选择age,第一列包含 Zara:
SQL> SELECT first, last, age FROM Employees WHERE first LIKE '%Zara%';
UPDATE 数据:
UPDATE语句用于更新数据。UPDATE语法为:
SQL> UPDATE table_name SET column_name = value, column_name = value, ... WHERE conditions;
WHERE子句可以使用比较操作符例如=,!=,<,>,<=,和>=,以及BETWEEN和LIKE操作符。
例子:
下面的SQL的UPDATE语句更改其ID为100的员工的age列:
SQL> UPDATE Employees SET age=20 WHERE id=100;
DELETE 数据:
DELETE语句用来删除表中的数据。语法DELETE是:
SQL> DELETE FROM table_name WHERE conditions;
WHERE子句可以使用比较操作符例如=,!=,<,>,<=,和>=,以及BETWEEN和LIKE操作符。
例子:
下面的SQL DELETE语句删除ID为100的员工的记录:
SQL> DELETE FROM Employees WHERE id=100;
JDBC 环境设置
要开始使用JDBC设置,按照以下所示的步骤开发JDBC环境。以下内容假设Windows平台上。
安装Java:
安装J2SE开发工具包5.0(JDK 5.0)下载:Java官方网站。
请确保以下环境变量设置,如下所述:
-
JAVA_HOME: 此环境变量应该指向安装JDK的目录,例如:C:Program FilesJavajdk1.5.0
-
CLASSPATH: 此环境变量应已适当的路径设置,如: C:Program FilesJavajdk1.5.0_20jrelib
-
PATH: 此环境变量应指向适当的JRE bin,如: C:Program FilesJavajre1.5.0_20in.
可能已有这些变量设置了,但只是为了确保在这里是如何检查。
-
进入控制面板,双击系统。如果是Windows XP的用户有可能要打开:"性能"=》"维护",会看到系统图标。
-
转到“高级"选项卡,然后单击"环境变量"。
-
现在,选择所有输入的变量设置正确。
将自动获得了JDBC包java.sql和javax.sql,当安装J2SE开发工具包5.0(JDK 5.0)
安装数据库:
将需要当然,最重要的是实际运行的数据库用,可以查询和修改表。
安装数据库是最适合的。可以有很多选择,最常见的有:
-
MySQL DB: MySQL是一个开放源码的数据库。可以从这里下载MySQL官方网站,建议下载完整Windows安装。
此外,下载和安装MySQL管理以及MySQL查询浏览器。这些都是基于GUI的工具,这将使开发更加容易。
最后,请下载并在一个方便的目录解压缩的MySQL Connector/J(MySQL JDBC驱动程序)。对于本教程的目的,我们将假设已经安装了驱动程序位于 C:Program FilesMySQLmysql-connector-java-5.1.8.
相应地设置CLASSPATH变量到C:Program FilesMySQLmysql-connector-java-5.1.8mysql-connector-java-5.1.8-bin.jar. 根据安装的驱动程序版本可能会有所不同。
-
PostgreSQL DB: PostgreSQL是一个开放源码的数据库。可以从这里下载 PostgreSQL官方网站。
Postgres安装包含一个名为pgAdmin III一个基于GUI管理工具。 JDBC驱动程序也包括作为安装的一部分。
-
Oracle DB: Oracle数据库是Oracle销售的商用数据库。假设有必须的分发介质进行安装。
Oracle的安装包括一个名为Enterprise Manager中基于GUI的管理工具。 JDBC驱动程序也包括作为安装的一部分。
安装数据库驱动程序:
最新的JDK包含JDBC-ODBC桥驱动程序,使大多数开放式数据库连接(ODBC)驱动程序程序员可使用JDBC API。
现在,大多数数据库厂商随数据库的安装提供相应的JDBC驱动程序。所以,不应该担心这部分。
设置数据库认证:
在本教程中,我们将使用MySQL数据库。当安装上述任何数据库,它的管理员ID设置为root,并给出规定设置选择的密码。
用root和密码,可以创建另一个用户ID和密码,或者可以使用root和密码在JDBC应用程序中。
有各种不同的数据库操作,如数据库的创建和删除,这将需要管理员ID和密码。
对于JDBC教程的其余部分,我们将使用MySQL数据库 username 作为ID和 password 作为密码。
如果没有足够的权限来创建新的用户,那么可以让数据库管理员(DBA)来创建一个用户ID和密码给你。
创建数据库:
要创建EMP数据库,请使用下列步骤:
步骤1:
打开命令提示符并更改到安装目录,如下所示:
C:> C:>cd Program FilesMySQLin C:Program FilesMySQLin>
注:这取决于的MySQL系统上的安装位置,mysqld.exe的路径可能会有所不同。也可以查看关于如何启动和停止数据库服务器文档。
步骤2:
通过执行下面的命令,如果它没有运行启动数据库服务器。
C:Program FilesMySQLin>mysqld C:Program FilesMySQLin>
步骤3:
通过执行以下命令来创建数据库EMP
C:Program FilesMySQLin> mysqladmin create EMP -u root -p Enter password: ******** C:Program FilesMySQLin>
创建表
要创建Employees表中EMP的数据库,请执行以下步骤:
步骤1:
打开命令提示符并更改到安装目录,如下所示:
C:> C:>cd Program FilesMySQLin C:Program FilesMySQLin>
步骤2:
登录数据库,如下所示
C:Program FilesMySQLin>mysql -u root -p Enter password: ******** mysql>
步骤3:
创建Employee表如下:
mysql> use EMP; mysql> create table Employees -> ( -> id int not null, -> age int not null, -> first varchar (255), -> last varchar (255) -> ); Query OK, 0 rows affected (0.08 sec) mysql>
创建数据记录
最后,在Employee表中创建一些记录如下:
mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali'); Query OK, 1 row affected (0.05 sec) mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal'); Query OK, 1 row affected (0.00 sec) mysql>
关于MySQL数据库的完整认识,学习MySQL教程。
现在,就可以开始使用JDBC尝试。接下来的教程将给予有关JDBC编程的一个样本示例。
JDBC 示例代码
本教程提供了如何创建一个简单的JDBC应用程序的示例。演示如何打开一个数据库连接,执行SQL查询,并显示结果。
所有在此模板的例子中提到的步骤,将在本教程的后续章节说明。
创建JDBC应用程序:
有下列涉及构建JDBC应用程序的六个步骤:
-
导入数据包 . 需要包括含有需要进行数据库编程的JDBC类的包。大多数情况下,使用 import java.sql.* 就可以了.
-
注册JDBC驱动程序. 需要初始化驱动程序,可以与数据库打开一个通信通道。
-
打开连接. 需要使用DriverManager.getConnection() 方法创建一个Connection对象,它代表与数据库的物理连接。
-
执行查询 . 需要使用类型声明的对象建立并提交一个SQL语句到数据库。
-
从结果集中提取数据 . 要求使用适当的关于ResultSet.getXXX()方法来检索结果集的数据。
-
清理环境. 需要明确地关闭所有的数据库资源相对依靠JVM的垃圾收集。
示例代码:
这个范例的例子可以作为一个模板,在需要建立JDBC应用程序。
基于对环境和数据库安装在前面的章节中做此示例代码已写入。
复制下面的例子FirstExample.java,编译并运行,如下所示:
//STEP 1. Import required packages import java.sql.*; public class FirstExample { // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // Database credentials static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ //STEP 2: Register JDBC driver Class.forName("com.mysql.jdbc.Driver"); //STEP 3: Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //STEP 4: Execute a query System.out.println("Creating statement..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); //STEP 5: Extract data from result set while(rs.next()){ //Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } //STEP 6: Clean-up environment rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ //Handle errors for JDBC se.printStackTrace(); }catch(Exception e){ //Handle errors for Class.forName e.printStackTrace(); }finally{ //finally block used to close resources try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ }// nothing we can do try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); }//end finally try }//end try System.out.println("Goodbye!"); }//end main }//end FirstExample
现在来编译上面的例子如下:
C:>javac FirstExample.java C:>
当运行FirstExample,它会产生以下结果:
C:>java FirstExample Connecting to database... Creating statement... ID: 100, Age: 18, First: Zara, Last: Ali ID: 101, Age: 25, First: Mahnaz, Last: Fatma ID: 102, Age: 30, First: Zaid, Last: Khan ID: 103, Age: 28, First: Sumit, Last: Mittal C:>