Java使用JDBC 取得Oracle資料庫的java.sql.Connection
連線物件。
Oracle資料庫連線資訊如下。
- 主機位址(host):192.168.0.1
- 連接埠(port):1521
- SID(System Identifier):mydb
- 使用者名稱(username):admin
- 密碼(password):12345
在Oracle SQL Developer的連線設定如下。
Oracle資料庫jdbc driver url格式為
jdbc:oracle:<drivertype>:@<host>:<port>:<sid>
。
- drivertype:有
oci
,thin
或kprb
,通常都用thin
- host:資料庫主機位址
- port:連接埠
- sid:Oracle資料庫實例名稱
JDBC 4.0以前要先用Class.forName("oracle.jdbc.driver.OracleDriver")
註冊OracleDriver
類,然後用DriverManager.getConnection(String url, String user, String password)
取得連線物件。
JdbcUtils
package com.abc.demo.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcUtils {
/**
* 取得Oracle資料庫 host=192.168.0.1, port=1521, sid=mydb 的連線物件
*
* @return 連線物件
* @throws SQLException
* @throws ClassNotFoundException
*/
public static Connection getConnection() throws SQLException, ClassNotFoundException {
Class.forName("oracle.jdbc.driver.OracleDriver"); // register OracleDriver class
String url = "jdbc:oracle:thin:@192.168.0.1:1521:mydb";
String user = "admin";
String password = "12345";
return DriverManager.getConnection(url, user, password);
}
/**
* 是否連線
*/
public static boolean hasConnection() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = getConnection();
ps = conn.prepareStatement("select 1 as num from dual");
rs = ps.executeQuery();
if(rs.next()) {
int num = rs.getInt("num");
return num == 1;
}
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {/* Ignored */}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {/* Ignored */}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {/* Ignored */}
}
}
return false;
}
}
沒有留言:
張貼留言