基本信息
- 項目名稱:
- ACCESS2003數(shù)據(jù)庫在Java程序中的應用
- 小類:
- 信息技術
- 大類:
- 自然科學類學術論文
- 簡介:
- 在很多的實際應用系統(tǒng)中,數(shù)據(jù)庫是必不可少的數(shù)據(jù)存儲方式,而ACCESS2003數(shù)據(jù)庫具有簡單、高效、便于管理和使用的數(shù)據(jù)庫管理系統(tǒng)。本文簡述在Java程序中如何應用ACCESS2003數(shù)據(jù)庫的具體原理和方法。
- 詳細介紹:
- 在各種軟件應用系統(tǒng)開發(fā)中,數(shù)據(jù)庫的應用具有極其重要的意義,大部分軟件系統(tǒng)都需要利用各種數(shù)據(jù)庫管理系統(tǒng)來存儲和查詢各種結構化的數(shù)據(jù)。在各種各樣的數(shù)據(jù)庫管理系統(tǒng)中,微軟的Access單機數(shù)據(jù)庫具有使用簡單、方便、小巧等各種優(yōu)點,在裝有微軟office的計算機系統(tǒng)中都會按照有Access。另一方面,在各種程序設計語言中,Java語言由于擁有面向對象、跨平臺等各種優(yōu)良特性,而被很多開發(fā)人員所使用。因此,本文以一個學生學籍管理系統(tǒng)為例,講述Java程序中如何應用Access 2003數(shù)據(jù)庫。 1 建立數(shù)據(jù)庫 在實現(xiàn)系統(tǒng)之前,首先需要創(chuàng)建數(shù)據(jù)庫。具體對學生學籍管理系統(tǒng),我們先來建立學生學籍管理數(shù)據(jù)庫。首先安裝office2003,啟動ACCESS2003,建立新數(shù)據(jù)庫學生學籍管理數(shù)據(jù)庫(xjgl.mdb),創(chuàng)建包含二個文本型字段 number和name的表,表名為student,錄入最好10個以上的記錄到student表中,不妨假設是保存在D盤根目錄下。然后,后續(xù)的問題是:如何在Java程序中讀取Access數(shù)據(jù)庫里面的字段?基本的方法有個:有本地方法和遠程訪問方法。 2 橋接驅動 在創(chuàng)建好數(shù)據(jù)庫之后,程序運行時需要對數(shù)據(jù)庫建立連接,才可以讀取數(shù)據(jù)庫中的內(nèi)容。下面,以數(shù)據(jù)庫管理系統(tǒng)ACCESS2003,編程軟件JCREATE、Java運行環(huán)境jdk1.5.8為例來說明Java連接數(shù)據(jù)庫的過程。 2.1本地連接 JDBC(Java DataBase Connectivity)是Java數(shù)據(jù)庫連接的API。JDBC能完成與一個數(shù)據(jù)庫建立連接,然后向數(shù)據(jù)庫發(fā)送SQL語句,再處理數(shù)據(jù)庫返回的結果。JDBC在設計上和ODBC相似。JDBC和數(shù)據(jù)庫建立連接的一種方式是首先建立起一個JDBC-ODBC橋接器。 利用JDBC連接數(shù)據(jù)庫的過程是:打開控制面板 -> 管理工具 -> 數(shù)據(jù)源 (ODBC),選擇“系統(tǒng)DSN”,也可以選擇“用戶DSN”選項卡,系統(tǒng)的DSN對每個用戶都適用,可避免調(diào)試時出現(xiàn)的權限問題。單擊“添加”,選擇Microsoft Access Driver(*.mdb)選項。點擊"完成",彈出的對話框里將“數(shù)據(jù)源名”一項設為我們喜歡的名字,比如redsun。點“選擇”,找到“D:\ xjgl.mdb”文件,如此一個ODBC數(shù)據(jù)源就配置好了。 然后就是連接數(shù)據(jù)庫了這里要用到java.sql包中的Connection類。首先聲明一個Connection類對象,再用類DriverManager調(diào)用它的靜態(tài)方法getConnection創(chuàng)建這個連接: Connection con=DriverManager.getConnection("jdbc:odbc:數(shù)據(jù)源名字","數(shù)據(jù)源用戶名","數(shù)據(jù)源密碼"); 為防止連接出現(xiàn)異常,這里也要有個異常的處理,具體代碼是: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Class 是java.lang包中的一個類,通過調(diào)用它的靜態(tài)方法forName就可以建立橋接器。但建立橋接器時可能發(fā)生異常,這是我們所不想見到的,因此要捕獲這個異常: try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { 異常捕獲 } 2.2遠程連接 通過遠程方式連接Access數(shù)據(jù)庫時,需要使用rmijdbc。 我們首先從網(wǎng)上下載rmijdbc.jar, 加入系統(tǒng)環(huán)境變量,運行java org.objectweb.rmijdbc.RJJdbcServer。這一步很重要,用來啟動rmijdbc服務。否則,連接的時候報Connection refuse異常。 遠程方式連接Access數(shù)據(jù)庫的具體步鄹是: 第一步:在服務器上建一個odbc數(shù)據(jù)源,指向一個學生學籍管理數(shù)據(jù)庫.mdb文件; 第二步:客戶端連接代碼(假設數(shù)據(jù)庫服務器的IP地址為:192.168.0.201) Class.forName("org.objectweb.rmijdbc.Driver").newInstance(); String url = "jdbc:rmi://192.168.0.201/jdbc:odbc:redson"; 3 Java 程序源代碼 import java.sql.*; public class access{ public static void main(String args[]) { Connection con; Statement sql; ResultSet rs; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){ System.out.println(""+e); } try{ con=DriverManager.getConnection("jdbc:odbc:redsun","",""); sql=con.createStatement(); rs=sql.executeQuery("Select * FROM student"); while(rs.next()){ String number =rs.getString(1); String name =rs.getString(2); System.out.println("學號:"+); System.out.println("姓名:"+name); } con.close(); } catch(SQLException el){} } } 4 幾點注意事項 在Java程序中訪問Access數(shù)據(jù)庫時,需要注意幾個問題。 1)中文字段的查詢問題 Java用中文字段作為查詢條件時,有時總是找不到數(shù)據(jù)集,但是Access2003數(shù)據(jù)庫中卻有符合條件的數(shù)據(jù)。這時,如果是在jsp等網(wǎng)頁程序中訪問數(shù)據(jù)庫,則需要添加如下一句代碼: <%@ page language="java" pageEncoding="GBK"%> 即在頁面中說明頁面采用的編碼是“GBK”。 如果是在程序中,則jdbc driver在接受查詢結果時,應該做 GBK到unicode 的轉換才對。在connector-j-3.0.7 里面的 readme, 我們可以找到一個解決方案: connection = DriverManager.getConnection ( " jdbc:rmi://192.168.0.201/jdbc:odbc/xjgl?user=root&password=&useUnicode=true&characterEncoding=GBK" ); 也就是告訴jdbc driver 強制按指定參數(shù)進行轉碼。 2)中文數(shù)據(jù)的寫入問題 Java 在向數(shù)據(jù)庫插入數(shù)據(jù)時不支持中文。具體的解決方法是:打開Access數(shù)據(jù)庫,找到缺省的字符集default-character-set這一項,將該數(shù)據(jù)庫的字符集改成gbk字符集。 另外的一種解決方法是:在將數(shù)據(jù)寫入數(shù)據(jù)庫之前,將所有包含中文的字符串進行字符轉換成ISO或UTF8;在將含有中文的字符串從數(shù)據(jù)庫里讀出來后在用程序轉換成GBK或GB2312。這種方法比較麻煩,每次寫入和讀出中文之前都必須調(diào)用這兩個方法。
作品專業(yè)信息
撰寫目的和基本思路
- 在Java程序應用中數(shù)據(jù)庫的應用對于信息技術提升起到很大作用,主要是根據(jù)JDBC方法實現(xiàn)對數(shù)據(jù)庫的訪問和操作。完成的主要任務有請求與數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫發(fā)送各種請求;為結果集定義存儲應用和數(shù)據(jù)類型;查詢結果;處理錯誤;控制傳輸、提交及關閉連接等操作。
科學性、先進性及獨特之處
- 在所有面向對象的程序設計語言中,JAVA是比較簡單易學易用易推廣的。其中所有的對象都是通過類來描繪的。通過JAVA程序中數(shù)據(jù)庫ACCESS2003,使得海量信息在網(wǎng)絡中更容易比共享和傳遞。
應用價值和現(xiàn)實意義
- 面向對象的程序設計語言JAVA和中小型關系數(shù)據(jù)庫管理系統(tǒng)ACCESS2003是兩種不同數(shù)據(jù)處理方式。他們之間有很大的差異性,但是對于他們的選擇卻又往往反映出對于問題領域中的概念本質的理解。對于設計者的反映是否正確、合理、有效,充分表現(xiàn)了兩者間的優(yōu)勢互補關系。對于信息技術推廣使用將起很大作用。
學術論文摘要
- 作品通過在很多的實際應用系統(tǒng)中,數(shù)據(jù)庫是必不可少的數(shù)據(jù)存儲方式,而ACCESS2003數(shù)據(jù)庫具有簡單、高效、便于管理和使用的數(shù)據(jù)庫管理系統(tǒng)。本文簡述在Java程序中如何應用ACCESS2003數(shù)據(jù)庫的具體原理和方法。
獲獎情況
- 無
鑒定結果
- 無
參考文獻
- 1.程芳:關系數(shù)據(jù)庫ACCESS應用, 網(wǎng)絡軟件, 2004(12) 2.陳安琪 許統(tǒng)邦:JAVA接口管理與實現(xiàn)初探,華南理工大學學報2006(8) 3. 靳恒清:《JAVA程序設計中接口技術》,甘肅科技縱橫,2010.5 4. 武傳海(譯):《Java編程基礎、應用與實例》,人民郵電出版社,2005.10 5.劉萬軍等: 《Java程序設計實踐教程》,清華大學出版社,2006.9
同類課題研究水平概述
- 面向對象的程序設計語言Java是一門很值得學習和研究的課程,特別是其中的抽象類和接口靈活應用,在一定程度上反應出設計水平的靈活性與可讀性還有執(zhí)行效率的高低。在Java語言中數(shù)據(jù)庫的應用是支持信息產(chǎn)業(yè)化、網(wǎng)絡化的最佳有效途徑之一,正是由于這兩種理念的存在,才賦予了Java強大的面向對象能力。