用 JDBC-ODBC 桥连接器能连接上数据库。 但是我用 纯JDBC 驱动程序连接出错。
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;pu...
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Test {
public static void main(String[] args) {
String s ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String s1= "jdbc:sqlserver://localhost:1433; DatabaseName = mydata";
String s2 = "sa";
String s3 = "90102329";
Connection con = null;
try {
Class.forName(s);
} catch (ClassNotFoundException e) {
System.out.print("驱动失败");
}
try {
con = DriverManager.getConnection(s1, s2, s3);
System.out.println("数据库连接成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
这是我的程序 下午是出错号:
com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2529)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1905)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1893)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1045)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Test.main(Test.java:20)
我可以 确定账户 密码正确 因为我能用JDBC -ODBC 桥接器 能连接成功而且能正常运行 但是一到这个上面就出错 这是原因?
驱动没问题 我导入的是sqljdbc4.jar.
我用的是 Myeclips 9.0 和SQL 2008 展开
import java.sql.DriverManager;
import java.sql.SQLException;
public class Test {
public static void main(String[] args) {
String s ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String s1= "jdbc:sqlserver://localhost:1433; DatabaseName = mydata";
String s2 = "sa";
String s3 = "90102329";
Connection con = null;
try {
Class.forName(s);
} catch (ClassNotFoundException e) {
System.out.print("驱动失败");
}
try {
con = DriverManager.getConnection(s1, s2, s3);
System.out.println("数据库连接成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
这是我的程序 下午是出错号:
com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2529)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1905)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1893)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1045)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Test.main(Test.java:20)
我可以 确定账户 密码正确 因为我能用JDBC -ODBC 桥接器 能连接成功而且能正常运行 但是一到这个上面就出错 这是原因?
驱动没问题 我导入的是sqljdbc4.jar.
我用的是 Myeclips 9.0 和SQL 2008 展开
4个回答
展开全部
驱动的版本是不是错了??还有sqlserver的版本String s="com.microsoft.sqlserver.jdbc.SQLServerDriver"; String s1= "jdbc:sqlserver://localhost:1433; DatabaseName = mydata
的语言和最新版本的连接的语言是不一样的:2000:jdbc:microsoft.sqlserver://
serverName:portNumber,DatabaseName=DBName;OtherProperty=value
2005:jdbc:sqlserver://
serverName:portNumber,DatabaseName=DBName;OtherProperty=value
还有就是上面如果都对,你必须吧sqlserver的登录形式改为用用户和密码登录,不能勾选那个直接用windows验证登陆
的语言和最新版本的连接的语言是不一样的:2000:jdbc:microsoft.sqlserver://
serverName:portNumber,DatabaseName=DBName;OtherProperty=value
2005:jdbc:sqlserver://
serverName:portNumber,DatabaseName=DBName;OtherProperty=value
还有就是上面如果都对,你必须吧sqlserver的登录形式改为用用户和密码登录,不能勾选那个直接用windows验证登陆
追问
我用的SQL 2008 URL 错了?
追答
给你看看我以前配的mysql数据库的(只要把那个url改成sqlserver的就行了):
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/studentdb?user=root&password=1&characterEncoding=gb2312";//登录用户名:root用户密码:1数据库名:studentdb
Connection con=DriverManager.getConnection(url);
Statement st=con.createStatement();
上海德康电子
2023-06-12 广告
2023-06-12 广告
T-BOX接插件是一种常见的汽车连接器,用于将汽车的电源和信号线连接到车辆的电子设备上。根据我的知识,T-BOX接插件有以下几种型号:1. T-BOX 0437:这是一种标准的T-BOX接插件,适用于欧洲和北美地区。2. T-BOX 152...
点击进入详情页
本回答由上海德康电子提供
展开全部
你SQLServer的版本 2000 ? 2005 ? 2008 ?
用下边这个URL试一下。
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydata
你是的
jdbc:sqlserver://localhost:1433; DatabaseName = mydata
以2005为分界线, 驱动与URL都不一样。
用下边这个URL试一下。
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydata
你是的
jdbc:sqlserver://localhost:1433; DatabaseName = mydata
以2005为分界线, 驱动与URL都不一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.确定用户名密码和数据库的匹配?
2. 确定 String s ="com.microsoft.sqlserver.jdbc.SQLServerDriver"; String s1= "jdbc:sqlserver://localhost:1433; DatabaseName = mydata"; 没写错
3.换个驱动包试试。
2. 确定 String s ="com.microsoft.sqlserver.jdbc.SQLServerDriver"; String s1= "jdbc:sqlserver://localhost:1433; DatabaseName = mydata"; 没写错
3.换个驱动包试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-01-12
展开全部
lai
939
939
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询