我在Struts程序连接数据库,测试的时候报错,如下:
com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.login.conn.DBConnection.getConn(DBConnection.java:24)
at org.login.conn.DBConnection.execuQuery(DBConnection.java:68)
at org.login.daoimpl.PersonDAOImpl.isLogin(PersonDAOImpl.java:17)
at org.login.struts.test.Test.main(Test.java:18)
Exception in thread "main" java.lang.NullPointerException
at org.login.conn.DBConnection.execuQuery(DBConnection.java:71)
at org.login.daoimpl.PersonDAOImpl.isLogin(PersonDAOImpl.java:17)
at org.login.struts.test.Test.main(Test.java:18)

这是怎么回事,请大家帮忙看一下,先谢了!!!

解决方案 »

  1.   

    1.服务器端SQL服务启动不正常。
    2.用户名密码不对。
      

  2.   

    这是连接字符串文件:
    driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
    url=jdbc:sqlserver://localhost:1433;databaseName=loginData
    username=sa
    password=lofty 
    这是连接代码:
    String driverName=ReadStream.getInstance().getProperty("driver");
    String url = ReadStream.getInstance().getProperty("url");
    String userName = ReadStream.getInstance().getProperty("username");
    String pass = ReadStream.getInstance().getProperty("password");
    Connection conn = null;
    try {
    Class.forName(driverName);
    conn = DriverManager.getConnection(url,userName,pass);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
      

  3.   

    你用这个包
    net.sourceforge.jtds.jdbc.Driverdriver=net.sourceforge.jtds.jdbc.Driver
    url=jdbc:jtds:sqlserver://localhost:1433;databaseName=loginData
      

  4.   

    1.四个String取出来对么?
    2.确认密码没问题么?
    3.数据库打补丁了么?
    4.在catch中加上System.exet(0);这样异常信息会更清晰一些。你现在的异常信息把后面的nullPoint都打出来了。
      

  5.   

    你的数据库连接代码是在网上copy的吧?
    我怎么好像记得这个密码隐约见到过
    要用自己装SQL Server时候设置的密码登陆额~
      

  6.   

    恩最好装一下补丁,SQL 2005不清楚。SQL 2000必须装。
      

  7.   

    打开SQLServer2005管理配置工具,检查一下端口、管道、IP是否已经启用