2009-02-12 70 views
13

cấu hình của tôi:Làm cách nào để sử dụng trình điều khiển MS JDBC với MS SQL Server 2008 Express?

  • windows XP SP3
  • JDBC 2005
  • MS SQL Server 2008 Express, tiếp xúc qua tcp/ip trên cổng 1433
  • sqljdbc.jar trong đường dẫn lớp

Tôi đã thử:

try { 
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 
    con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433/SQLEXPRESS2008;databaseName=Test;selectMethod=cursor", "sa", ""); 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 

Nhưng nó luôn luôn ném một ngoại lệ:

java.sql.SQLException: No suitable driver 

Tôi cũng đã thử các url sau:

localhost:1433/SQLEXPRESS2008 

localhost/SQLEXPRESS2008 

localhost 

kết quả tương tự. Bất kỳ trợ giúp nào?

Trả lời

27

Bạn có URL sai.

Tôi không biết ý bạn là gì "JDBC 2005". Khi tôi nhìn vào trang web microsoft, tôi tìm thấy một cái gì đó gọi là Microsoft SQL Server JDBC Driver 2.0. Bạn sẽ muốn điều đó - nó bao gồm rất nhiều bản sửa lỗi và một số cải tiến hoàn hảo. [chỉnh sửa: có thể bạn sẽ muốn trình điều khiển mới nhất. Kể từ tháng 3 năm 2012, trình điều khiển JDBC mới nhất của Microsoft là JDBC 4.0]

Kiểm tra ghi chú phát hành. Đối với trình điều khiển này, bạn muốn:

URL: jdbc:sqlserver://server:port;DatabaseName=dbname 
Class name: com.microsoft.sqlserver.jdbc.SQLServerDriver 

Có vẻ như bạn có tên lớp chính xác nhưng URL sai.

Microsoft đã thay đổi tên lớp và URL sau lần phát hành đầu tiên của trình điều khiển JDBC. URL bạn đang sử dụng đi cùng với trình điều khiển JDBC gốc từ Microsoft, một MS gọi là "phiên bản SQL Server 2000". Nhưng trình điều khiển đó sử dụng một tên lớp khác.

Đối với tất cả các trình điều khiển tiếp theo, URL đã thay đổi thành biểu mẫu tôi có ở đây.

Đây là ghi chú phát hành cho trình điều khiển JDBC.

+5

Có vẻ như có một trình điều khiển v3.0 hiện có (tương thích với JDBC 4.0) http://msdn.microsoft.com/en-us/sqlserver/aa937724 – Nemi

+1

Có, thông tin trong câu trả lời này đã lỗi thời. Tôi khuyên các nhà phát triển nên truy cập trang web MS và lấy trình điều khiển mới nhất.Đồng thời đọc ghi chú phát hành để xác minh tên lớp và URL. Tại thời điểm này họ không thay đổi, nhưng nó có ý nghĩa để kiểm tra. – Cheeso

+1

Kể từ tháng 3 năm 2012, trình điều khiển JDBC mới nhất được Microsoft xuất bản là v4.0: http://www.microsoft.com/en-us/download/details.aspx?id=11774 – Cheeso

-2

Bạn có thể thử cách sau. Hoạt động tốt trong trường hợp của tôi:

  1. Tải về các hiện jTDS JDBC Driver
  2. Đặt jtds-x.x.x.jar trong classpath của bạn.
  3. Sao chép ntlmauth.dll vào windows/system32. Chọn dll dựa trên phần cứng của bạn x86, x64 ...
  4. Url kết nối là: 'jdbc: jtds: sqlserver: // localhost: 1433/YourDB', bạn không phải cung cấp tên người dùng và mật khẩu.

Hy vọng điều đó sẽ hữu ích.

+2

Họ đang yêu cầu làm thế nào để sử dụng trình điều khiển MS , không phải trình điều khiển JTDS. Xin lỗi (-1) – javamonkey79

+0

Câu hỏi không rõ ràng nói rằng anh ta phải sử dụng trình điều khiển MS. Có lẽ người hỏi không biết jTDS. Nói chung, các jTDS được biết là hoạt động tốt hơn, vì vậy có thể không phải là một giải pháp trực tiếp, mà là một giải pháp thay thế tốt. – Adrian

+0

Cảm ơn bạn đã downvoting một câu trả lời 7 tuổi. Các bạn là những nhà vô địch. – raupach

3

Nếu giá trị databaseName bạn là chính xác, sau đó sử dụng này: DriverManger.getconnection("jdbc:sqlserver://ServerIp:1433;user=myuser;password=mypassword;databaseName=databaseName;")

+1

Thêm 'microsoft:' này cho tôi : 'java.sql.SQLException: Không tìm thấy trình điều khiển phù hợp cho jdbc: microsoft: sqlserver: // ...' – Baumann

+0

@Baumann Cảm ơn bạn đã chỉ ra. Sẽ cập nhật câu trả lời – Mritunjay

0

mới nhất Người tài xế kết nối JDBC MSSQL có thể được tìm thấy trên JDBC 4.0

Các tập tin lớp nên trong classpath. Nếu bạn đang sử dụng eclipse bạn có thể dễ dàng làm như vậy bằng cách làm như sau ->

Right Click Project Name -> Properties -> Java Build Path -> Libraries -> Add Chum ngoài

Cũng như đã được chỉ ra bởi @Cheeso cách chính xác để truy cập là jdbc: sqlserver: // server: cảng; DatabaseName = dbname

trong khi đó hãy tìm một lớp học mẫu để truy cập MSSQL DB (năm 2008 tại trường hợp của tôi).

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 SampleTable"; 
     ResultSet rs = statement.executeQuery(queryString); 
     while (rs.next()) { 
      System.out.println(rs.getString(1)); 
     } 
     conn.close(); 
     } catch (Exception e) { 
     e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) 
    { 
     ConnectMSSQLServer connServer = new ConnectMSSQLServer(); 
     connServer.dbConnect("jdbc:sqlserver://xx.xx.xx.xxxx:1433;databaseName=MyDBName", "DB_USER","DB_PASSWORD"); 
    } 
} 

