亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 使用java applet訪問數(shù)據(jù)庫(轉(zhuǎn)載).txt

?? 優(yōu)秀的JAVA學(xué)習(xí)文檔
?? TXT
字號:
作者:wflm
日期:2001-6-5 14:28:58
使用Java Applet訪問數(shù)據(jù)庫

    學(xué)習(xí)任何的程序語言,當(dāng)然都得與數(shù)據(jù)庫,Java剛剛誕生的時(shí)候,對數(shù)據(jù)庫的支持并不是很好,經(jīng)過這幾年的發(fā)展,它對數(shù)據(jù)庫的支持也已經(jīng)完全達(dá)到了成熟的境地。由于這里主要是介紹Java Applet小程序, 因此,不可能用大的篇幅去給大家介紹數(shù)據(jù)庫的知識了,怎么樣去建立與設(shè)計(jì)數(shù)據(jù)庫,還是請大家自己找點(diǎn)書看看吧!這兒,對不住了。

    我們這兒以Microsoft Access數(shù)據(jù)庫為例子來說明怎么實(shí)現(xiàn)一個(gè)數(shù)據(jù)庫的打開與讀取的知識。

第一步:
    使用Microsoft Access創(chuàng)建一個(gè)數(shù)據(jù)庫,也就是我的這個(gè)例子要用到的,內(nèi)容就隨便了。

第二步:也就是編程序了。

1)定義變量,變量的定義如下: 

  TextArea theVisits=new TextArea (6,80);   
                              //顯示數(shù)據(jù)庫的內(nèi)容 
  TextField theStatus=new TextField ("",80); 
                            //顯示打開數(shù)據(jù)庫的信息。相當(dāng)于程序的狀態(tài)欄 
  Connection theConnection; //數(shù)據(jù)庫的連接方法 
  Statement theStatement;   //代表一個(gè)發(fā)送到數(shù)據(jù)庫來執(zhí)行的數(shù)據(jù)庫命令 
  ResultSet theResult;         //讀取的數(shù)據(jù)結(jié)果,也就是數(shù)據(jù)庫返回的結(jié)果 
  ResultSetMetaData theMetaData; 
                        //包含了有關(guān)數(shù)據(jù)庫命令執(zhí)行后 返回結(jié)果的有用信息。 
  String theDataSource; //包含了被訪問數(shù)據(jù)庫或者數(shù)據(jù)源的名稱,用URL形式表示 .
  String theUser;           //數(shù)據(jù)庫的用戶名 
  String thePassword;      //數(shù)據(jù)庫的密碼 
2)實(shí)現(xiàn)界面,可以用開始時(shí)給大家介紹的方法來實(shí)現(xiàn),界面的實(shí)現(xiàn)相對來說,

比較的簡單了,如下:

public void init() 
  {
 	 add(theVisits); 
	  add(theStatus);
	  theVisits.setEditable (false);   //設(shè)置文本區(qū)域不可以被用戶寫入
	  theStatus.setEditable (false);   //設(shè)置文本區(qū)域不可以被用戶寫入
	  openConnection();                //打開數(shù)據(jù)庫的連接
	  execSqlCommand("select * from MyTable");  //從數(shù)據(jù)庫中讀取內(nèi)容
	  closeConnection();               //關(guān)閉已經(jīng)打開的數(shù)據(jù)庫
    }
3)打開某個(gè)數(shù)據(jù)庫的連接

public void openConnection()
	{
	theDataSource="jdbc:odbc:MyAccess";
	theUser="";
	thePassword="";
	try
	{
	Class.forName("Sun.jdbc.odbc.JdbcOdbcDriver");
theConnection=DriverManager.getConnection(theDataSource,theUser,thePassword);
		theStatus.setText("Status:OK");
	}
	catch (Exception e)
		{
		handleException(e);
		}
	}

     包含數(shù)據(jù)源名稱的字符串格式為一個(gè)特殊的語句:

jdbc:<subpotocol>:<subname>

     協(xié)議 名jdbc必須提供,子協(xié)議和子名稱根據(jù)使用數(shù)據(jù)源類型而變化。
JDBC DriverManager使用子協(xié)議來選擇書記源響應(yīng)的驅(qū)動程序。子協(xié)議
的通常值為“odbc”和“oracle“,子名稱包含了該驅(qū)動程序使用的附加
信息。通常情況,該子名稱是某個(gè)網(wǎng)絡(luò)名稱,例如,用于其它Web服務(wù):

