01.JDBC入門,股票入門基礎知識

來源:互聯網
上載者:User

01.JDBC入門,股票入門基礎知識
轉載請標明出處:http://blog.csdn.net/u012637501
一、JDBC入門1.JDBC簡介    JDBC, 即Java Database Connectivity,JDBC 為工具/資料庫開發人員提供了一個標準的 API,使他們能夠用純Java API 來編寫資料庫應用程式。即Java資料庫編程介面,是一組標準的Java語言中的介面和類,使用這些介面和類,Java用戶端程式可以訪問各種不同類型的資料庫,比如建立資料庫連接、執行SQL語句進行資料的存取操作。 JDBC規範採用介面和實現分離的思想設計了Java資料庫編程的架構。介面包含在java.sql及javax.sql包中,其中java.sql屬於JavaSE,javax.sql屬於JavaEE。這些介面的實作類別叫做資料庫驅動程式,由資料庫的廠商或其它的廠商或個人提供。    為了使用戶端程式獨立於特定的資料庫驅動程式,JDBC規範建議開發人員使用基於介面的編程方式,即盡量使應用僅依賴java.sql及javax.sql中的介面和類。
2.JDBC驅動程式    JDBC驅動程式(訪問資料庫編程介面的實作類別),即各個資料庫廠家根據JDBC的規範製作的JDBC實作類別。JDBC類結構:◆DriverManager:是一個實作類別,它是一個工廠類(類的結構設計模式為Factory 方法),用來生產資料庫Driver對象;◆Driver:驅動程式對象的介面,它指向一個實實在在的資料庫驅動程式對象,資料庫物件通過調用DriverManager的getDriver(String URL)獲得驅動程式對象,該方法在各個資料庫廠商按JDBC規範設計的資料庫驅動程式套件裡的類中靜態實現的;◆Connection:通過該介面實現串連到資料庫的對象,通過DriverManager工廠的getConnection(String URL)方法獲得;◆Statement:用於執行靜態SQL語句的介面,通過Connection中的createStatement方法得到的◆Resultset:用於指向結果集對象的介面,結果集對象是通過Statement中的execute等方法得到的
二、Java使用JDBC訪問資料庫的步驟  建立一個以JDBC串連資料庫的程式,包含7個步驟:  1.載入資料庫驅動程式到JVM    在串連資料庫之前,首先要載入想要串連的資料庫的驅動到JVM(Java虛擬機器),這通過java.lang.Class類的靜態方法forName(String  className)實現,成功載入後會將Driver類的執行個體註冊到DriverManager類中。例如:   

  1.  try{   
  2.     //載入MySql的驅動類   
  3.     Class.forName("com.mysql.jdbc.Driver") ;   
  4.     }catch(ClassNotFoundException e){   
  5.     System.out.println("找不到驅動程式類 ,載入驅動失敗!");   
  6.     e.printStackTrace() ;   
  7.     }   
註:com.mysql.jdbc.Driver,即為MySQL資料庫驅動類,位於mysql-connector-java-3.1.11-bin.jar中com.mysql.jdbc包中的Driver.class(類)。 2.提供JDBC串連的URL      串連URL定義了串連資料庫時的協議、子協議、資料來源標識。      書寫形式:協議:子協議:資料來源標識          協議:在JDBC中總是以jdbc開始;            子協議:是橋串連的驅動程式或是資料庫管理系統名稱;        資料來源標識:標記找到資料庫來源的地址與串連連接埠;     例如:(MySql的串連URL)                 jdbc:mysql: //localhost:3306/test?useUnicode=true&characterEncoding=gbk ;   
      其中,test為資料庫名稱;useUnicode=true表示使用Unicode字元集,如果characterEncoding設定為gb2312或GBK,本參數必須設定為true;characterEncoding=gbk為字元編碼方式。  3.建立資料庫的串連      要串連資料庫,需要向java.sql.DriverManager請求並獲得Connection對象,該對象就代表一個資料庫的串連。使用DriverManager的getConnectin(String url , String username ,String password )方法傳入指定的欲串連的資料庫的路徑、資料庫的使用者名稱和密碼來獲得。例如:  
  1. //串連MySql資料庫,使用者名稱和密碼都是root   
  2.      String url = "jdbc:mysql://localhost:3306/test" ;    
  3.      String username = "root" ;   
  4.      String password = "root" ;   
  5.      try{   
  6.     Connection con =    
  7.              DriverManager.getConnection(url , username , password ) ;   
  8.      }catch(SQLException se){   
  9.              System.out.println("資料庫連接失敗!");   
  10.               se.printStackTrace() ;   
  11.      }   
 4.建立一個Statement      要執行SQL語句,必須獲得java.sql.Statement執行個體,Statement執行個體分為以下3種類型:         (1)執行靜態SQL語句,通常通過Statement執行個體實現;     (2)執行動態SQL語句,通常通過PreparedStatement執行個體實現;       (3)執行資料庫預存程序,通常通過CallableStatement執行個體實現;   具體的實現方式:
  1.    Statement stmt = con.createStatement() ;                     //執行靜態SQL語句
  2.    PreparedStatement pstmt = con.prepareStatement(sql) ; //執行動態SQL語句   
  3.    CallableStatement cstmt =con.prepareCall("{CALL demoSp(? , ?)}") ; //執行預存程序
5.執行SQL語句      Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate和execute        (1)ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句,返回一個結果集(ResultSet)對象;        (2)int executeUpdate(String sqlString):用於執行INSERT、UPDATE或DELETE語句以及SQL DDL語句                                                                如:CREATE TABLE和DROP TABLE等        (3)execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句。       具體實現的代碼:       
  1. ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;   
  2. int rows = stmt.executeUpdate("INSERT INTO ...") ;   
  3. boolean flag = stmt.execute(String sql) ;  
