JDBC 连接
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(); } }
更多建议: