2017-06-29 80 views
0

我很难将我的Microsoft SQL Server数据库表连接到我的Java项目,成功设计了我的项目。将Microsoft SQL Server数据库连接到我的Java项目

每当我跑我的连接,该项目框架加载成功,但因为我通知没有合适的驱动程序找到我的数据库的数据库被破坏。

我已经将我的sqljdbc4驱动程序添加到项目的库中,它仍然会提供此类警报。

这里是我的连接代码:

public void doConnect(){ 
     try{ 
     String un = "casey"; 
     String pw = "****"; 
     String host = "jdbc:sqlserver://caseydido\\mssqlexpress:1433;databaseName=stock"; 

     String sql = "SELECT * FROM STAFF_DATA"; 
     //loading the driver class 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //This is for driver sqljdbc2* 
//  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); /*This is for driver sqljdbc4*/ 
     Connection conn = DriverManager.getConnection(un, pw, host); 
     Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
     ResultSet rs = stmt.executeQuery(sql); 
     while (rs.next()){ 
      System.out.println(rs.getString(1)); 
      conn.close(); 
     } 

注意凯西是数据库表的用户名,数据库的名称是股票,****代表我的密码。

我也尝试添加sqljdbc4驱动程序路径到我的系统环境变量路径,它仍然没有工作。

+2

您可能需要仔细检查手册中'DriverManager.getConnection()'的签名。 – mustaccio

+2

更具体一点:签名是['DriverManager。 \t getConnection(String url,String user,String password)'](http://docs.oracle.com/javase/8/docs/api/java/sql/DriverManager.html#getConnection-java.lang.String-java .lang.String-java.lang.String-)换句话说:你用错误顺序的参数调用它。一些事情,顺便说一句,如果你真的阅读了整个异常消息,应该立即显现出来。 –

+0

不相关,但:''Class.forName()'不再需要。 –

回答

0

首先第一件事情:

您需要更正下面的代码,由马克Rotteveel提及。另外,考虑为你的变量使用有意义的名字,以便你了解到底发生了什么。

Connection conn = DriverManager.getConnection(un, pw, host); 

以下几点:

Connection conn = DriverManager.getConnection(host, un, pw); 

您需要添加SQLJDBC连接器罐子在项目的构建路径(如果你使用的是IDE像ECLIPSE),并考虑将路径连接器罐环境变量CLASSPATH

请按照MSDN文档使用正确的语法构造主机URL。文档here

编辑-1:

根据你的代码,连接应该是因为你犯了一个错误的被关闭。您需要将此更改为:

while (rs.next()){ 
    System.out.println(rs.getString(1)); 
    conn.close(); 
} 

以下为解决您的问题!

while (rs.next()){ 
    System.out.println(rs.getString(1)); 
} 
conn.close(); 

希望这有助于!

+0

感谢您对N00b程序员的回应。我了解我的变量名称。我已将sqljdbc4添加到我的项目库中。至于连接(host,un,pw),我试过了,它显示错误。解决了,但现在它显示了CONNECTION IS CLOSED ....同时,我的项目成功打开了 –

+0

@CaseyRunor,根据来自OP的最新评论编辑了我的答案 –

相关问题