国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JDBC錯(cuò)誤FAQ

說明:本FAQ是在前任斑竹converse整理的文章的基礎(chǔ)上結(jié)合廣大站友的問題,在對回答進(jìn)行了綜合后完成。鑒于本人水平有限,內(nèi)容如有錯(cuò)誤之處,請廣大站友指出,以免耽誤大家的學(xué)習(xí)。如果您認(rèn)為內(nèi)容有什么疏漏之處,也請指出,我會在下一篇FAQ中做出改正。

 

本文只是整理了近期兩個(gè)月的典型FAQ,其他有價(jià)值的FAQ會稍后整理發(fā)表,2005-11-22

[最新帖子2005-11-22]

問題1:出現(xiàn)ClassNotFoundException

這個(gè)問題是由于你沒有把driver類放到你的classpath中,也就是說你的程序找不到驅(qū)動類,包括三個(gè)包:msutil.jar,msbase.jar,mssqlserver.jar
--
解決:jb:可以在工程屬性中加入這三個(gè)包,netbean:可以把這三個(gè)包copy到某一個(gè) lib下,也就是某個(gè)類的公共庫中。

問題2:出現(xiàn)[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket

這個(gè)錯(cuò)誤,不論在什么情況下,凡是出現(xiàn)這種錯(cuò)誤的,都不是程序本身的錯(cuò)誤,因?yàn)榇蟛糠秩硕贾溃?/span>jdbc:microsoft:sqlserver:@/localhost:1433;這樣寫是對的,但為什么這樣寫呢

下面我們就詳細(xì)的看一下如何用jdbc連接到sqlserver2000(引自converse斑竹的帖子)
介紹連接server2000的方法之一:使用DriverManager.getConnection(...)連接到數(shù)據(jù)庫有兩種方法,one is :with a connection url through the jdbc driver manager,another is with a jndi datasource.

我們先說第一種:使用DriverManager.getConnection()方法
第一:你需要設(shè)置classpath,它是你的jvm加載類時(shí)所要尋找的路徑。
當(dāng)然首先你要有jdbs driver for sqlserver
設(shè)置環(huán)境變量:window os:set classpath=.;${your path to save the driver}/msbase.jar;${}/mssqlserver.jar;${}/msutil.jar
第二:注冊你的驅(qū)動registering the driver
注冊驅(qū)動告訴你得jdbc管理器去加載什么驅(qū)動程序類,
當(dāng)使用class.forName(),你必須指定驅(qū)動類名稱,
com.microsoft.jdbc.sqlserver.SQLServerDriver.
例如:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
第三:在注冊完一個(gè)驅(qū)動類后,你必須把你的數(shù)據(jù)庫的物理信息以一個(gè)url的形式傳給管理器,下面是一個(gè)url模版:jdbc:microsoft:sqlserver://server_name:port,其中server2000默認(rèn)的端口號為:1433.下面是一個(gè)例子:
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://server_name:1433","userName","password");
注:這里的server_name必須是一個(gè)ip address,或者一個(gè)主機(jī)名,你可以使用ping命令來測試你的主機(jī)名是否傳回一個(gè)正確的ip address
下面是 連接url的屬性解釋:
------------------------------------------------------------------------------
---
屬性----------------------------------------說明--------------
--DatabaseName(0)                   ------the name of the sql server database to which you want to connect
--HostProcess  (O)                    ------the process ID of the application connecting to SQL Server

2000.The supplied value
                                          ------appears in the "hostprocess" column of the sysprocesses table.
--NetAddress(O)                    ------the MAC address of the network interface card of the

application  connnecting to sql  .server 2000.the supplied

value appears in the "net_address" column  of

the sysprocesses table.
--Password                         ------the case-insensitive password used to connect to your sql

server database.
--PortNumber(O)                    ------the tcp
端口號(一般在使用datasource時(shí)使用)默認(rèn)為:1433
--ProgramName(0)                   ------the name of the application connecting to sql server 2000,

the supplied value appears in  the "program_name" column of

 the sysprocesses table.
--SelectMethod                     ------SelectMethod={cursor|direct}.determines wherther database

 cursors are used for select  statements .performance and behavior

