国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

jsp和sqlserver數(shù)據(jù)庫(kù)的連接問題及解決辦法

2009-05-25 03:32:52莊生虎
關(guān)鍵詞:授權(quán)端口數(shù)據(jù)庫(kù)

摘要:數(shù)據(jù)庫(kù)操作是目前項(xiàng)目開發(fā)的根本,jsp技術(shù)是當(dāng)前較為熱門的W eb開發(fā)技術(shù), jsp和sqlserver數(shù)據(jù)庫(kù)進(jìn)行連接是一項(xiàng)復(fù)雜的工作。本文介紹了jsp連接sqlserver數(shù)據(jù)庫(kù)的三種基本方法,給出了jsp連接sql數(shù)據(jù)庫(kù)過程中一些常見問題的解決辦法。

關(guān)鍵詞:odbc-jdbc;數(shù)據(jù)庫(kù);端口;授權(quán)

JSP 是Sun公司推出的一種開發(fā)語(yǔ)言,他完全解決了目前ASP,PHP的一個(gè)通病腳本級(jí)執(zhí)行,可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。由于要jsp語(yǔ)言跨平臺(tái)的工作能力,使得jsp技術(shù)在眾多技術(shù)中脫穎而出,用jsp開發(fā)過程中經(jīng)常會(huì)用到j(luò)sp和sqlserver數(shù)據(jù)庫(kù)的連接,雖然較簡(jiǎn)單,但是在連接測(cè)試的過程中,經(jīng)常會(huì)遇到了許多問題,花費(fèi)不少時(shí)間。所以本文將這些總結(jié)出來,讓大家學(xué)習(xí)達(dá)到事半功倍的效果。

1jsp和sql數(shù)據(jù)庫(kù)的連接方法

1.1 通過橋連方式連接數(shù)據(jù)庫(kù)

橋連方式就是通過odbc設(shè)置數(shù)據(jù)源訪問數(shù)據(jù)庫(kù),首先是設(shè)置odbc數(shù)據(jù)源。設(shè)置方法:通過控制面板下的管理工具打開odbc數(shù)據(jù)源->選擇系統(tǒng)dsn(單擊添加)->接下來輸入選擇數(shù)據(jù)庫(kù)類型sql sever,輸入數(shù)據(jù)源名,選擇服務(wù)器、連接數(shù)據(jù)庫(kù)的方式、輸入數(shù)據(jù)庫(kù)的登陸用戶和密碼->測(cè)試連接,如果測(cè)試成功的話,那么你的dsn就建立好了。我的dsn數(shù)據(jù)源名字為news,以 "sa"登陸,密碼也是sa。新建測(cè)試類進(jìn)行測(cè)試。

import java.sql.*;//加載java數(shù)據(jù)連接包

public class conectionmanager{

public static void main(String args[]) {

String url = "jdbc:odbc:news"; //取得連接的url名。

Connection con; //實(shí)例化一個(gè)Connection對(duì)象

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加載jdbc-odbc橋驅(qū)動(dòng)

con = DriverManager.getConnection(url, "sa", "sa");

System.out.println("數(shù)據(jù)庫(kù)連接成功 ");

} catch(java.lang.ClassNotFoundException e) {

System.out.println("加載jdbc-odbc橋錯(cuò)誤");

} } }

運(yùn)行顯示,數(shù)據(jù)庫(kù)連接成功,上面這個(gè)程序中展示了如何使用JDBC-ODBC連接數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)連接成功了,就可以使用SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行增、刪、改、查等操作。通過這種方法訪問數(shù)據(jù)庫(kù),需要客戶端必須設(shè)置ODBC和有相應(yīng)的數(shù)據(jù)庫(kù)客戶機(jī)的驅(qū)動(dòng)。在沒有數(shù)據(jù)庫(kù)廠商提供的的jdbc驅(qū)動(dòng)的情況下,是一種很好的方法。

1.2直接純java直連方式訪問數(shù)據(jù)庫(kù)(以sql2000為例)

1.2.1下載SQL Server 2000 driver for JDBC

該驅(qū)動(dòng)截止目前有四個(gè)版本,建議下載最新的SP3版。該驅(qū)動(dòng)安裝方法:請(qǐng)將sql2000驅(qū)動(dòng)安裝目錄下的lib目錄下的三個(gè).jar文件加到CLASSPATH中;如果你使用的是JBuilder或Eclipse,將這三個(gè)文件根據(jù)IDE的提示加到工程中。

1.2.2驅(qū)動(dòng)的加載方法

在建立連接之前,要先加載SQL Server 2000 JDBC的驅(qū)動(dòng),代碼如下:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

