JDBC 连接

2018-03-20 19:42 更新

JDBC教程 - JDBC连接


注册JDBC驱动程序

为了连接到数据库系统,我们需要在程序中注册数据库系统的驱动程序。

驱动程序名称与数据库系统相关。

例子

注册驱动程序的最常见方法是使用Java的Class.forName()方法将驱动程序的类文件加载到内存中,并自动注册它。

try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
}

数据库URL

加载驱动程序后,我们可以使用DriverManager.getConnection()方法打开一个连接。

有三个重载的DriverManager.getConnection()方法:

  • getConnection(String url)

  • getConnection(String url,Properties prop)

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

数据库URL是指向数据库的地址。

下表列出了一些常见的JDBC驱动程序名称和数据库URL。

RDBMS RDBMS... 网址格式
MySQL com.mysql.jdbc.Driver jdbc:mysql://hostname/databaseName
ORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@ hostname:port Number:databaseName
DB2 COM.ibm.db2.jdbc.net.DB2Driver jdbc:db2: hostname:port Number / databaseName
Sybase com.sybase.jdbc.SybDriver jdbc:sybase:Tds: hostname:port Number / databaseName

例2

以下代码显示如何使用Oracle的thin驱动程序及其对应的URL。

该代码假定有Oracle数据库在192.0.0.1 IP地址上运行,端口为1521。

数据库名称为EMP。

jdbc:oracle:thin:@192.0.0.1:1521:EMP

以下代码显示如何将URL值和用户名和密码传递到getConnection()方法来获取一个Connection对象。

String URL = "jdbc:oracle:thin:@192.0.0.1:1521:EMP";
String USER = "username";
String PASS = "password"
Connection conn = DriverManager.getConnection(URL, USER, PASS);

在数据库URL中嵌入用户名和密码

DriverManager.getConnection()方法的第二种形式只需要一个数据库URL:

DriverManager.getConnection(String url);

要使用上面的方法,我们必须将用户名和密码嵌入数据库URL。这里是一个一般形式:

jdbc:oracle:driver:username/password@database

我们可以重写示例如下:

String URL = "jdbc:oracle:thin:username/password@192.0.0.1:1521:EMP";
Connection conn = DriverManager.getConnection(URL);

使用数据库URL和Properties对象

DriverManager.getConnection()方法的第三种形式需要一个数据库URL和一个Properties对象:

DriverManager.getConnection(String url, Properties info);

Properties对象包含一组关键字 - 值对。

以下代码显示如何使用URL和Properties对象来创建与Oracle数据库的相同连接。

String URL = "jdbc:oracle:thin:@192.0.0.1:1521:EMP";
Properties info = new Properties( );
info.put( "user", "username" );
info.put( "password", "password" );

Connection conn = DriverManager.getConnection(URL, info);

关闭JDBC连接

在退出JDBC应用程序之前,我们需要显式关闭与数据库的所有连接,以结束每个数据库会话。

为了确保连接关闭,在finally块中放置close()方法,因为finally块始终执行,而不管异常是否发生。

要关闭上面打开的连接,请从Connection对象调用close()方法如下:

} finally {
  // finally block used to close resources
  try {
    if (stmt != null)
      stmt.close();
  } catch (SQLException se2) {
  }
  try {
    if (conn != null)
      conn.close();
  } catch (SQLException se) {
    se.printStackTrace();
  }
}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号