2010-03-16 114 views
42

我在本地PC上安裝了MSSQL 2008,我的Java應用程序需要連接到MSSQL數據庫。我是MSSQL的新手,我希望爲我的Java應用程序創建用戶登錄並通過JDBC獲取連接獲得一些幫助。到目前爲止,我嘗試爲我的應用程序創建一個用戶登錄並使用以下連接字符串,但我根本不工作。任何幫助和暗示將不勝感激。如何使用JDBC連接到SQL Server 2008數據庫?

jdbc:jtds:sqlserver://127.0.0.1:1433/dotcms 
username="shuxer" password="itarator" 
+0

請發佈您正在嘗試連接的代碼,同時向我們提供您正在獲取的異常或錯誤 – developer 2011-09-05 10:35:44

+0

嘗試使用[Hibernate](https://www.hibernate.org/6.html#A2)。如果你還沒有聽說過它,那麼[看看這個工具]是時候了(http://docs.jboss.org/hibernate/stable/core/reference/en/html/)。廣泛傳播的對象關係映射(ORM)庫。 – Artic 2010-03-16 07:04:37

回答

-8

本示例Java程序使用JDBC連接到MySQL數據庫,執行查詢並檢索並打印數據庫字段的值。

此示例代碼可用於連接任何類型的數據庫,您只需更改連接URL(示例中的dbUrl)即可。爲使此代碼正常工作,您需要從mysql.com站點下載用於JDBC的mysql驅動程序,換句話說Java連接器。

如果在下載URL後仍然不起作用,那麼可能是由於類路徑。您必須在類路徑中添加驅動程序jar文件。

import java.sql.*; 
import javax.sql.*; 

public class jdbcdemo{ 

public static void main(String args[]){ 
String dbtime; 
String dbUrl = "jdbc:mysql://your.database.domain/yourDBname"; 
String dbClass = "com.mysql.jdbc.Driver"; 
String query = "Select * FROM users"; 

try { 

Class.forName("com.mysql.jdbc.Driver"); 
Connection con = DriverManager.getConnection (dbUrl); 
Statement stmt = con.createStatement(); 
ResultSet rs = stmt.executeQuery(query); 

while (rs.next()) { 
dbtime = rs.getString(1); 
System.out.println(dbtime); 
} //end while 

con.close(); 
} //end try 

catch(ClassNotFoundException e) { 
e.printStackTrace(); 
} 

catch(SQLException e) { 
e.printStackTrace(); 
} 

} //end main 

} //end class 
+1

OP是要求SQL服務器不是我的SQL ... – 2014-02-12 07:26:58

+3

請刪除這個答案。 – 2015-04-17 13:27:35

3

嘗試使用這樣的:JDBC:JTDS:SQLSERVER://127.0.0.1/dotcms;實例=實例名

我不知道你正在使用的MSSQL的版本,如果是Express版本,默認情況下爲SQLEXPRESS

不要忘記檢查,如果SQL Server Browser服務正在運行。

5

如果您連接時遇到問題,最可能的問題是您尚未在端口1433上啓用TCP/IP偵聽器。快速的「netstat -an」命令會告訴您它是否正在偵聽。默認情況下,SQL Server在安裝後不會啓用此功能。此外,您需要在「sa」帳戶上設置密碼,並啓用「sa」帳戶(如果您打算使用該帳戶進行連接)。

很明顯,這也意味着您需要在MSSQL節點上啓用「混合模式身份驗證」。

5

我也使用mssql服務器2008和jtds.In我的情況我使用以下連接字符串,它的工作原理。

Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://<your server ip  
address>:1433/zacmpf", userName, password); 
Statement stmt = con.createStatement(); 
26

您可以使用this

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

public class ConnectMSSQLServer 
{ 
    public void dbConnect(String db_connect_string, 
      String db_userid, 
      String db_password) 
    { 
     try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     Connection conn = DriverManager.getConnection(db_connect_string, 
        db_userid, db_password); 
     System.out.println("connected"); 
     Statement statement = conn.createStatement(); 
     String queryString = "select * from sysobjects where type='u'"; 
     ResultSet rs = statement.executeQuery(queryString); 
     while (rs.next()) { 
      System.out.println(rs.getString(1)); 
     } 
     } catch (Exception e) { 
     e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) 
    { 
     ConnectMSSQLServer connServer = new ConnectMSSQLServer(); 
     connServer.dbConnect("jdbc:sqlserver://<hostname>", "<user>", 
       "<password>"); 
    } 
} 
61

主要有兩種方式來使用JDBC - 使用Windows身份驗證和SQL身份驗證。 SQL身份驗證可能是最簡單的。你可以做的是這樣的:

String userName = "username"; 
String password = "password"; 

String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB"; 

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
Connection conn = DriverManager.getConnection(url, userName, password); 

將sqljdbc4.jar添加到構建路徑後。

對於Windows身份驗證,你可以這樣做:

String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB;integratedSecurity=true"; 
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
Connection conn = DriverManager.getConnection(url); 

,然後添加到sqljdbc_auth.dll作爲VM參數中的路徑(仍需要在構建路徑sqljdbc4.jar)。

請看看here瞭解如何使用jTDS和JDBC從Java連接到SQL Server的簡要步驟指南,如果您需要更多詳細信息。希望能幫助到你!

2

您可以嘗試配置SQL Server:

  1. 第1步:打開SQL Server 20XX配置管理器
  2. 步驟2:單擊協議爲SQL .. SQL Server配置。然後,右鍵單擊TCP/IP,選擇屬性
  3. 步驟3:單擊選項卡IP地址,編輯所有TCP。端口是1433

注:所有TCP端口爲1433 最後,重新啓動服務器。