- package book.database;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- /**
- * 連接各類數據庫的方法
- */
- public class DBConnector {
- /**
- * 獲得數據庫連接
- * @param driverClassName 連接數據庫用到的驅動類的類名
- * @param dbURL 數據庫的URL
- * @param userName 登陸數據庫的用戶名
- * @param password 登陸數據庫的密碼
- * @return
- * @throws ClassNotFoundException
- * @throws SQLException
- */
- public static Connection getConnection(String driverClassName,
- String dbURL, String userName, String password)
- throws ClassNotFoundException, SQLException {
- Connection con = null;
- // 加載連接數據庫的驅動類
- Class.forName(driverClassName);
- // 用用戶名、密碼連接數據庫
- con = DriverManager.getConnection(dbURL, userName, password);
- return con;
- }
- /**
- * 獲得Oracle數據庫的連接
- * @param dricerClassName 連接數據庫用到的驅動類的類名
- * @param serverHost 數據庫所在服務器的IP或域名
- * @param serverPort 數據庫所在服務器的端口
- * @param dbName 數據庫名
- * @param userName 登陸數據庫的用戶名
- * @param password 登陸數據庫的密碼
- * @return
- * @throws ClassNotFoundException 數據庫驅動類無法找到是拋出該異常
- * @throws SQLException 創建連接時可能拋出該異常
- */
- public static Connection getOracleConnection(String dricerClassName,
- String serverHost, String serverPort, String dbName,
- String userName, String password) throws ClassNotFoundException,
- SQLException {
- // 如果沒有提供這些連接參數,則用默認值
- if (dricerClassName == null) {
- dricerClassName = "oracle.jdbc.driver.OracleDriver";
- }
- if (serverHost == null) {
- serverHost = "127.0.0.1";
- }
- if (serverPort == null) {
- serverPort = "1521";
- }
- // 構建訪問Oracle數據庫的URL
- String dbURL = "jdbc:oracle:thin:@" + serverHost + ":" + serverPort
- + ":" + dbName;
- return getConnection(dricerClassName, dbURL, userName, password);
- }
- /**
- * 獲得DB2數據庫的連接
- */
- public static Connection getDB2Connection(String dricerClassName,
- String serverHost, String serverPort, String dbName,
- String userName, String password) throws ClassNotFoundException,
- SQLException {
- // 如果沒有提供這些連接參數,則用默認值
- if (dricerClassName == null) {
- dricerClassName = "com.ibm.db2.jdbc.app.DB2Driver";
- }
- if (serverHost == null) {
- serverHost = "127.0.0.1";
- }
- if (serverPort == null) {
- serverPort = "5000";
- }
- // 構建訪問DB2數據庫的URL
- String dbURL = "jdbc:db2://" + serverHost + ":" + serverPort
- + "/" + dbName;
- return getConnection(dricerClassName, dbURL, userName, password);
- }
- /**
- * 獲得SQL Server數據庫的連接
- */
- public static Connection getSQLServerConnection(String dricerClassName,
- String serverHost, String serverPort, String dbName,
- String userName, String password) throws ClassNotFoundException,
- SQLException {
- // 如果沒有提供這些連接參數,則用默認值
- if (dricerClassName == null) {
- dricerClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
- }
- if (serverHost == null) {
- serverHost = "127.0.0.1";
- }
- if (serverPort == null) {
- serverPort = "1433";
- }
- // 構建訪問SQL Server數據庫的URL
- String dbURL = "jdbc:microsoft:sqlserver://" + serverHost + ":" + serverPort
- + "; DatabaseName=" + dbName;
- return getConnection(dricerClassName, dbURL, userName, password);
- }
- /**
- * 獲得MySQL數據庫的連接
- */
- public static Connection getMySQLConnection(String dricerClassName,
- String serverHost, String serverPort, String dbName,
- String userName, String password) throws ClassNotFoundException,
- SQLException {
- // 如果沒有提供這些連接參數,則用默認值
- if (dricerClassName == null) {
- dricerClassName = "com.mysql.jdbc.Driver";
- }
- if (serverHost == null) {
- serverHost = "127.0.0.1";
- }
- if (serverPort == null) {
- serverPort = "3306";
- }
- // 構建訪問SQL Server數據庫的URL
- String dbURL = "jdbc:mysql://" + serverHost + ":" + serverPort
- + "/" + dbName;
- return getConnection(dricerClassName, dbURL, userName, password);
- }
- /**
- * 獲得Sybase數據庫的連接
- */
- public static Connection getSybaseConnection(String dricerClassName,
- String serverHost, String serverPort, String dbName,
- String userName, String password) throws ClassNotFoundException,
- SQLException {
- // 如果沒有提供這些連接參數,則用默認值
- if (dricerClassName == null) {
- dricerClassName = "com.sybase.jdbc3.jdbc.SybDriver";
- }
- if (serverHost == null) {
- serverHost = "127.0.0.1";
- }
- if (serverPort == null) {
- serverPort = "5007";
- }
- // 構建訪問SQL Server數據庫的URL
- String dbURL = "jdbc:sybase:Tds:" + serverHost + ":" + serverPort
- + "/" + dbName;
- return getConnection(dricerClassName, dbURL, userName, password);
- }
- /**
- * 獲得PostgreSQL數據庫的連接
- */
- public static Connection getPostgreSQLConnection(String dricerClassName,
- String serverHost, String serverPort, String dbName,
- String userName, String password) throws ClassNotFoundException,
- SQLException {
- // 如果沒有提供這些連接參數,則用默認值
- if (dricerClassName == null) {
- dricerClassName = "org.postgresql.Driver";
- }
- if (serverHost == null) {
- serverHost = "127.0.0.1";
- }
- if (serverPort == null) {
- serverPort = "5432";
- }
- // 構建訪問SQL Server數據庫的URL
- String dbURL = "jdbc:postgresql://" + serverHost + ":" + serverPort
- + "/" + dbName;
- return getConnection(dricerClassName, dbURL, userName, password);
- }
- public static void main(String[] args) throws ClassNotFoundException,
- SQLException {
- // 獲得本地MySQL的連接實例,使用MySQL需要去www.mysql.com下載最新的MySQL安裝程序和Java驅動
- // MySQL有多個連接MySQL的驅動類,如org.gjt.mm.mysql.Driver。
- // 這裏使用MySQL官方網站上提供的驅動類
- String mySQLDirver = "com.mysql.jdbc.Driver";
- String dbName = "studentdb";
- String userName = "test";
- String password = "test";
- Connection con = DBConnector.getMySQLConnection(mySQLDirver,
- null, null, dbName, userName, password);
- System.out.println("連接MySQL數據庫成功!");
- con.close();
- System.out.println("成功關閉與MySQL數據庫的連接!");
- String url = "jdbc:mysql://127.0.0.1:3306/" + dbName;
- con = DBConnector.getConnection(mySQLDirver, url, userName, password);
- System.out.println("連接MySQL數據庫成功!");
- con.close();
- System.out.println("成功關閉與MySQL數據庫的連接!");
- }
- }