jdba:<subpotocol>://<host.domin><port>/<databasename>

    驅(qū)動程序的說明應(yīng)該指定子協(xié)議和子名稱的正確形式。使用ODBC時(shí),主機(jī)
和端口信息沒有必要提供,因?yàn)閿?shù)據(jù)源總是配置在本地主機(jī)上。用于ODBC數(shù)據(jù)源的形式是 

jdbc:odbc:<data source name>

    為了打開數(shù)據(jù)庫連接,用戶必須使用具體的驅(qū)動程序另外,驅(qū)動程序應(yīng)該指
定如何這樣做。如果正在使用JDBC-ODBC橋程序,那么可以通過使用名為Class類
的forName()方法來使用具體的JDBC-ODBC橋驅(qū)動程序。

class.forName("sun.jdbc.JdbcOdbcDriver");

    然后,擁護(hù)可以告訴rManager打開數(shù)據(jù)源的連接,使用下列方法:

theConnection=DriverManager.getConnection(theDataSource,theUser,thePassword);

    getConnection()方法返回一個(gè)Connection對象,用戶應(yīng)該保存這個(gè)對象,
因?yàn)樗窃L問數(shù)據(jù)源的方法。這里,該對象保存到名為theConnection的字段中。

    如果在打開連接過程中出現(xiàn)錯(cuò)誤,則SQLexception作廢,通過在try-catch
塊內(nèi)打開連接的語句,擁護(hù)可以處理這種異常。通過使用后面要講的handleException(),
在TextField內(nèi)顯示一個(gè)簡短的相應(yīng)信息。 

4)執(zhí)行SQL命令

public void execSQLCommand(String command)
{
	try{
		theStatement=theConnection.createStatement();
		theResult=theStatement.executeQuery (command);
		theMetaData=theResult.getMetaData ();
		int columnCount=theMetaData.getColumnCount ();
		theVisits.setText("");
		while(theResult.next ())
		{
			for(int i =1;i<=columnCount;i++)
			{
				String colValue=theResult.getString(i);
				if(colValue==null)colValue="";
				theVisits.append (colValue+";");
			}
			theVisits.append ("\n");
		}
	}catch(Exception e)
	{
		handleException(e);
	}
}
    為了執(zhí)行該命令,程序使用Connection對象的createStatement()方法創(chuàng)建
一個(gè)可以有查詢的Statement。然后,它激活Statement對象的executiveQuery()
方法,用來傳遞包含SQL查詢語句的字符串。從init()中傳送過來的參數(shù)——
Slect * from MyTable是一個(gè)簡單的數(shù)據(jù)庫查詢語言,如果你還不知道什么意思,
那么請你還是查看一本有關(guān)數(shù)據(jù)庫的書吧,這些內(nèi)容很多,不是我這兒一下子能說
清楚的了。它的意思簡單的說,就是查找表——MyTable中的所有(*)信息。它會
返回?cái)?shù)據(jù)庫中的所有內(nèi)容,并把它作為ResultSet訪問的結(jié)果。接著該程序激活ResultSet
對象的getMetaData()方法。這時(shí),返回一個(gè)ResultSetMetaData值,該值存儲在
一個(gè)稱為theMetaData的變量中。使用ResultSetMetaData對象,可以獲得很多有用的
數(shù)據(jù);這里該程序使用getColumnCount()方法獲得結(jié)果表中列的數(shù)量。最后,該程序反
復(fù)使用該結(jié)果表,激活theResult的next()方法獲得結(jié)果表中的每一條記錄,只到該方法
使用完全部記錄返回flase為止。

5)關(guān)閉數(shù)據(jù)庫連接

public void closeConnection()
	{
	try{
		theConnection.close ();
		}
		catch(Exception e)
		{
		handleException(e);
		}
	}
    當(dāng)用戶訪問完某個(gè)數(shù)據(jù)庫時(shí),應(yīng)該關(guān)閉數(shù)據(jù)庫連接,釋放與連接有關(guān)的資源。用戶創(chuàng)建
的任何打開的ResultSet或者Statement對象將 自動關(guān)閉。另外,在關(guān)閉連接時(shí)可能發(fā)
生一個(gè)SQLException,也放到后面處理。

6)處理異常和錯(cuò)誤

public void handleException(Exception e)
	{
	theStatus.setText("Error:"+e.getMessage ());
	e.printStackTrace ();
	if(e instanceof SQLException)
		{
		while((e=((SQLException)e).getNextException ())!=null)
		 {
				System.out.println(e);
			}
		}
	}
    handleException()方法用來處理以上的錯(cuò)誤和異常。該方法設(shè)置狀態(tài)TextField包含與
