关闭

JDBC(二)

86人阅读 评论(0) 收藏 举报
分类:

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:>

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:337968次
    • 积分:3514
    • 等级:
    • 排名:第9969名
    • 原创:18篇
    • 转载:346篇
    • 译文:2篇
    • 评论:4条
    最新评论