of the driver are affected by

the selectMethod.                                         

-------setting.Direct:       --------the direct method sends the complete results set in one request

to the driver .it is useful for queries that only produce a small amount of

data that you fetch completely,you should avoid using direct when

executing queries that produce a large

amount of   data,as the result set is cached completely on the client

and constrains memory .In this mode,each statement requires its

 connection to the database.this is accomplished by

cloing connections .

-------cloned             connections use the same connection properties as the

original connection;however,because transactions occur on a

single connection,auto commit mode is required,Due to this,JTA is

not supported in direct mode.In addition,some operations,such as

updating an insensitive result set,are not supported in direct mode

because driver create a second statement internally.Exceptions

generated due to the creation of cloned statements usually return

an error message similar to "Cannot start a cloned connection while

in manual transaction mode"
----Cursor:          ------when the selectMode is set to cursor ,a server-side cursor is generated

行被以一起的方式提取出來,JDBC語句setFetchSize這時(shí)候就起作

用了,它可以控制每次提取的行數(shù),cursor值在查詢結(jié)果產(chǎn)生大量數(shù)

據(jù)的時(shí)候非常有用,并且也用在jta中,但是setFetchSize具體設(shè)置

多大,這是沒有什么規(guī)則的,只能通過多多嘗試找到一個(gè)合理的值。

--
解決:啟動你的sqlserver2000的服務(wù)器網(wǎng)絡(luò)實(shí)用工具后,確保你的Tcp/Ip協(xié)議已啟動,默認(rèn)的應(yīng)該都啟動了,這是進(jìn)行通訊的條件一
然后,在選中Tcp/Ip協(xié)議后點(diǎn)擊屬性,就看到了一個(gè)默認(rèn)端口號,這就是你在 getConnection里用到的端口號,你必須把你程序里用
到的端口號,寫成這里的值,這樣才能解決上面的問題,當(dāng)然你也可以在這里把端口號給該了,而保持程序不變!

問題3:有些時(shí)候也連接上了,但就是不能訪問,或者提示說sql語句有錯(cuò)誤
--解決:這些都是管理sqlServer2000所需要注意的,或許你沒有給這個(gè)用戶分配足夠的權(quán)限,或者你的sql語句中用到了sqlserver里保留的
關(guān)鍵字,我就遇到了這樣一個(gè)問題:我寫了個(gè) select * from USER這個(gè)語句怎么執(zhí)行都不對,后來看了分析器,才知道這是一個(gè)關(guān)鍵字,你不可以用它來命名的!
錯(cuò)誤:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Can‘t start a cloned connection while in manual transaction mode.
A:
這個(gè)錯(cuò)誤產(chǎn)生的原因一般是當(dāng)你在一個(gè)SQL SERVERJDBC連接上執(zhí)行多個(gè)STATEMENTS的操作,或者是手動事務(wù)狀態(tài)(AutoCommit=false) 并且使用 direct (SelectMethod=direct) 模式. Direct 模式是默認(rèn)的模式.
解決辦法
當(dāng)你使用手動事務(wù)模式時(shí),必須把SelectMethod 屬性的值設(shè)置為 Cursor, 或者是確保在你的連接上只有一個(gè)STATEMENT操作。

問題4java.sql.SQLException

A:這個(gè)錯(cuò)誤產(chǎn)生的原因一般是當(dāng)你在一個(gè)SQL SERVERJDBC連接上執(zhí)行多個(gè)STATEMENTS的操作,或者是手動事務(wù)狀態(tài)(AutoCommit=false) 并且使用 direct (SelectMethod=direct) 模式. Direct 模式是默認(rèn)的模式.
解決辦法
當(dāng)你使用手動事務(wù)模式時(shí),必須把SelectMethod 屬性的值設(shè)置為 Cursor, 或者是確保在你的連接上只有一個(gè)STATEMENT操作。