異常有關(guān)的錯(cuò)誤消息,使用getMessage()方法獲得該消息。它還可以在System.out打印
堆棧軌跡。 

三 安裝ODBC數(shù)據(jù)源

為了運(yùn)行這個(gè)應(yīng)用程序,用戶必須 首先創(chuàng)建一個(gè)與MyTable數(shù)據(jù)庫相對應(yīng)的 ODBC數(shù)據(jù)源。
為了通過ODBC使用Access,用戶必須安裝Access Odbc驅(qū)動程序。如果用戶沒有安裝該驅(qū)動
程序,那么還是先安裝吧,什么,不會,不會也不行了,找一本書好好看看吧,這是肯定要
看的。我這兒簡單的給你說一下吧:

1.從控制面板中選擇ODBC-32,雙擊(要是沒有這個(gè)圖標(biāo),那我真的沒有辦法了,它在安裝
數(shù)據(jù)庫的時(shí)候,應(yīng)該會安裝上的,否則就只能找一張數(shù)據(jù)庫系統(tǒng)的安裝盤,找到ODBC驅(qū)動程
序進(jìn)行安裝)。

2.單擊添加,選擇Microsoft Access Driver。(如果這個(gè)圖標(biāo)也沒有,那么你的機(jī)器是嚴(yán)
重缺乏營養(yǎng),趕緊裝數(shù)據(jù)庫必須的軟件,先裝Access,這兒要用)

3.輸入你要使用的數(shù)據(jù)源的名稱(如果沒有,那就得先創(chuàng)建,我這兒就不說Access的使用方
法了)。描述就隨便你了。

4.單擊選擇按鈕選擇你已經(jīng)創(chuàng)建好了的Access數(shù)據(jù)庫的文件。

5.點(diǎn)確定就可以了。如果你想為你數(shù)據(jù)庫保密的話,可以加上用戶名和密碼。(在高級選項(xiàng)里面)。

        要說明一點(diǎn)的是,如果你用VJ++編輯的此程序,要是運(yùn)行不了,那就是數(shù)據(jù)庫的連接沒有設(shè)
