用JAVA连接数据库出现‘sa’登陆失败
网上说的方法都用了,
1.用sa登陆企业管理器没问题,模式已经是混合模式。sa状态是启动的。
2.TCP/IP协议都是启动的
3.sql2005连接包已经导入了的
现在把JAVA代码贴出来,帮我看看
- Java code
import java.sql.*;public class ConnectionManager { private static final String DIVER_CLASS="com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static final String DATABASE_URL="jdbc:sqlserver://127.0.0.1:1433;databaseName=DBssh_Hua"; private static final String DATABASE_USER="sa"; private static final String DATABASE_PWD="sql2005";// private static final String DIVER_CLASS="com.ibm.db2.jcc.DB2Driver";// private static final String DATABASE_URL="jdbc:db2://192.168.0.75:50000/scexpert";// private static final String DATABASE_USER="db2inst1";// private static final String DATABASE_PWD="111111"; /** * * @return */ public static Connection getConnection(){ Connection dbConnection = null; try{ Class.forName(DIVER_CLASS); dbConnection= DriverManager.getConnection(DATABASE_URL,DATABASE_USER,DATABASE_PWD); }catch(Exception e){ e.printStackTrace(); } return dbConnection; }
------------------连接
- Java code
public static void main(String[] args) { // TODO Auto-generated method stub ConnectionManager con = new ConnectionManager(); con.getConnection(); }
-------------------异常
com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.processLogon(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(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 com.yangtianb.ConnectionManager.getConnection(ConnectionManager.java:20)
at com.yangtianb.Test.main(Test.java:11)
问题补充:端口:
SQLEXPRESS的协议:
---
IP :192.168.0.69
TCP动态端口:0
TCP端口:1433
活动:是
已启动:是
---
IP地址:127.0.0.1
TCP动态端口:0
TCP端口:1433
活动:是
已启动:是
---
TCP动态端口:58341
TCP端口:
这样是对的吗?
--------------
我在SQL SERVER企业管理器中sa登陆都没的问题
连接DB2没问题
我不知道怎么弄了。
------解决方案--------------------
可以检查一下你所打开的服务与你所要登录的“sa”用户是否在同一个数据库名称中,sql2005有两种不同的服务分别连接对应 不同的两种数据库名称
------解决方案--------------------
- Java code
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class ConDB { private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static String url="jdbc:sqlserver://localhost:1433;databaseName=DBssh"; private static String pwd="sql2005"; private static String user="sa"; public static Connection getConnection(){ Connection con=null; try { Class.forName(driver); con=DriverManager.getConnection(url, user, pwd); System.out.println("conn ok"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return con; } public static Connection closeCon(Connection con){ if(con!=null){ try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return con; } public static Statement closeStm(Statement stm){ if(stm!=null){ try { stm.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return stm; } public static ResultSet closeRs(ResultSet rs){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return rs; } }