在此注意,forName方法的參數(shù)字符串必須完全相同于以上內(nèi)容,大小寫是區(qū)分的,其實(shí)這個(gè)串就是驅(qū)動(dòng)類的完整名稱:包名+類名。

1.2.3獲得一個(gè)連接

在操作數(shù)據(jù)庫(kù)之前,要先獲得與數(shù)據(jù)庫(kù)的一個(gè)連接,使用如下代碼格式:

DriverManager.getConnection(連接字符串, 登錄用戶名, 登錄密碼);

例:DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs", "sa", "");

在此處關(guān)鍵的是連接字符串的內(nèi)容,localhost部分即服務(wù)器的名字,可以更改;1433部分為SQL Server使用的端口號(hào),根據(jù)實(shí)際情況修改即可;DatabaseName即為要連接的數(shù)據(jù)庫(kù)的名字,在此注意DatabaseName之前的是分號(hào),而不是冒號(hào)。

1.2.4 代碼實(shí)例測(cè)試

根據(jù)上述分析,修改1.1的測(cè)試類test,只需修改classform,和etconnection即可。一般都能測(cè)試成功。

但是jsp和sql2000相連接的時(shí)候,有時(shí)候很難測(cè)試成功,下面我就列出一些常見問題的解決辦法,供大家參考。

1.3 通過db browser 連接數(shù)據(jù)庫(kù)

使用這種方式連接數(shù)據(jù)庫(kù),你編輯java的工具應(yīng)該用eclipse,eclipse是一個(gè)開源軟件,現(xiàn)在逐步取代jbuilder被廣泛采用。具體的設(shè)置方式是,點(diǎn)擊windows菜單下的show view子菜單,然后選擇db browser,彈出的對(duì)話框中按要求設(shè)置數(shù)據(jù)庫(kù)驅(qū)動(dòng),連接好了以后點(diǎn)擊連接數(shù)據(jù)庫(kù),就可以看到數(shù)據(jù)庫(kù)中的數(shù)據(jù)了。這種方式的有點(diǎn)是使用是在eclipse中的db browser下就可以看到數(shù)據(jù)庫(kù),而不用sql2000數(shù)據(jù)庫(kù)。

2jsp和sql數(shù)據(jù)庫(kù)連接的常見錯(cuò)誤的解決辦法

2.1 運(yùn)行時(shí)提示錯(cuò)誤Error establishing socket

原因及解決辦法

①通過url連接的時(shí)候指定的服務(wù)器名稱或者服務(wù)器地址不正確,這一點(diǎn)你可以通過ping來驗(yàn)證。②指定的服務(wù)器上的sql server的服務(wù)沒有啟動(dòng),你可以通過sql server的查詢工具來驗(yàn)證這個(gè)問題。③指定端口錯(cuò)誤,sql server的默認(rèn)端口是1433。④sql server沒有提供tcp/ip的服務(wù),你可以通過sql server的管理工具來查看這個(gè)問題。⑤如果你的系統(tǒng)是 windows XP 或者 Windows 2003,那么升級(jí)你的SQL Server 2000,為其打上最新的補(bǔ)丁。這一步可能不是必需的,因操作系統(tǒng)環(huán)境而定,在不打補(bǔ)丁的情況,有時(shí)可以正常連接,有時(shí)卻不能,所以建議還是安裝最新的SQL Server 2000補(bǔ)丁(SP4)和JDBC驅(qū)動(dòng)(SP3)。一般情況下,打上SQL Server 2000的補(bǔ)丁就可解決。

2.2 運(yùn)行代碼提示"ClassNotFoundException"錯(cuò)誤

如果提示"ClassNotFoundException",那一定是 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 該段代碼拼寫有誤,或者是SQL Server 2000 Driver For JDBC Lib目錄下的三個(gè).jar文件未加入到CLASSPATH中。將驅(qū)動(dòng)包加入classpath中可以解決。假設(shè)SQL Server for JDBC 驅(qū)動(dòng)程序安裝在d:jdbc,則classpath應(yīng)該設(shè)置如下:

Classpath=.;…;d:jdbclib; :jdbclibmssqlserver.jar; :jdbclibmsutil.jar; :jdbclibmsbase.jar;注意:設(shè)置時(shí)要在最前面的點(diǎn)號(hào)和分號(hào)。

2.3為數(shù)據(jù)庫(kù)創(chuàng)建用戶和授權(quán)問題

如果在連接中出現(xiàn)類似"無法打開登錄 'XXX' 中請(qǐng)求的數(shù)據(jù)庫(kù)。登錄失敗。"或類似"拒絕了對(duì)對(duì)象 'ZZZ'(數(shù)據(jù)庫(kù) 'YYY',所有者 'dbo')的 SELECT 權(quán)限"的錯(cuò)誤。就應(yīng)該為數(shù)據(jù)庫(kù)創(chuàng)建用戶和授權(quán)。

