JDBC解析1_獲取數據源

 

  1. package book.database;  
  2.  
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.SQLException;  
  6.  
  7. /**  
  8.  * 連接各類數據庫的方法  
  9.  */ 
  10. public class DBConnector {  
  11.  /**  
  12.   * 獲得數據庫連接  
  13.   * @param driverClassName 連接數據庫用到的驅動類的類名  
  14.   * @param dbURL  數據庫的URL  
  15.   * @param userName 登陸數據庫的用戶名  
  16.   * @param password 登陸數據庫的密碼  
  17.   * @return  
  18.   * @throws ClassNotFoundException  
  19.   * @throws SQLException  
  20.   */ 
  21.  public static Connection getConnection(String driverClassName,  
  22.    String dbURL, String userName, String password)  
  23.    throws ClassNotFoundException, SQLException {  
  24.   Connection con = null;  
  25.  
  26.   // 加載連接數據庫的驅動類  
  27.   Class.forName(driverClassName);  
  28.   // 用用戶名、密碼連接數據庫  
  29.   con = DriverManager.getConnection(dbURL, userName, password);  
  30.  
  31.   return con;  
  32.  }  
  33.    
  34.  /**  
  35.   * 獲得Oracle數據庫的連接  
  36.   * @param dricerClassName 連接數據庫用到的驅動類的類名  
  37.   * @param serverHost 數據庫所在服務器的IP或域名  
  38.   * @param serverPort 數據庫所在服務器的端口  
  39.   * @param dbName  數據庫名  
  40.   * @param userName  登陸數據庫的用戶名  
  41.   * @param password  登陸數據庫的密碼  
  42.   * @return  
  43.   * @throws ClassNotFoundException  數據庫驅動類無法找到是拋出該異常  
  44.   * @throws SQLException  創建連接時可能拋出該異常  
  45.   */ 
  46.  public static Connection getOracleConnection(String dricerClassName,  
  47.    String serverHost, String serverPort, String dbName,  
  48.    String userName, String password) throws ClassNotFoundException,  
  49.    SQLException {  
  50.   // 如果沒有提供這些連接參數,則用默認值  
  51.   if (dricerClassName == null) {  
  52.    dricerClassName = "oracle.jdbc.driver.OracleDriver";  
  53.   }  
  54.   if (serverHost == null) {  
  55.    serverHost = "127.0.0.1";  
  56.   }  
  57.   if (serverPort == null) {  
  58.    serverPort = "1521";  
  59.   }  
  60.   // 構建訪問Oracle數據庫的URL  
  61.   String dbURL = "jdbc:oracle:thin:@" + serverHost + ":" + serverPort  
  62.     + ":" + dbName;  
  63.   return getConnection(dricerClassName, dbURL, userName, password);  
  64.  }  
  65.    
  66.  /**  
  67.   * 獲得DB2數據庫的連接  
  68.   */ 
  69.  public static Connection getDB2Connection(String dricerClassName,  
  70.    String serverHost, String serverPort, String dbName,  
  71.    String userName, String password) throws ClassNotFoundException,  
  72.    SQLException {  
  73.   // 如果沒有提供這些連接參數,則用默認值  
  74.   if (dricerClassName == null) {  
  75.    dricerClassName = "com.ibm.db2.jdbc.app.DB2Driver";  
  76.   }  
  77.   if (serverHost == null) {  
  78.    serverHost = "127.0.0.1";  
  79.   }  
  80.   if (serverPort == null) {  
  81.    serverPort = "5000";  
  82.   }  
  83.   // 構建訪問DB2數據庫的URL  
  84.   String dbURL = "jdbc:db2://" + serverHost + ":" + serverPort  
  85.     + "/" + dbName;  
  86.   return getConnection(dricerClassName, dbURL, userName, password);  
  87.  }  
  88.    
  89.  /**  
  90.   * 獲得SQL Server數據庫的連接  
  91.   */ 
  92.  public static Connection getSQLServerConnection(String dricerClassName,  
  93.    String serverHost, String serverPort, String dbName,  
  94.    String userName, String password) throws ClassNotFoundException,  
  95.    SQLException {  
  96.   // 如果沒有提供這些連接參數,則用默認值  
  97.   if (dricerClassName == null) {  
  98.    dricerClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";  
  99.   }  
  100.   if (serverHost == null) {  
  101.    serverHost = "127.0.0.1";  
  102.   }  
  103.   if (serverPort == null) {  
  104.    serverPort = "1433";  
  105.   }  
  106.   // 構建訪問SQL Server數據庫的URL  
  107.   String dbURL = "jdbc:microsoft:sqlserver://" + serverHost + ":" + serverPort  
  108.     + "; DatabaseName=" + dbName;  
  109.   return getConnection(dricerClassName, dbURL, userName, password);  
  110.  }  
  111.    
  112.  /**  
  113.   * 獲得MySQL數據庫的連接  
  114.   */ 
  115.  public static Connection getMySQLConnection(String dricerClassName,  
  116.    String serverHost, String serverPort, String dbName,  
  117.    String userName, String password) throws ClassNotFoundException,  
  118.    SQLException {  
  119.   // 如果沒有提供這些連接參數,則用默認值  
  120.   if (dricerClassName == null) {  
  121.    dricerClassName = "com.mysql.jdbc.Driver";  
  122.   }  
  123.   if (serverHost == null) {  
  124.    serverHost = "127.0.0.1";  
  125.   }  
  126.   if (serverPort == null) {  
  127.    serverPort = "3306";  
  128.   }  
  129.   // 構建訪問SQL Server數據庫的URL  
  130.   String dbURL = "jdbc:mysql://" + serverHost + ":" + serverPort  
  131.     + "/" + dbName;  
  132.   return getConnection(dricerClassName, dbURL, userName, password);  
  133.  }  
  134.    
  135.  /**  
  136.   * 獲得Sybase數據庫的連接  
  137.   */ 
  138.  public static Connection getSybaseConnection(String dricerClassName,  
  139.    String serverHost, String serverPort, String dbName,  
  140.    String userName, String password) throws ClassNotFoundException,  
  141.    SQLException {  
  142.   // 如果沒有提供這些連接參數,則用默認值  
  143.   if (dricerClassName == null) {  
  144.    dricerClassName = "com.sybase.jdbc3.jdbc.SybDriver";  
  145.   }  
  146.   if (serverHost == null) {  
  147.    serverHost = "127.0.0.1";  
  148.   }  
  149.   if (serverPort == null) {  
  150.    serverPort = "5007";  
  151.   }  
  152.   // 構建訪問SQL Server數據庫的URL  
  153.   String dbURL = "jdbc:sybase:Tds:" + serverHost + ":" + serverPort  
  154.     + "/" + dbName;  
  155.   return getConnection(dricerClassName, dbURL, userName, password);  
  156.  }  
  157.    
  158.  /**  
  159.   * 獲得PostgreSQL數據庫的連接  
  160.   */ 
  161.  public static Connection getPostgreSQLConnection(String dricerClassName,  
  162.    String serverHost, String serverPort, String dbName,  
  163.    String userName, String password) throws ClassNotFoundException,  
  164.    SQLException {  
  165.   // 如果沒有提供這些連接參數,則用默認值  
  166.   if (dricerClassName == null) {  
  167.    dricerClassName = "org.postgresql.Driver";  
  168.   }  
  169.   if (serverHost == null) {  
  170.    serverHost = "127.0.0.1";  
  171.   }  
  172.   if (serverPort == null) {  
  173.    serverPort = "5432";  
  174.   }  
  175.   // 構建訪問SQL Server數據庫的URL  
  176.   String dbURL = "jdbc:postgresql://" + serverHost + ":" + serverPort  
  177.     + "/" + dbName;  
  178.   return getConnection(dricerClassName, dbURL, userName, password);  
  179.  }  
  180.  
  181.  public static void main(String[] args) throws ClassNotFoundException,   
  182.    SQLException {  
  183.   // 獲得本地MySQL的連接實例,使用MySQL需要去www.mysql.com下載最新的MySQL安裝程序和Java驅動  
  184.   // MySQL有多個連接MySQL的驅動類,如org.gjt.mm.mysql.Driver。  
  185.   // 這裏使用MySQL官方網站上提供的驅動類  
  186.   String mySQLDirver = "com.mysql.jdbc.Driver";  
  187.   String dbName = "studentdb";  
  188.   String userName = "test";  
  189.   String password = "test";  
  190.   Connection con = DBConnector.getMySQLConnection(mySQLDirver,  
  191.     nullnull, dbName, userName, password);  
  192.   System.out.println("連接MySQL數據庫成功!");  
  193.   con.close();  
  194.   System.out.println("成功關閉與MySQL數據庫的連接!");  
  195.   String url = "jdbc:mysql://127.0.0.1:3306/" +  dbName;  
  196.   con = DBConnector.getConnection(mySQLDirver, url, userName, password);  
  197.   System.out.println("連接MySQL數據庫成功!");  
  198.   con.close();  
  199.   System.out.println("成功關閉與MySQL數據庫的連接!");  
  200.  }  
  201. }  
  202.    

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章