999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java數(shù)據(jù)庫(JDBC)

2008-12-31 00:00:00劉雙雙段欣妤
考試周刊 2008年13期

摘要:本文主要介紹采用JDBC、ODBC接口實(shí)現(xiàn)了與SQL Server2000數(shù)據(jù)庫的連接,并利用Java應(yīng)用程序?qū)ζ溥M(jìn)行訪問,同時(shí)通過圖形用戶界面實(shí)現(xiàn)了簡(jiǎn)單的查詢功能。

關(guān)鍵詞:Java JDBC ODBC Access SQL

前言

Java語言是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言之一,它提供了方便訪問數(shù)據(jù)的技術(shù)。利用Java語言中的JDBC技術(shù),用戶能方便地開發(fā)出基于Web網(wǎng)頁的數(shù)據(jù)庫訪問程序,從而擴(kuò)充網(wǎng)絡(luò)應(yīng)用功能。JDBC(Java Database Connectivity,Java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一的訪問接口。JDBC由一組用Java語言編寫的類與接口組成,通過調(diào)用這些類和接口所提供的方法,用戶能夠以一致的方式連接多種不同的數(shù)據(jù)庫系統(tǒng)(如Access、SQL Server 2000、Oracle、Sybase等),進(jìn)而可使用標(biāo)準(zhǔn)的SQL語言來存取數(shù)據(jù)庫中的數(shù)據(jù),而不必再為每一種數(shù)據(jù)庫系統(tǒng)編寫不同的Java程序代碼。

Java應(yīng)用程序通過JDBC API(java.sql)與數(shù)據(jù)庫連接,而實(shí)際的動(dòng)作則是由JDBC驅(qū)動(dòng)程序管理器(JDBC Driver Manager)通過JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫系統(tǒng)進(jìn)行連接。ODBC(Open DataBase Connectivity)即開放式的接口,它為用戶提供了一個(gè)訪問關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)接口,對(duì)于不同的數(shù)據(jù)庫它提供了一套統(tǒng)一的API;可以使應(yīng)用程序通過API訪問任何提供了ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫,而目前所有的關(guān)系數(shù)據(jù)庫都提供了ODBC驅(qū)動(dòng)程序,所以O(shè)DBC已經(jīng)成為數(shù)據(jù)庫訪問的業(yè)界標(biāo)準(zhǔn),并得到了廣泛應(yīng)用。

JDBC(Java DataBase Connectivity)是一種中間件,實(shí)現(xiàn)Java應(yīng)用程序與數(shù)據(jù)庫管理系統(tǒng)之間的接口功能。正如上面所說的,JDBC將數(shù)據(jù)庫編程的抽象程度提高,使得程序員只需說明要進(jìn)行“數(shù)據(jù)庫連接”而不用說明“怎么連接”,要進(jìn)行“數(shù)據(jù)操作”而不用說明“怎么操作”。這種抽象建立在SQL的基礎(chǔ)上,應(yīng)用程序可嵌入SQL訪問和操作數(shù)據(jù)庫。這使得應(yīng)用程序可以獨(dú)立于特定的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。

1. JDBC的體系結(jié)構(gòu)

簡(jiǎn)單地說,JDBC為應(yīng)用程序提供一組編程接口,這些接口定義在Java API的java.sql程序包以及JDK 1.2版本以后擴(kuò)展的javax.sql程序包中。JDBC與數(shù)據(jù)庫管理系統(tǒng)之間則通過安裝不同的(一般是與特定數(shù)據(jù)庫管理系統(tǒng)相關(guān)的)驅(qū)動(dòng)程序進(jìn)行通信。驅(qū)動(dòng)程序負(fù)責(zé)解釋應(yīng)用程序使用JDBC編程接口嵌入的SQL語句,訪問特定的數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)庫,然后得到相應(yīng)的結(jié)果。應(yīng)用程序利用JDBC編程接口使用返回的結(jié)果,完成對(duì)數(shù)據(jù)庫的訪問。這種體系結(jié)構(gòu)是Java世界中常用的方式,JDBC的體系結(jié)構(gòu)如圖1所示。