問題5xp出現(xiàn)[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket

AWinXP sp2下,sqlserver 不能用jdbc,下載 sql server sp3,下載jdbc sp3的驅(qū)動,裝上以后就正常了:下載Microsoft  SQL  Server  2000  Service  Pack  3a并安裝,SQL請選用混和安裝模式;下載SQL  Server  2000  Driver  for  JDBC  Service  Pack  3  并安裝。

另外一種解決辦法:本機(jī)的SQL Server 2000 當(dāng)客戶端,直接連接到主機(jī)(Windows XP)上的SQL Server 2000數(shù)據(jù)庫,也就是在本機(jī)上新注冊一個(gè)SQL Server,指向服務(wù)器上的SQL Server。這樣再運(yùn)行一下原來的Java 程序就不會出現(xiàn)Error establishing socket這個(gè)錯(cuò)誤了

問題6Microsoft JDBC "ResultSet Can Not Re-Read Row Data" Error

A:使用MS SQL Server 2000 SP3a/SP4做數(shù)據(jù)庫服務(wù)器時(shí),用Microsoft提供的JDBC驅(qū)動(2.2.0040),在查詢時(shí)遇到一個(gè)SQLException
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column #
。查詢語句和JDBC代碼都沒有問題,懷疑是Microsoft驅(qū)動的BUG,google一下果然在Microsoft support站點(diǎn)發(fā)現(xiàn)了問題:http://support.microsoft.com/kb/824106,原因是如果該表存在TEXT, NTEXT, IMAGE等大型字段,對于ResultSet的字段讀取必須按照從左向右讀,如果你用:
int a = rs.getInt(2);
int b = rs.getInt(1);
則報(bào)錯(cuò)。Microsoft給出的方案是不能從右往左也不能連續(xù)讀2次。沒辦法自己改代碼,嚴(yán)格從左向右讀,結(jié)果就沒有問題了。

問題7當(dāng)oracle procedure中使用了事務(wù)時(shí),jta的事務(wù)不起作用

A:用jdbc調(diào)用存儲過程,存儲過程中最好不要有事務(wù),除非所有的數(shù)據(jù)庫操作都在存儲過程中完成;如果存儲過程中有事務(wù),該事務(wù)能提交或回滾本次同數(shù)據(jù)庫會話中進(jìn)行的所有操作。包括在程序中進(jìn)行的還沒有提交的操作;無論在jta還是在存儲過程中的事務(wù),其控制的對象都是同數(shù)據(jù)庫的會話,所以其本質(zhì)是一樣的。

問題8連接池不斷增加直至weblogic down機(jī)

A應(yīng)該是程序建立連接的方式和關(guān)閉方式不當(dāng)造成的,可以在連接池設(shè)置一下Inactive Connection Timeout

問題9SQL的服務(wù)自動停止的問題

A:錯(cuò)誤原因:
線程試圖對一個(gè)虛地址進(jìn)行讀或?qū)?,但沒有做適當(dāng)?shù)拇嫒 ?/span>
解決方法
注意:從 SP3 安裝 CD 或安裝目錄運(yùn)行以下命令。在下面的步驟中,安裝目錄是 C:\sql2ksp3

1. 在命令提示符處,運(yùn)行以下命令,將 CAB 格式的自解壓文件 SQLRedis.exe 中的文件解壓縮到 C:\Extract 文件夾中:
C:\sql2ksp3\x86\other\sqlredis.exe /T:C:\Extract /C
注意:SQLRedis.exe 文件位于安裝目錄中的 \x86\Other 文件夾中。
2.
C:\Extract 文件夾中找到 Mdac_qfe.exe 文件,然后運(yùn)行 Mdac_qfe.exe 文件。
3. “Microsoft Data Access Components Hotfix Installer”
對話框打開,顯示出您正在安裝修復(fù)程序。單擊確定,繼續(xù)安裝修復(fù)程序。 
4.
成功安裝 MDAC 修復(fù)程序 (Mdac_qfe.exe) 后,再次運(yùn)行 SQL Server 2000 SP3 安裝程序,成功完成安裝。

問題10DB2type4驅(qū)動程序一直出現(xiàn)如下的錯(cuò)誤:com.ibm.db2.jcc.a.DisconnectException: encoding not supported

