第六次做业-数据库链接

本周的小组项目工做主要是完成详细设计,在系统实现上这几天我主要在学习使用JDBC链接数据库,以前并无接触过,因此从最基本的开始去了解学习。html

1.JDBC是什么?

JDBC表明Java数据库链接,这对Java编程语言和普遍的数据库之间独立于数据库的链接标准的Java API。java

JDBC库包含的API为每一个一般与数据库的使用相关联的任务:mysql

  • 使得链接到数据库sql

  • 建立SQL或MySQL语句数据库

  • 执行SQL或MySQL的查询数据库编程

  • 查看和修改结果记录架构

从根本上说,JDBC是一种规范,它提供的接口,一套完整的,容许便携式访问底层数据库。能够用Java来写不一样类型的可执行文件,如:并发

  • Java应用程序oracle

  • Java Appletsyii

  • Java Servlets

  • Java ServerPages (JSP)

  • Enterprise JavaBeans (EJBs)

全部这些不一样的可执行文件就可使用JDBC驱动程序来访问数据库,并把存储的数据的优点。

JDBC提供了相同的功能,ODBC,容许Java程序包含与数据库无关的代码。

先决条件:

之前正如期进行本教程,须要具有如下两个主题内容很好的了解:

JDBC架构:

JDBC API支持两层和三层处理模型进行数据库访问,但在通常的JDBC体系结构由两层组成:

  • JDBC API: 提供了应用程序对JDBC的管理链接。

  • JDBC Driver API: 支持JDBC管理到驱动器链接。

JDBC API的使用驱动程序管理器和数据库特定的驱动程序提供透明的链接到异构数据库。

JDBC驱动程序管理器可确保正确的驱动程序来访问每一个数据源。该驱动程序管理器可以支持链接到多个异构数据库的多个并发的驱动程序。

注:更多关于JDBC内容(常见的JDBC组件、软件包等)如下连接有详细说明:http://www.yiibai.com/jdbc/jdbc-introduction.html

2.JDBC链接数据库:

在安装相应的驱动程序后,能够开始创建使用JDBC的数据库链接。

涉及到创建一个JDBC链接的编程是至关简单的。下面是这些简单的四个步骤:

  • 导入JDBC包: 添加import语句到Java程序导入所需的类在Java代码中。

  • 注册JDBC驱动程序:这一步会致使JVM加载所需的驱动程序实现到内存中,所以它能够实现JDBC请求。

  • 数据库URL制定:这是建立格式正确的地址指向到要链接的数据库。

  • 建立链接对象:最后,代码调用DriverManager对象的getConnection()方法来创建实际的数据库链接。

导入JDBC包:

import 语句告诉Java编译器在哪里能够找到在代码中引用,并放置在您的源代码最开始的类。

使用标准的JDBC包,它容许选择,插入,更新和SQL表中删除数据,添加如下进口到您的源代码:

import java.sql.* ; // for standard JDBC programs import java.math.* ; // for BigDecimal and BigInteger support

注册JDBC驱动程序:

使用它以前,必须注册你的驱动程序在程序。注册驱动程序是由Oracle驱动程序的类文件被加载到内存中以便它能够被用做JDBC接口的实现过程。

须要作这个注册只能在你的程序一次。能够经过如下两种方式之一注册一个驱动程序。

方法(一) - DriverManager.registerDriver():

能够用它来注册一个驱动程序的第二种方法是使用staticDriverManager.registerDriver()方法。

应该,若是使用的是不兼容的JDK JVM,好比微软提供一个使用registerDriver()方法。

下面的示例使用registerDriver()来注册Oracle驱动程序:

try { Driver myDriver = new oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver( myDriver ); } catch(ClassNotFoundException ex) { System.out.println("Error: unable to load driver class!"); System.exit(1); }
注:方法二如下连接有说明:http://www.yiibai.com/jdbc/jdbc-db-connections.html

数据库URL制定:

当加载的驱动程序,能够创建程序中使用DriverManager.getConnection()方法的链接。为方便参考,让列出了三个重载DriverManager.getConnection()方法:

  • getConnection(String url)

  • getConnection(String url, Properties prop)

  • getConnection(String url, String user, String password)

在这里,每一个表单须要一个数据库URL。数据库的URL是指向数据库地址。

制定一个数据库URL是大多数用在创建链接相关。

建立链接对象:

使用数据库URL的用户名和密码:

下面三种形式DriverManager.getConnection()方法来建立一个链接对象。getConnection()最经常使用形式要求传递一个数据库URL,用户名 username和密码 password:

对URL数据库部分databaseName的值:假设使用的是Oracle的瘦驱动程序,须要指定一个主机:端口。

假设有一台主机TCP/IP地址192.0.0.1 以及主机名和Oracle监听器被配置为在端口1521,数据库名称是EMP,而后完整的数据库URL是:

jdbc:oracle:thin:@amrood:1521:EMP

如今,必须调用适当的用户名和密码以及getConnection()方法来得到一个Connection对象,以下所示:

String URL = "jdbc:oracle:thin:@amrood:1521:EMP"; String USER = "username"; String PASS = "password" Connection conn = DriverManager.getConnection(URL, USER, PASS);
注:其余两种形式为:只使用一个数据库URL;使用数据库的URL和一个properties对象。具体实现方法说明请见如下连接:http://www.yiibai.com/jdbc/jdbc-db-connections.html

关闭JDBC链接:

在JDBC程序的结束,它明确要求关闭全部的链接到数据库,以结束每一个数据库会话。可是,若是忘了,Java垃圾收集器会关闭链接时,它会清除陈旧的对象。

依托垃圾收集,特别是在数据库编程,是很是差的编程习惯。应该老是在关闭与链接对象关联的close()方法链接的习惯。

为了确保链接被关闭,能够在代码中的finally块执行。 finally块都会执行,不论是否发生或也不例外。

要关闭上面打开的链接,应该调用close()方法,以下所示:

conn.close();

显式地关闭链接DBMS节约资源。

小结:第一次使用JDBC来链接数据库,在这过程当中也确实遇到了很多问题,例如JAVA、Oracle使用不熟练对整个过程形成了很大影响,因此仍是须要增强本身的编程能力,对于过程中所犯的一些错误须要本身一步一步耐心解决。