熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java網絡數據庫編程及其應用

2013-11-23 19:12:19  來源: Java核心技術 

  隨著電子商務及動態網站的迅速發展Java 網絡數據庫編程得到了越來越廣泛的應用
  JDBC由一組用Java語言編寫的類組成它已成為一種供數據庫開發者使用的標准API通過JDBC本身提供的一系列類和接口Java 編程開發人員能夠很方便地編寫有關數據庫方面的應用程序
  JDBC簡介
  JDBC(Java Database Connectivity) 是Java 實現數據庫訪問的API(Application Programming Interface)與Microsoft 的ODBC(Open Database Connectivity) 一樣JDBC是建立在X/Open SQL CLI(Call Level Interface)基礎上的JDBC的主要功能是管理存放在表中的數據所以它定義了一系列與關系數據庫進行交互的類和接口如數據庫連接SQL 語句結果集和元數據等
  一般來說JDBC 的工作主要分為個步驟首先與某一關系數據庫建立連接然後向數據庫發送SQL 語句實現對數據庫的操作最後取得處理結果
  實現上述JDBC基本功能的個步驟程序示例如下
  
  connection con=DriveManagerGetConnection(jdbc:odbc: ghqrootpassword):  
  //建立與數據庫的連接
  Statement stmt=concreatestatement(); //建立語句對象
  ResultSet rs=stmtexecuteQuery(SELECT ab FROM Table)
   //運行SQL語句返回數據庫操作結果
  while (rsnext()){
   int x=getInt(a); //獲得數據庫表記錄a項的值
   string s=getstring(b); //獲得數據庫表記錄b項的值
  }
  
  JDBC 接口和驅動程序
  JDBC 接口
  JDBC提供的接口主要有兩種一種是面向一般應用程序開發人員的JDBC API另一種是底層的JDBC Driver API如圖所示
   
  圖 使用JDBC的基本結構
  JDBC API是一系列抽象的接口應用程序開發人員通過它可以編寫訪問數據庫的Java應用程序JDBC API中抽象類的實現是由驅動程序開發商提供的驅動程序實現了應用程序和某個數據庫產品之間的接口它的管理器則對應用程序和驅動程序之間的交互進行控制JDBC API主要用來連接數據庫和直接調用SQL命令執行各種SQL語句利用JDBC API可以執行一般的SQL語句動態SQL語句以及帶IN和OUT參數的存儲過程
  
  JDBC中的驅動程序必須提供實現方法的接口JDBC API被定義在javasql包中其中定義了JDBC API用到的所有類接口和方法主要的類和接口有
  
  · DriverManager類——處理驅動程序的裝入為新的數據庫連接提供支持驅動程序要向該類注冊後才能被使用進行連接時該類根據JDBC URL選擇匹配的驅動程序
  
  · javasqlDriver接口——驅動程序接口負責確認URL與驅動程序的匹配建立到數據庫的連接等其中的方法需要有相應的驅動程序實現
  
  · javasqlConnection接口——表示到特定數據庫的連接其中的方法需要有相應的驅動程序實現
  
  · javasqlStatement接口——為SQL語句提供一個容器包括執行SQL語句取得查詢結果等方法此接口有兩個子類型
  ()javasqlPreparedStatement用於執行預編譯的SQL語句
  ()javasqlCallableStatement用於執行對一個數據庫內嵌過程的調用
  · javasqlResultSet接口——提供對結果集進行處理的手段
  
  JDBC Driver API 是面向驅動程序開發商的接口對於大多數數據庫驅動程序來說僅僅實現JDBC API提供的抽象類就可以了也就是說每一個驅動程序都必須提供對於javasqlConnectionjavasqlStatementjava sqlPreparedStatement和javasqlResultSet等主要接口的實現方法如果目標DBMS提供有OUT參數的內嵌過程那麼還必須提供javasqlCallableStatement 接口每個數據庫驅動程序必須提供一個javasqlDriver類使得系統可以由 javasqlDriverManager來管理
  一個典型的驅動程序是在ODBC上提供對JDBC的實現接口從而提供與ODBC接口的JDBCODBC橋就像前面圖所顯示的由於JDBC放在ODBC之後所以實現起來簡單而且高效
   JDBC 驅動程序
  JDBC驅動程序可以分為下面四種類型分別適用於不同的場合如圖所示
   
  圖 驅動程序的種類型
  · JDBCODBC橋驅動程序
  Sun產品通過ODBC驅動程序提供JDBC的存取即經過ODBC 驅動程序訪問數據庫在大多數情況下ODBC二進制代碼必須在每個使用該數據庫驅動程序的客戶端安裝所以這種驅動程序主要適用於公司內部網絡或者在三層結構中用Java編寫的應用服務器代碼
  下面以Access數據庫為例來具體說明代碼如下
  
  Classforname( sunjdbcodbcJdbcOdbcDriver );//調用JDBCODBC 驅動程序
  Connection con=DriverManagergetConnection(jdbc:odbc:tempsa);
  //與數據庫連接temp 是配置Access數據庫ODBC建立的數據源sa 為用戶名口令為空
  Statement s=concreateStatement(ResultSetTYPE_SCROLL_SENSITIVEResultSet
  CONCUR_READ_ONLY);
  //創建Statement
  ResultSet rs=sexecuteQuery(select * from test);
  //執行查詢結果存放在ResultSet中 test是一個數據庫表
  
  · 本機應用編程接口的Java 驅動程序
  此類驅動程序轉換JDBC調用客戶端的針對特定數據庫系統的API如OracleSybaseInformixDB 或其它的 DBMS像橋驅動程序一樣這種類型的驅動程序要求在每一個客戶機上安裝一些二進制代碼
  
  下面以IBM DB 數據庫為例來具體說明
  
  Classforname( COMibmdbjdbcapp DBDriver);//調用JDBC 本地驅動程序
  String db=test;//數據庫名
  String URL=jdbc:db:+db;//URL 值
  String userid=adm;//數據庫用戶名
  String password=abc;//數據庫用戶密碼
  Connection con=DriverManagergetConnection(URLuseridpassword);//與數據庫連接
  Statement s=concreateStatement();//創建Statement
  
  · 數據庫中間件的純Java 驅動程序
  
  此類驅動程序將JDBC調用轉換成為中間件供應商的協議然後通過中間件服務器轉換成為DBMS協議網絡服務器中間件可以連接所有Java客戶端到各種不同的數據庫但是特定的協議取決於供應商通常這種方式是JDBC最方便的選擇提供商可為Internet用戶提供產品套件為了使這些產品能夠支持Internet訪問他們還必須處理安全防火牆穿越等需求各個提供商正在增加JDBC驅動程序到他們現存的中間件產品中
  下面以Oracle 數據庫為例來具體說明
  
  DriverManagerregisterDriver(new oraclejdbcdriverOracleDriver())
  //在Oracle中注冊驅動程序Driver Manager類允許動態地注冊驅動程序
  Connection conn=
  DriverManagergetConnection(jdbc:oracle:thin:@ghq::booksystemmanager)
  /**
  * 將連接字符串傳遞給這個方法以建立到數據庫的連接連接字符串中的第一個值指明thin JDBC 驅動程序
  * (用的是@符號)連接一個名為ghq的Hostname(或連接IP地址)端口是數據庫的Oracle
  SID是book連* 接的用戶名是system口令是manager
  **/
  Statement statemt=conncreateStatement()//創建一個SQL語句對象
  ResultSet rsltset=statemtexecuteQuery(SELECT USERNAME FROM book)
  //執行查詢結果存放在ResultSet中book是一個數據庫表
  
  · 直接連接數據庫的純Java 驅動程序
  這種驅動程序是本地協議的純Java驅動程序它轉換JDBC調用由DBMS直接使用的網絡協議這種方式允許從客戶機到DBMS服務器的直接調用是Intranet訪問的一種行之有效的解決方案因為這些協議多數是專用的因此數據庫提供商將成為這種驅動程序的主要來源
  
  下面以MS SQL 數據庫為例來具體說明
  
  後台數據庫采用MS SQL Server相應的JDBC Driver為MS SQL Server特定的驅動程序cominettdsTdsDriver(可以在網上下載)Java版本是xJDBC 版本是
  
  
  String url=jdbc:jdbc:inetdae:localHost:;//inetdae是驅動程序子協議名
  String login=sa;
  String password=;
  ClassforName(cominettdsTdsDriver);
  Connection con=DriverManagergetConnection(urlloginpassword);
  Statement s=concreateStatement();
  ResultSet rs=sexecuteQuery(select * from table);
  
  JDBC 使用方法
  目前Java使用最多的Applet是Web文件的一個組成部分其中有數據庫存取的Applet和能夠使用JDBC來接觸數據庫的Applet
  Java Applet 通過JDBC 訪問數據庫的工作流程可以用圖 來描述
    
  圖 Applet通過JDBC訪問數據庫的工作流程
  首先Web 浏覽器從Web 服務器中下載嵌有Applet 的HTML 頁面解釋並執行Applet 字節碼當執行到有訪問數據庫的Java 語句時Applet 直接將相應的Java 命令發送給裝在服務器上的JDBC通過JDBC 向後端數據庫發出SQL 請求然後數據庫將處理結果通過JDBC 直接返回給AppletApplet 通過JDBC 訪問數據庫的方法是一種Web 數據庫訪問的實現方案
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26428.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.