在SQL2000中新建一個(gè)數(shù)據(jù)庫(kù)news和表test,有兩種方法為該數(shù)據(jù)庫(kù)創(chuàng)建用戶賬號(hào):

方法一、用查詢分析器為該數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)賬號(hào):sp_addlogin 'aa','123','news' ,其中'aa'為賬號(hào)名,'123'為密碼,'TEST'使用的數(shù)據(jù)庫(kù)。

然后授權(quán)賬號(hào)aa以用戶名aa訪問數(shù)據(jù)庫(kù)news

USE TEST

GO

sp_adduser 'aa','aa' //第1個(gè)aa為賬號(hào)名,第2個(gè)aa為訪問時(shí)的名字,若不設(shè)定,則默認(rèn)與賬號(hào)名相同。

方法二、用企業(yè)管理器右鍵點(diǎn)擊數(shù)據(jù)庫(kù)news下的用戶,選擇新建數(shù)據(jù)庫(kù)用戶,在登錄名中選擇,若沒有想添加的用戶,則選新建,在常規(guī)標(biāo)簽中輸入名稱(aa)、選擇登錄SQL的驗(yàn)證方式,然后在數(shù)據(jù)庫(kù)訪問標(biāo)簽下選擇允許該用戶賬號(hào)訪問的數(shù)據(jù)庫(kù),然后先點(diǎn)確定再點(diǎn)取消即可完成用戶的創(chuàng)建。接下來要雙擊剛創(chuàng)建的用戶aa,點(diǎn)擊權(quán)限,為數(shù)據(jù)庫(kù)用戶aa在下方對(duì)象列表中授予權(quán)限(通常是為表賦予查詢、更新、插入、刪除等權(quán)限)。

3 結(jié)束語(yǔ)

由于系統(tǒng)需求,最近在開發(fā)過程經(jīng)常用到j(luò)sp和SQL 2000,其中遇到了諸多問題,首先是SQL 2000數(shù)據(jù)庫(kù)的安裝問題,版本與操作系統(tǒng)的兼容性問題,還有sqlserve 和jdbc 的融合問題,sqlserver 操作問題,以及在連接測(cè)試過程中常見的一些問題。本文從使用角度出發(fā),列出了jsp和sql2000連接三種常用方法,歸納了常見的連接問題的解決辦法,希望能給遇到類似問題的jsp學(xué)習(xí)者作為參考。

參考文獻(xiàn)

[1] 武延軍,黃飛躍.精通JSP編程技術(shù)[M].北京:人民郵電出版社,2005.

[2]朱友芹,陳圣琳.網(wǎng)站規(guī)劃與建設(shè)[M].北京:電子工業(yè)出版社,2006.

[3]肖必武,用JSP構(gòu)建動(dòng)態(tài)網(wǎng)站[J]. 現(xiàn)代電子技術(shù),2007 年第三期.

作者簡(jiǎn)介: 莊生虎,男,1979年生,陜西志丹人,陜西廣電網(wǎng)絡(luò)傳媒股份有限公司延安分公司任職,從事數(shù)據(jù)庫(kù)應(yīng)用網(wǎng)絡(luò)維護(hù)工作。

猜你喜歡
授權(quán)端口數(shù)據(jù)庫(kù)
一種端口故障的解決方案
端口阻塞與優(yōu)先級(jí)
數(shù)據(jù)庫(kù)
數(shù)字出版授權(quán)的“結(jié)”與“解”
出版廣角(2016年16期)2016-12-13 02:37:56
在現(xiàn)代組織中的領(lǐng)導(dǎo)授權(quán)問題研究
論“公序良俗原則”在商標(biāo)授權(quán)中的適用
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
初識(shí)電腦端口
電腦迷(2015年6期)2015-05-30 08:52:42
前郭尔| 洞口县| 石棉县| 高唐县| 莱阳市| 和顺县| 德江县| 苏尼特左旗| 泰来县| 廉江市| 新田县| 八宿县| 林西县| 法库县| 涿鹿县| 乐亭县| 交城县| 民县| 浦县| 霞浦县| 昔阳县| 澎湖县| 蓝田县| 韶关市| 黄浦区| 锦屏县| 湖州市| 昌黎县| 资源县| 扎兰屯市| 通海县| 嘉定区| 宜阳县| 石嘴山市| 恩施市| 鹤庆县| 旌德县| 沂水县| 宣城市| 扶余县| 古交市|