ODBC(Open Database Connection)也是一種已被廣泛使用的應(yīng)用程序與數(shù)據(jù)庫連接的中間件,但與JDBC提供Java語言編程接口不同,ODBC提供的是C語言編程接口,許多數(shù)據(jù)庫管理系統(tǒng)供應(yīng)商已經(jīng)為ODBC編寫了相應(yīng)的數(shù)據(jù)庫驅(qū)動(dòng)程序。JDBC-ODBC橋接驅(qū)動(dòng)器是Java應(yīng)用程序常用的,由JDBC API自帶的一種驅(qū)動(dòng)程序,它通過ODBC以及數(shù)據(jù)庫驅(qū)動(dòng)器與數(shù)據(jù)庫相連,負(fù)責(zé)將ODBC提供的C語言編程接口轉(zhuǎn)換為Java語言編程接口。

JDBC-ODBC橋是一種JDBC驅(qū)動(dòng)程序,它通過將JDBC操作轉(zhuǎn)換為ODBC操作來實(shí)現(xiàn)。利用JDBC-ODBC橋可以使程序開發(fā)人員不需要學(xué)習(xí)更多的知識(shí)就可以編寫JDBC應(yīng)用程序,并能夠充分利用現(xiàn)有的ODBC數(shù)據(jù)源。JDBC-ODBC橋驅(qū)動(dòng)程序可以使JDBC能夠訪問幾乎所有類型的數(shù)據(jù)庫。

2.JDBC(Java通過JDBC、ODBC接口訪問數(shù)據(jù)庫)所能完成的3件事

(Ⅰ)與一個(gè)數(shù)據(jù)庫連接

(Ⅱ)向數(shù)據(jù)庫發(fā)送SQL語句

(Ⅲ)處理數(shù)據(jù)庫返回的結(jié)果

下面我們就結(jié)合一個(gè)例子來說明這3步。

假設(shè)我們有一個(gè)用access設(shè)計(jì)的數(shù)據(jù)庫:student。Mdb,該表中有一個(gè)表,其名字為chengjibiao(學(xué)號(hào),姓名,數(shù)學(xué),物理,英語)。

(1)數(shù)據(jù)庫連接

設(shè)置數(shù)據(jù)源:

打開Windows中的控制面板,雙擊ODBCData Source圖標(biāo),出現(xiàn)User Data Source對(duì)話框,單擊add按鈕,增加新的數(shù)據(jù)源,選擇microsoft access driver(*.mdb)之后,單擊完成按鈕。在Data Source name問本框里為數(shù)據(jù)源起一個(gè)你喜歡的名字(比如redsun),再單擊select按鈕,把數(shù)據(jù)源redsun設(shè)成要連接的數(shù)據(jù)庫student.mdb,單擊ok按鈕就可以了。

建立JDBC-ODBC橋接器:

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

其中Class是包java.sql中的一個(gè)類,該類通過調(diào)用它的靜態(tài)方法forName就可以建立JDBC-ODBC橋接器,其標(biāo)準(zhǔn)方法是:

Try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

}

Catch (ClassNotFoundExceptione)

{}

連接數(shù)據(jù)庫:

使用包java.sql中的Connection類聲明一個(gè)對(duì)象,再使用類DriverManager調(diào)用它的靜態(tài)方法getConnection創(chuàng)建這個(gè)連接對(duì)象,其標(biāo)準(zhǔn)方法為:

Try{Conncetion

con=DriverManager.getConnection(“jdbc:odbc:redsun”,“snow”,“l(fā)ss”);

}

Catch(SQLException e) {}

其中snow和lss分別為L(zhǎng)ogin name和password。

(2)向數(shù)據(jù)庫發(fā)送SQL語句

首先使用statement聲明一個(gè)SQL語句對(duì)象,然后通過剛才創(chuàng)建的連接數(shù)據(jù)庫的對(duì)象con調(diào)用createstatment()方法來創(chuàng)建這個(gè)SQL語句對(duì)象。

try {Statement sql=con.createStatement();}

catch(SQLException e) { }

(3)處理數(shù)據(jù)庫返回的結(jié)果

有了SQL對(duì)象之后,就可以調(diào)用相應(yīng)的方法實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的查詢和修改,并將查詢結(jié)果存放在一個(gè)ResultSet類聲明的對(duì)象中,也就是說SQL語句對(duì)數(shù)據(jù)庫的查詢操作將返回一個(gè)ResultSet對(duì)象:

ResultSet rs=sql.executeQuery(“SELECT * FROM 成績(jī)表”);

下面是一個(gè)關(guān)于數(shù)據(jù)庫查詢的例子。

import java.sql.*;

