package pkg;import java.sql.*;class GetCon{
Connection con;
public Connection getConnection(){
try{                                                                    
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");                                   
     System.out.println("成功加载SQL驱动程序");  
     con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DataBaseName=Test","sa","123");
     if(con!=null){
      System.out.println("数据库连接成功");
     }
        }                              
   catch(Exception e){
   e.printStackTrace();
       //System.out.println("找不到SQL驱动程序");                                                            
         }  
return con;
}
}public class Main{
public static void main(String []args){ 
GetCon getCon=new GetCon();
getCon.getConnection();
                          
}
}
安装完SQLServer后想测试下能否正常连接,然后报错成功加载SQL驱动程序
com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 "Test"。登录失败。 ClientConnectionId:c0598429-6bd5-4fde-8b5d-d7ca2a39e062
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:279)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:99)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4346)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at pkg.GetCon.getConnection(Main.java:14)
at pkg.Main.main(Main.java:30)然后我想是不是SQL的问题,尝试命令行运行连接SQL,结果
但是这个数据库是存在的,为什么会出现这种情况呢

解决方案 »

  1.   

    select * from sysobjects where xtype='U'执行这句,看看有没有哪个表
      

  2.   

    我在命令行新建Test数据库然后就连接成功了看来问题是在于Test数据库不存在,但是我明明在SQL里新建了的,为什么会出现这种情况
      

  3.   

    1.TEST数据库不存在。
    2.没有给当前用户访问TEST数据库的权限。