Hy vọng điều này sẽ hữu ích.

3
  1. Tải JDBC driver mới nhất (tức là sqljdbc4.0) từ Microsoft trang web
  2. Viết chương trình như sau:

    import java.sql.*; 
    class testmssql 
    { 
        public static void main(String args[]) throws Exception 
        { 
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
         Connection  con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; 
           databaseName=chapter16","sa","123");//repalce your databse name and user name 
          Statement st=con.createStatement(); 
         ResultSet rs=st.executeQuery("Select * from login");//replace your table name 
         while(rs.next()) 
         { 
          String s1=rs.getString(1); 
          String s2=rs.getString(2); 
          System.out.println("UserID:"+s1+"Password:"+s2); 
         } 
         con.close(); 
        } 
    } 
    
  3. Biên soạn chương trình và thiết lập tức jar classpath: set classpath=C:\jdbc\sqljdbc4.jar;.; Nếu bạn đã lưu tệp jar của bạn trong C:\jdbc sau khi tải xuống và giải nén.

  4. Chạy chương trình và đảm bảo bật dịch vụ TCP/IP của bạn. Nếu không được kích hoạt, sau đó làm theo các bước sau:
    1. Vào Start -> All Programs -> Microsoft SQL Server 2008 - công cụ> Cấu hình -> SQL Server Configuration Manager
    2. Mở rộng Sql Server Cấu hình mạng: chọn của bạn MS SQL Server Instance viz. MSQSLSERVER và bật TCP/IP.
    3. Khởi động lại MS SQL Server Instance của bạn. Điều này có thể được thực hiện cũng từ menu chuột phải của Microsoft SQL Server Management Studio ở cấp thư mục gốc của máy chủ dụ MS SQL của bạn
0

trường hợp được đặt tên?

URL: jdbc: sqlserver: // [ServerName] [\ instanceName] [: PortNumber] [; tài sản = value]

Lưu ý: lùi giảm

Các vấn đề liên quan