2013-07-15 180 views
0

我遇到了一些與java eclipse和sql 2008 express的連接問題。我是新的這是日食,需要一些幫助。即時通訊使用sun.jdbc.odbc.JdbcOdbcDriver驅動程序的連接,並通過管理工具創建了我的dsn,這是使用的編碼: import java.sql。*;jdbc驅動程序連接問題(sun.jdbc.odbc.JdbcOdbcDriver)

public class JdbcFirstTry 
    { 
     public static void main(String args[]) throws SQLException 
    { 

     try { 
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 

       Connection con = DriverManager.getConnection("jdbc:odbc:movie_archive_DSN"); 
       System.out.print("you made connection"); 
      } 
      catch (Exception e) 
      { 

      e.printStackTrace(); 
     } 

    } 

    } 

這個,這是錯誤即時得到:

Data source name not found and no default driver specified 
可以

就如何解決這個錯誤的人提供建議?也TCP/IP是啓用和端口設置爲1433

我自己也嘗試這種方式很好,但一直得到超時錯誤:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

     String connectionUrl = "jdbc:sqlserver://WALSER:1433;databaseName=MYSQLDATABASE;user=walser/kyle;password=brenna1020;"; 

     Connection con = DriverManager.getConnection(connectionUrl); 

和錯誤是: 的TCP/IP連接主機WALSER,端口1433發生故障。錯誤:「連接被拒絕:connect。驗證連接屬性確保SQL Server的一個實例正在主機上運行並且在端口上接受TCP/IP連接請確保與端口的TCP連接沒有被防火牆阻止「。

+0

很明顯,因爲它說,嘗試檢查名稱是在OS和代碼 – 2013-07-15 20:23:03

+0

所有名稱拼寫正確相等。還有什麼可能嗎? – kyle5385

+0

你能直接通過操作系統ping數據源嗎?覈實。順便說一句,爲什麼你不直接連接到SQL Server? ODBC消耗你的性能好友,只需啓用[SQL身份驗證](http://www.codeproject.com/Articles/616114/SQL-Server-T-SQL-Tips-Tricks#xp_regeditwrite),下載驅動程序,並擁有一個直接連接:) – 2013-07-15 20:38:02

回答

0

要解決沒有默認驅動程序,您需要指定數據庫特定驅動程序的類型,例如,

  1. oracle.jdbc.driver.OracleDriver甲骨文
  2. com;sybase.jdbc3.jdbc.SybDataSource爲Sybase

其次請連接呼叫添加用戶名和密碼。

0

如你所說,你的協議(TCP)爲禁用,因此讓一些代碼激活它:) 源從codeproject

--step 1: creating a login (mandatory) 
create login login_to_system_after_injection with password='[email protected]'; 
GO 
--step 2: enabling both windows/SQL Authentication mode 
/*some server specific configurations are not stored in system (SQL)*/ 
--set the value to 1 for disabling the SQL Authentication Mode after . . . 
exec xp_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2; 
--step 3:getting the server instance name 
declare @spath nvarchar(256); 
--SQL SERVER V100 path, use SQL9 for V90 
exec master..xp_regread N'HKEY_LOCAL_MACHINE', 
       N'Software\Microsoft\Microsoft SQL Server\Instance Names\SQL' ,N'SQL10',@spath output,no_output 
--step 4:preparing registry path 
declare @insRegPath nvarchar(1024)=N'Software\Microsoft\Microsoft SQL Server\' + 
             @spath + '\MSSQLServer\SuperSocketNetLib\Tcp'; 
--step 5:enabling tcp protocol 
exec xp_regwrite N'HKEY_LOCAL_MACHINE', @insRegPath, N'Enabled', REG_DWORD, 1 --generally tries to enable all addresses. NOT Recommended 
--step 6:enabling remote access 
--EXEC sys.sp_configure N'remote access', 1 
GO 
RECONFIGURE WITH OVERRIDE --reconfigure is required! 
GO 
--step 7:a system restart is required in order to enabling remote access. 
--step 7.1:shutting down the server 
shutdown 
--After this command you need to start the server implicitly yourself. 
--or just configure the Agent in order to start the server at any shutdown or failure 

你需要一臺服務器運行reastart上面的代碼後,還需要系統管理員規則太:)

如果上面的代碼不工作,所以去開始 - >所有程序 - >微軟SQL服務器2008 - >配置工具 - > SQL Server配置管理

然後選擇「SQL服務器網絡配置「,然後選擇所需的實例,然後從右窗格啓用TCP/IP,然後重新啓動服務器,然後在Java應用程序中,您需要更改類名稱和連接字符串 下載庫,將其添加到類路徑,現在你的代碼會是這樣

public class JdbcFirstTry 
    { 
     public static void main(String args[]) throws SQLException 
    { 

     try { 
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

       Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DatabaseName;integratedSecurity=true;"); 
       System.out.print("you made connection"); 
      } 
      catch (Exception e) 
      { 

      e.printStackTrace(); 
     } 

    } 

    } 
以上integratedSecurity

= true意味着使用Windows帳戶進行連接,但簡單,你想補充與連接字符串的用戶名和密碼as user=MyUserName;password=*****

終於,有一個tr y和通知我關於花花公子的結果,希望你得到它運行:)

0

如果您使用的是Windows 7 64位轉到

C:\ WINDOWS \ SysWOW64中 和搜索odbcad32.exe的

從那裏你ODBC數據源管理員 和創建DSN

相關問題