置好,怎么將數(shù)據(jù)庫設(shè)計(jì)好,以后再說吧。另外,VJ++有它自己的數(shù)據(jù)庫驅(qū)動程序。很適合與
VJ++一起使用,可惜介紹這方面的書好象不是很多。

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品亚洲一区二区在线播放| 中文字幕一区二区三区四区| 欧美一区二区三区喷汁尤物| 欧美色手机在线观看| 一本色道久久综合亚洲精品按摩| 99久久婷婷国产综合精品| 91在线丨porny丨国产| 不卡的av电影| 91黄视频在线观看| 欧美性猛交xxxxxxxx| 欧美日韩一二区| 4438x亚洲最大成人网| 日韩一区二区三区观看| 精品国产区一区| 久久久久国产一区二区三区四区 | 欧美一区二区三区免费视频| 久久―日本道色综合久久| 日韩视频免费观看高清完整版在线观看| 欧美一区二区三区视频在线观看 | 亚洲一区在线观看免费观看电影高清| 一区二区三区国产精华| 亚洲国产一区二区三区| 蜜桃久久av一区| 国产精品一区二区三区99| 成人免费视频国产在线观看| 91丨porny丨最新| 欧美日韩电影在线| 亚洲精品一区二区三区影院| 国产精品久久夜| 亚洲一区中文日韩| 免费一级片91| 成人av综合一区| 欧美在线|欧美| 欧美成人猛片aaaaaaa| 国产精品色一区二区三区| 亚洲曰韩产成在线| 黑人巨大精品欧美黑白配亚洲| 国产99久久久国产精品潘金| 欧洲色大大久久| 精品国产乱码久久久久久闺蜜| 国产精品女同互慰在线看| 亚洲国产精品天堂| 国产一区二区h| 在线免费精品视频| 欧美精品一区二区三区高清aⅴ| 国产精品二三区| 日韩激情一区二区| 99久久亚洲一区二区三区青草| 91麻豆精品国产91久久久久 | 激情小说欧美图片| aaa亚洲精品| 日韩精品在线看片z| 亚洲欧美日韩在线| 麻豆视频观看网址久久| 色综合久久中文字幕综合网| 26uuu另类欧美亚洲曰本| 一区二区三区四区视频精品免费 | 久久影院午夜论| 一区二区视频在线| 国产精品亚洲午夜一区二区三区 | 99热这里都是精品| 91精品国产一区二区三区香蕉| 综合久久国产九一剧情麻豆| 裸体一区二区三区| 欧美专区日韩专区| 欧美激情一二三区| 久久99最新地址| 欧美探花视频资源| 国产精品久久久一区麻豆最新章节| 99久精品国产| 久久免费国产精品| 日韩激情一区二区| 欧美亚洲一区二区在线观看| 亚洲国产精品99久久久久久久久| 久久99精品国产91久久来源| 欧美三级在线看| 中文字幕一区二区三区乱码在线| 国产在线精品一区二区三区不卡| 欧美丰满一区二区免费视频| 亚洲黄色免费电影| 成人app下载| 中文字幕精品一区| 国产在线视频一区二区| 日韩一级大片在线观看| 亚洲国产成人av网| 在线观看免费亚洲| 中文字幕中文字幕一区| 日本网站在线观看一区二区三区 | 国产原创一区二区| 懂色av中文一区二区三区| 欧美刺激脚交jootjob| 天使萌一区二区三区免费观看| 欧美亚洲一区二区在线| 一级中文字幕一区二区| 色婷婷国产精品综合在线观看| 国产精品丝袜91| 成a人片国产精品| 国产精品麻豆99久久久久久| 国产精品香蕉一区二区三区| 久久精品亚洲精品国产欧美kt∨| 捆绑调教一区二区三区| 欧美一区二区三区不卡| 日本不卡123| 日韩欧美在线一区二区三区| 免费国产亚洲视频| 精品久久99ma| 精品一区二区免费看| 久久免费偷拍视频| 岛国av在线一区| 亚洲视频在线一区观看| 91黄色小视频| 午夜激情一区二区三区| 欧美一区二区在线播放| 久久av中文字幕片| 国产午夜久久久久| 成人黄色在线网站| 亚洲另类在线一区| 欧美另类变人与禽xxxxx| 免费一级欧美片在线观看| 久久视频一区二区| 成人妖精视频yjsp地址| 伊人婷婷欧美激情| 欧美一区二区三区四区五区| 国产一区二区毛片| 一二三四区精品视频| 欧美日韩久久久一区| 久久精品国产**网站演员| 国产欧美日韩一区二区三区在线观看| 不卡的av电影| 亚洲成人精品一区| 欧美大片一区二区| 丰满少妇久久久久久久| 一区二区三区四区av| 欧美一区二区黄色| 国产风韵犹存在线视精品| 一区二区三区在线播| 日韩欧美一级在线播放| 国产福利电影一区二区三区| 亚洲综合网站在线观看| 精品精品国产高清一毛片一天堂| 成人aaaa免费全部观看| 三级久久三级久久| 欧美激情一区二区三区四区| 欧美日韩一区三区四区| 国内精品伊人久久久久av影院| 亚洲欧洲99久久| 日韩女优毛片在线| 99精品久久99久久久久| 免费三级欧美电影| 综合久久久久久| 精品久久人人做人人爽| 色综合天天性综合| 精品中文字幕一区二区| 亚洲最大成人网4388xx| 精品成人a区在线观看| 在线精品视频免费观看| 国产成人午夜视频| 日韩成人一区二区三区在线观看| 中文字幕国产一区| 欧美一区二区三区爱爱| 97超碰欧美中文字幕| 国产一区久久久| 日韩精品久久理论片| 亚洲色图清纯唯美| 久久婷婷一区二区三区| 欧美人xxxx| av高清不卡在线| 国产激情一区二区三区四区| 天天影视涩香欲综合网| 亚洲天堂福利av| 日韩一卡二卡三卡四卡| 欧美综合视频在线观看| 不卡一区中文字幕| 久国产精品韩国三级视频| 亚洲国产成人精品视频| 成人免费小视频| 国产日韩欧美精品综合| 欧美一卡二卡在线| 在线视频你懂得一区| 91小视频免费观看| 国产精品一区一区三区| 精品一区二区三区在线播放| 日本强好片久久久久久aaa| 亚洲一区二区3| 日韩毛片精品高清免费| 欧美国产97人人爽人人喊| 欧美成人激情免费网| 欧美一区日本一区韩国一区| 欧美三级日韩三级国产三级| 一本大道av伊人久久综合| 成人午夜av电影| 国产精品自拍网站| 黑人精品欧美一区二区蜜桃| 青青草成人在线观看| 午夜激情久久久| 亚洲va国产天堂va久久en| 亚洲成a人片综合在线| 国产成人亚洲精品青草天美| 久久蜜桃av一区二区天堂| 欧美一级欧美一级在线播放|