A:在建立Database時(shí),必需選UTF-8的編碼,如果選用Big5時(shí)會出現(xiàn)encoding not supported的錯(cuò)誤。DB2JDBC 只支持UTF-8的編碼方式。解決方法也就是用不同的字符集創(chuàng)建數(shù)據(jù)庫:
db2 drop db userdb
export LANG=en_US.iso88591
db2 create db userdb

問題11jb2005mysql連接報(bào)錯(cuò)com.borland.dx.dataset.DataSetException: The URL: jdbc:jdbc:mysql://localhost/mydata could not be found.  Check for misspellings, and that the right driver is present on the classpath

A配置Tools-->Enterprise  Setup-->Database  Drivers-->Add,加入User  Home/mysql
后,要重新啟動一下你的JBuilder才可以的。

問題12:oracle存取blob字段出現(xiàn)ORA-01002:fetch out of sequence錯(cuò)誤

A1.禁用自動提交試試。如果你仍然有其他的行在查詢的時(shí)候也禁用手工提交,當(dāng)有for?。酰穑洌幔簦逵螛?biāo)仍然打開時(shí)執(zhí)行的任何提交可能會造成這個(gè)錯(cuò)誤。
setAutoCommit(false)
2.
升級補(bǔ)丁
Versions Affected
This problem affects Oracle versions:
8.1.7.3 and 8.1.7.4
9.0.1.3
9.2.0.1 (Base Release)
The problem does NOT affect:
Versions prior to and including 8.1.7.2
9.0.1.0 to 9.0.1.2 inclusive
9.0.1.4
9.2.0.2 onwards (not available at time of writing)

問題13喆、娗、奭、珺、旻、奭、旻等怪異字符插不進(jìn)informix數(shù)據(jù)庫

AGBK不是標(biāo)準(zhǔn)字符集,除了GB2312,你可以試試GB18030,如果支持GB18030那什么中文字符都能插入。

問題14Jbuilder連接interbase數(shù)據(jù)庫提示[interclient][interbase]connection rejected by remote interface

A是不是客戶端和服務(wù)端版本不一致;防火墻導(dǎo)致;登錄用戶的權(quán)限是否足夠。

問題15:SQL Server 的身份驗(yàn)證模式改不過來怎么辦

A企業(yè)管理器-〉新建SQL注冊,看看幫助文檔

問題16 weblogic server定義連接連接池,測試連接時(shí)總是提示找不到類路徑

A:將類文件放在server\lib下,然后在server\bin\setWLSEnv.cmd中將他們添加進(jìn)去

問題17:JDBC Connection Pool 測試出現(xiàn)異常:Warning! Connectivity to backend database not verified. This is either because required connection pool attributes "TestConnectionsOnReserve" or "TestConnectionsOnRelease" have not been enabled, or an invalid value has been specified for attribute "TestTableName". Please check the server log for more details

Aweblogic的控制臺中,配置pool完畢后要選擇Test Reserved Connections 、 Test Released Connections選項(xiàng);另外要指定測試要連接的表的名稱。

問題18為了復(fù)用Connection,我在excute()方法的開始部分取得連接,在結(jié)束時(shí)釋放Connection。在excute()方法中將Connection傳遞給DAO進(jìn)行數(shù)據(jù)庫操作。請問這樣做有什么缺陷,應(yīng)該怎樣做?從DataSource中取Connection是個(gè)很耗時(shí)的操作嗎?

A最好不要這樣做,從服務(wù)器的connection pool 中獲取連接時(shí)間很短,大概是1%秒的樣子,所以用了就釋放最好了,不會引起connection leak

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
到主機(jī)的TCP/IP連接失敗(SQL2000數(shù)據(jù)庫,使用的jar包是sqljdbc...
sqlserver的jdbc配置方法
ADO連接數(shù)據(jù)庫字符串大全(VP,Excel,文本,Sybase,.NET等) - 設(shè)計(jì)前...
java.lang.ClassNotFoundException: com.microso...
SQL Server2005添加關(guān)系圖時(shí)提示 "此數(shù)據(jù)庫沒有有效所有者..."
Win7 附加數(shù)據(jù)庫失敗 錯(cuò)誤5120
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服