public class aaa

{public static void main(String args)

{ String name,xuehao;Date date; int math,physics,english;

Connection con;Statement sql; ResultSet rs;

try{Class.forName(″sun.jdbc.odbc.JdbcOdbcDriver″);}

catch(ClassNotFoundException e){}

try

{

con=DriverManager.getConnection(″jdbc:odbc:redsun″,″snow″,″lss″);

sql=con.createStatement();

rs=sql.executeQuery(″SELECT * FROM chengjibiao WHERE 學(xué)號(hào) = '4' ″);

while(rs.next())

{ name=rs.getString(2); xuehao=rs.getString(1);

math=rs.getInt(″數(shù)學(xué)″);

physics=rs.getInt(″物理″);english=rs.getInt(″英語″);

System.out.println(″姓名:″+name);

System.out.println(″學(xué)號(hào):″+xuehao);

System.out.println(″數(shù)學(xué):″+math);

System.out.println(″物理:″+physics);

System.out.println(″英語:″+english);

}

con.close( );

}

catch(SQLException e1) {}

}

}

結(jié)束語

本文只涉及對(duì)SQL Server2000數(shù)據(jù)庫訪問的簡(jiǎn)單查詢操作,也可以進(jìn)行插入、刪除、修改等操作。隨著數(shù)據(jù)庫技術(shù)的發(fā)展和Java的不斷升級(jí),利用Java對(duì)數(shù)據(jù)庫的訪問會(huì)越來越簡(jiǎn)單,并且其應(yīng)用的范圍也會(huì)越來越廣,還有許多新的功能和應(yīng)用等待我們?nèi)パ芯颗c開發(fā)。

主站蜘蛛池模板: 最新国产成人剧情在线播放| 久爱午夜精品免费视频| 久久久久亚洲AV成人人电影软件 | 日日噜噜夜夜狠狠视频| 超清人妻系列无码专区| 亚洲AV色香蕉一区二区| 免费三A级毛片视频| 中文毛片无遮挡播放免费| 日韩成人免费网站| 在线观看免费黄色网址| 国产全黄a一级毛片| 91小视频在线观看免费版高清| 亚洲欧洲国产成人综合不卡| 亚洲成人动漫在线观看| 67194亚洲无码| 国产女人18水真多毛片18精品| 久久久久亚洲Av片无码观看| 亚洲一区二区无码视频| 啊嗯不日本网站| 夜色爽爽影院18禁妓女影院| 99er这里只有精品| 91麻豆国产视频| 狠狠操夜夜爽| 久久精品国产电影| 伦伦影院精品一区| 国产亚洲欧美在线专区| 少妇露出福利视频| 色欲国产一区二区日韩欧美| 激情综合激情| 五月激情婷婷综合| 中文国产成人精品久久一| 国产亚洲欧美日韩在线一区二区三区 | 高清不卡一区二区三区香蕉| 久久99国产视频| 精品久久综合1区2区3区激情| 欧美成一级| 色吊丝av中文字幕| 日日拍夜夜操| 久久久久中文字幕精品视频| 亚洲午夜18| 国产亚洲欧美在线人成aaaa| 青青青国产视频手机| 99国产精品国产高清一区二区| 狠狠色噜噜狠狠狠狠色综合久 | 中文一区二区视频| 无遮挡一级毛片呦女视频| 日韩a在线观看免费观看| 国产美女丝袜高潮| 无码一区二区波多野结衣播放搜索 | 99久久精品免费观看国产| 亚洲精品第1页| 国产精品成人不卡在线观看| 中文字幕有乳无码| 青青草一区| 久久精品波多野结衣| 中文字幕欧美成人免费| 欧美成人国产| 丁香六月综合网| 日韩不卡免费视频| 日本人真淫视频一区二区三区| 亚洲国产91人成在线| 91精品专区国产盗摄| 青青操视频在线| 久久激情影院| 精品第一国产综合精品Aⅴ| 中文字幕乱码中文乱码51精品| 亚洲无码91视频| 免费无码在线观看| 亚洲男人的天堂久久精品| 青青久久91| 91精品综合| 99视频在线免费| 一区二区无码在线视频| 88av在线| 欧美国产在线精品17p| 午夜毛片免费看| 国产h视频在线观看视频| 99一级毛片| 国产最新无码专区在线| 色综合天天综合| 亚洲天堂2014| 久久精品人人做人人爽97|