關於在Java中鏈接SQLServer數據庫中失敗的原因分析


首先聲明:筆者是Java的初學者,並且一值是走在自學的道路上,長久以來只有“度娘”相伴。(加入了各種Java學習群,基本沒有熱心幫人解決問題的。可以理解-_-!!!)大神級的人物就不必看拙文了,沒有什么技術含量。主要是把Java在鏈接SQLserver數據庫中遇到問題的系統解決方法總結梳理下。廢話就不說了,言歸正傳:

筆者在做Java練習時,對關於鏈接SQLserver數據庫的方法,通過貼心的“度娘”查了很多有借鑒意義的博文,受教非淺。於是本着人人為我的精神照搬了其中一個代碼較工整清晰的案例(是誰的我忘記了,因為太多了~_~)。之后令人驚悚的事件發生了,在調試中,一連串的紅色EXception沖刷着我的屏幕。上帝啊,那個案例明明在結束語處,寫着“測試通過”,為毛在我這里就對我如此這般殘忍。好奇心使我不干屈服,我懷着懊惱的心情拿起了鼠標,拖動這哪一行行看不懂的紅文,直至頂端。啊!在我有限的鳥語庫里終於搜索到了熟悉的內容“ClassNotFindException”。當看到熟悉的景物一種興奮之感悠然而生,但隨后邊消失了。因為一個跟現實的問題突然閃現在我的腦海中:“哪代表的是啥意思?”。無奈之下,又在此求助了百求不厭的“度娘”。原來是沒有驅動啊!(怎么還要另裝驅動啊,不是自帶的啊O_O~,看來離我想想的便捷還有段距離。)知道原因就簡單了,讓“度娘”幫找驅動去,很快就找到了,並下載到的庫里。激動的心情難以言表,顫抖的鼠標打開了驅動文件夾,靠!怎么有兩個文件,我要用那個。在此蒙圈的我又去問了“度娘”,原來是兼容問題:SQLJDBC.jar是兼容Java1.6之前的;SQLJDBC4.jar是兼容Java1.6之后的;問題高清了,我果斷的查了下我的版本:1.8,嗯,看來是SQLJDBC4.jar了。要給它安個家啊,要不怎么能安心工作呢!標准地址是:/java/jdk/jre/lib/ext下。還要把地址告訴我的開發工具,好指導上哪兒去找去,classpath。一切都搞定了這下你該可以了吧。在此運行起我的測試程序。俗話說:“殘酷的打擊不會只有一個”,又是一堆看不的紅文,這是又怎么了,不是已經給你驅動了嗎?還真是難伺候啊。耐着性子繼續和“度娘”做着和之前一樣的工作。在“度娘”幫助下問題是搞清楚了,用戶名登錄失敗!!!!。天啊,什么情況!我明明可以通過配置工具登錄的用戶名,怎么到你着就不靈了啊,成黑戶了嗎?沒關系,”度娘“是萬能的,一問便知。原來SQLserver的身份管理上是區分windows身份和SQLserver身份的,通過外部程序訪問要通過SQLserver身份驗證才行,原來如此。那就給俺一個sqlserver的身份唄。通過登錄管理工具,在安全性里選擇兩者皆可的混合模式(看來window模式是必須的了)。設置好之后,在用戶里啟用了我要使用的用戶名,設置好密碼。好了,累死我了。這下終於完成了。俗話說:“再一再二,不能再三”,這下總該讓我看到久違的“鏈接成功”的消息了吧,哈哈~。我迫不及待地在次運行了程序,有時,我總覺得上帝是在故意整我,哪看到想吐的紅文,又在此如約而至的來了,而且還和上次的一模一樣,我去,我不是已經給你開通了嗎,哪怕你有點新信息也好啊。難道我折騰半天白費了嗎?

現實是殘酷的,一切還要從頭開始。本來我已經打算放棄了,在“度娘”一通漫無目的的海搜中看到,還要在SQLserver的配置工具中配置TCP/IP協議的地址和端口號127.0.0.1:1433都配置好了,可問題依然如故,煩躁之感,時不時的偷襲着我。無聊之下看着配置工具里的內容,突然一個問題引起了我的注意,怎么在配置工具里有兩個SQLserver的網絡配置項,其中一個多了一個32是什么意思,點開之后發現里面的內容和另一個是完全一樣的,只是協議名字有了區別,一個是MSSQLSERVER,一個是SQLEXPRESS。協議中的內容是一樣的,只是一個是全啟動狀態,一個是全禁用狀態,突然我靈光一閃(^O^)好像這個跟用管理工具登錄時選擇服務起名稱是一樣的啊。難道問題出在這里了嗎,頓時倦意全無,在管理工具上試着換下服務器名稱登錄下,果然登錄失敗。這下我終於明白了問題的根源,果斷的關閉另一服務器,把另一服務器中禁用的項全打開。在進行我之前程序的測試。盼望已久的“鏈接成功”信息終於出現在了我的眼前。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM