Cyh的博客

          Email:kissyan4916@163.com
          posts - 26, comments - 19, trackbacks - 0, articles - 220

          值得懷念的JDBC

          Posted on 2009-12-28 21:07 啥都寫點 閱讀(269) 評論(0)  編輯  收藏 所屬分類: J2SE
                只有在數據庫服務開啟時,才能連接數據庫。
                需要提供連接數據庫的Java驅動類和數據庫的URL,不同數據庫的URL的格式略有不同,但都符合一個基本的格式,即“協議名+IP地址(域名)+端口+數據庫名”。
                如果數據庫設有密碼,還必須提供連接數據庫的用戶名和密碼。
                首先用Class的forName方法加載數據庫驅動類;然后使用java.sql.DriverManager的getConnection方法連接數據庫,該方法返回一個連接對象。

          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,
                          
          nullnull, 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數據庫的連接!");
              }

          }



                                                                                                                 --    學海無涯
                  

          主站蜘蛛池模板: 黄平县| 唐山市| 广平县| 蒲江县| 阳高县| 如东县| 安多县| 晋州市| 新化县| 聂拉木县| 云龙县| 酒泉市| 察雅县| 乾安县| 蕉岭县| 漾濞| 垫江县| 徐水县| 调兵山市| 铜鼓县| 内乡县| 子洲县| 凉山| 土默特右旗| 伽师县| 宣武区| 右玉县| 汽车| 塔城市| 刚察县| 德庆县| 大埔县| 石楼县| 同德县| 剑川县| 邓州市| 通化市| 开阳县| 交城县| 枞阳县| 旬阳县|