6.處理結果      兩種情況:(1)執行更新返回的是本次操作影響到的記錄數。(2)執行查詢返回的結果是一個ResultSet對象。        • ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些行中資料的訪問:        • 使用結果集(ResultSet)對象的存取方法擷取資料:     
  1.   while(rs.next()){   //返回的結果集為一系列行(記錄)資料
  2.          String name = rs.getString("name") ;   
  3.          String pass = rs.getString(1) ; // 此方法比較高效   
  4.      } (列是從左至右編號的,並且從列1開始) 
 7.關閉JDBC對象         操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:        (1)關閉記錄集      (2)關閉聲明      (3)關閉連線物件 
  1.  if(rs != null){   // 關閉記錄集   
  2.         try{   
  3.             rs.close() ;   
  4.         }catch(SQLException e){   
  5.             e.printStackTrace() ;   
  6.         }   
  7.           }   
  8.           if(stmt != null){   // 關閉聲明   
  9.         try{   
  10.             stmt.close() ;   
  11.         }catch(SQLException e){   
  12.             e.printStackTrace() ;   
  13.         }   
  14.           }   
  15.           if(conn != null){  // 關閉連線物件   
  16.          try{   
  17.             conn.close() ;   
  18.          }catch(SQLException e){   
  19.             e.printStackTrace() ;   
  20.          }   
  21.           }  
總結1:載入不同資料庫驅動到JMV代碼    (1)Oracle資料庫:Class.forName("oracle.jdbc.driver.OracleDriver");     (2)Sql Server資料庫:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");    (3)MySQL資料庫 :Class.forName("com.mysql.jdbc.Driver");    (4)Access資料庫:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");總結2:建立資料庫連接字串格式    Connection con=DriverManager.getConnection("資料庫JDBC URL", "資料庫使用者名稱","資料庫密碼");
三、常用資料庫的驅動程式及JDBC URL 1.Oracle資料庫(1)驅動程式套件名:ojdbc14.jar (2)驅動類的名字:oracle.jdbc.driver.OracleDriver(3)JDBC URL:jdbc:oracle:thin:@dbip:port:databasename    說明:驅動程式套件名有可能會變       JDBC URL中黑色字型部分必須原封不動的保留,為該驅動識別的URL格式。紅色字型部分需要根據資料庫的安裝情況填寫。其中各個部分含義如下:        dbip –為資料庫伺服器的IP地址,如果是本地可寫:localhost或127.0.0.1。        port –為資料庫的監聽連接埠,需要看安裝時的配置,預設為1521。        databasename –為資料庫的SID,通常為全域資料庫的名字。        舉例如果要訪問本地的資料庫allandb,連接埠1521,那麼URL寫法如下:       jdbc:oracle:thin:@localhost:1521:allandb :http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html   2.SQL Server資料庫 (1)驅動程式套件名:msbase.jar mssqlserver.jar msutil.jar(2)驅動類的名字:com.microsoft.jdbc.sqlserver.SQLServerDriver(3)JDBC URL:jdbc:microsoft:sqlserver://dbip:port;DatabaseName=databasename    說明:驅動程式套件名有可能會變        JDBC URL中黑色字型部分必須原封不動的保留,為該驅動識別的URL格式。紅色字型部需要根據資料庫的安裝情況填寫。其中各個部分含義如下:       dbip –為資料庫伺服器的IP地址,如果是本地可寫:localhost或127.0.0.1。        port –為資料庫的監聽連接埠,需要看安裝時的配置,預設為1433。       databasename –資料庫的名字。       舉例如果要訪問本地的資料庫allandb,連接埠1433,那麼URL寫法如下:       jdbc: microsoft: sqlserver:@localhost:1433; DatabaseName =allandb:http://www.microsoft.com/downloads/details.aspx 3. MySQL資料庫 (1)驅動程式套件名:mysql-connector-java-3.1.11-bin.jar(2)驅動類的名字:com.mysql.jdbc.Driver(3)JDBC URL:jdbc:mysql://dbip:port/databasename    說明:驅動程式套件名有可能會變        JDBC URL中黑色字型部分必須原封不動的保留,為該驅動識別的URL格式。紅色字型部需要根據資料庫的安裝情況填寫。其中各個部分含義如下:        dbip –為資料庫伺服器的IP地址,如果是本地可寫:localhost或127.0.0.1。        port –為資料庫的監聽連接埠,需要看安裝時的配置,預設為3306。        databasename –資料庫的名字。        舉例如果要訪問本地的資料庫allandb,連接埠1433,那麼URL寫法如下:       jdbc:mysql://localhost:3306/allandb:http://dev.mysql.com/downloads/connector/j/ 4.Access資料庫 (1)驅動程式套件名:該驅動程式套件含在JavaSE中,不需要額外安裝。(2)驅動類的名字:sun.jdbc.odbc.JdbcOdbcDriver(3)JDBC URL:jdbc:odbc:datasourcename   說明:該驅動只能工作在Windows系統中,首先需要在作業系統中建立一個可以訪問Access資料庫的本機資料源(ODBC),如果名字為allandb,那麼URL寫法如下:        jdbc:odbc:allandb參考資料http://www.cnblogs.com/lee/archive/2007/08/25/869656.htmlhttp://jingyan.baidu.com/article/5225f26b20b67ae6fa0908ba.htmlhttp://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.