2013-06-20 144 views
0

我正在通過JDBC4.0訪問SQL Server 2008數據庫。問題是我可以訪問我的數據庫只是當我的glassfish服務器重新啓動時,它通常運行代碼,但一次,如果我對代碼進行任何更改,我必須重新啓動glassfish服務器,否則會生成以下錯誤。JDBC和Sql Server 2008連接性

警告:無法加載sqljdbc_auth.dll原因:本地庫C:\ WINDOWS \ SYSTEM32 \ sqljdbc_auth.dll已裝入另一個類加載器

請指導我該怎麼做才能解決這個問題我正在使用Eclipse編輯器的問題。並且我的代碼是

String url = "jdbc:sqlserver://localhost;databaseName=ProductDB; integratedSecurity=true;"; 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 
     con = DriverManager.getConnection(url); 
     System.out.println("Connected"); 
+1

這是一個警告不是錯誤。 –

+0

是的,但我不能訪問數據庫表和其他數據 – wixxey

+0

那麼你需要更新你的問題,因爲你在問題中陳述了「我可以訪問我的數據庫」。 –

回答

0

如果您在xml或.java文件中做任何更改,您必須重新啓動。

如果您使用可重新加載的資源束來讀取屬性文件,那麼就可以了。

更新: 只需進入頂部欄中的項目,而不是勾選「自動構建」。它將停止自動構建項目並節省您的寶貴時間。

+0

thanx suleo,每次我做出更改我必須重新啓動glassfish .. 。有沒有更好的解決方案,因爲這太忙碌 – wixxey

+0

請告訴我,你使用任何IDE進行開發? – sunleo

+0

我使用eclipse juno – wixxey

1

如果在GlassFish中正確定義數據源,你應該能夠簡單地重新部署應用程序才能看到更改.java文件(你甚至可以用熱部署,雖然我與經驗已經不到大)。 XML文件甚至不需要重新部署。

更新:我從編輯中看到你正在手動加載驅動程序等。我建議你讓GlassFish管理數據源並使用資源注入來獲取連接。

編輯:正確地重新讀取您的問題......如果您使用的是sql認證,則不需要sqljdbc_quth.dll庫,但它會加速對sql server的認證。我嘗試了我們的產品之一,但它沒有造成任何明顯的差異,所以我從來沒有打擾過。

+0

但是如果我不使用這個dll,我的db數據沒有加載 – wixxey

+0

ru建議使用spring framework – wixxey

+0

如果你使用windows集成安全性進行身份驗證,你確實需要'sqljdbc_auth.dll' –