import java.sql.*;public class lian
{
public Statement st=null;
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs";
    String userName = "sa";
    String userPwd = "sa";
    Connection dbConn;
    public void db_connect()
    {
      try 
         {
             Class.forName(driverName).newInstance();
             dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
             st=dbConn.createStatement();
             System.out.println("Connection Successful!");    
         }
         catch (Exception e) 
         {
             e.printStackTrace();
             System.out.println("connection failed");
         }
    }
   public static void main(String[] args)
    {
     lian li=new lian();
     li.db_connect();
    }
我把DatabaseName=pubs中的pubs随便改一个数据库(不存在的)最后也会输出Connection Successful!这是怎么回事啊?

解决方案 »

  1.   

     呵呵,首先谢谢关注,
    不过既然改成一个不存在的数据库,应该在 dbConn = DriverManager.getConnection(dbURL, userName, userPwd); 
    执行的时候就会抛出异常呀!所以不可能输出connection successful这句话才对呀,所以应该检测了数据库名的正确性,
      

  2.   

    不如把你的dbConn 打印出来看看是个什么东东
      

  3.   

    个人感觉执行dbConn = DriverManager.getConnection(dbURL, userName, userPwd); 是建立了与SQLserver的连接。而非指定数据库!
      

  4.   

    dbConn打印出来的结果是:(不论我把数据库改成什么都是:)com.microsoft.jdbc.sqlserver.SQLServerConnection@80f4cb
      

  5.   

    但我后面来对authors表进行操作的时候,它提示
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'authors' 无效。