java连SQL Server数据库
import java.sql.*;
public class connection{
public static void main(String[] args) throws Exception {
String id=null,name=null;
String sql="select * from menu";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://stevie:1433;DatabaseName=myData","sa","");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {
id=rs.getString(1);
name=rs.getString(2);
System.out.println("id"+id);
System.out.println("name"+name);
}
rs.close();
stmt.close();
}
}
运行后出现如下的错误:
------------------------------------------------------------------------
Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer 2000 Dri
ver for JDBC][SQLServer]用户 'abc' 登录失败。原因: 未与信任 SQL Server 连接相关
联。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown
Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown
Source)
at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Un
known Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Sour
ce)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
rce)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at connection.main(connection.java:9)
问题点数:30、回复次数:21Top
1 楼liublog(╃)回复于 2005-04-20 18:46:45 得分 0
不好意思,我打错了,是产生如下的错误:
Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer 2000 Dri
ver for JDBC][SQLServer]用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关
联。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown
Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown
Source)
at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Un
known Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Sour
ce)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
rce)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at connection.main(connection.java:9)
Top
2 楼liublog(╃)回复于 2005-04-20 18:47:29 得分 0
我在登录SQL查询分析器的时候
要是使用SQL Server身份验证,输入sa,密码为空,也显示用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联;
要是使用Windows身份验证,就可以进去。Top
3 楼hcw_peter(小胡)回复于 2005-04-20 18:59:56 得分 2
试试这个方法:
确定你的MSSQLServer的驱动包在java_home/jre/lib/ext中(放在这儿方便点,不用设置pathclass),如果你用的是jcreator工具,请到option里重新设置一下j2SDK,测试程式如下:
import java.sql.*;
public class test
{
public static void main(String args[])
{
try
{
url="jdbc:microsoft://localhost:3306/mydata";//mydata是你自己的数据库
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//就是你的驱动包中Driver路径
Connection con;
Class.forName(driver);
con=DriverManager.getConnection(url,"sa","");//第二个参数是数据库用户名,第三个是密码
System.out.println("OK");
}
catch(Exception e)
{
System.out.println(e);
}
}
}
//这样就可以了。^_^Top
4 楼liublog(╃)回复于 2005-04-20 19:17:14 得分 0
谢谢你
我感觉好象不是错在哪里,应该是SQL Server的问题吧,但是具体我也弄不明白
希望大家指教Top
5 楼xiaohuasz()回复于 2005-04-20 19:48:00 得分 5
确保你的数据库的安全性中的身份验证为SQL Server和Windows混合方式Top
6 楼derekzhou(同舟共济)回复于 2005-04-20 20:19:37 得分 5
在安装SQL Server的时候为数据库配置用户的时候除了问题,
具体解决办法是重新安装SQL Server,
在出现为数据库配置用户的时候为sa用户设置一个密码,
然后用这个sa和密码登陆你的SQL Server里的查询分析器,
这样应该可以登陆查询分析器而且java连接数据库时应该不会在出现错误了!!!!
Top
7 楼wwwzhigang(我很笨)回复于 2005-04-20 20:44:49 得分 0
确保你的数据库的安全性中的身份验证为SQL Server和Windows混合方式,还有就是SQL server的驱动程序是否放在相应的路径下。Top
8 楼lasthope(学生)回复于 2005-04-20 20:48:43 得分 0
连接数据库务必try catchTop
9 楼appleangle(苹果熟了)回复于 2005-04-20 20:54:07 得分 5
你安装的时候是不是就是用的windows的身份,最好用混合模式Top
10 楼syj102(快乐王子)回复于 2005-04-20 20:56:13 得分 0
我是刚刚开始学JAVA,我想问一下在JAVA中怎么与数据库连接起来啊?
能不能给我举个示例?Top
11 楼liublog(╃)回复于 2005-04-20 23:20:07 得分 0
谢谢,小弟重新装一下SQL ServerTop
12 楼liublog(╃)回复于 2005-04-20 23:21:29 得分 0
请问怎么才能让我的数据库的安全性中的身份验证为SQL Server和Windows混合方式(除了重新安装之外),谢谢。Top
13 楼gaojing830724(龍~天飛)回复于 2005-04-20 23:45:58 得分 0
回复人: xiaohuasz() ( ) 信誉:100 2005-04-20 19:48:00 得分: 0
确保你的数据库的安全性中的身份验证为SQL Server和Windows混合方式
----------------------------------------------
正解,你的登陆方式没设置好~~
Top
14 楼gaojing830724(龍~天飛)回复于 2005-04-20 23:55:14 得分 5
回复人: liublog(╃) ( ) 信誉:101 2005-04-20 23:21:00 得分: 0
请问怎么才能让我的数据库的安全性中的身份验证为SQL Server和Windows混合方式(除了重新安装之外),谢谢。
-------------------------------------------------------------------------
方法如下:
打开"SQL企业管理器",然后定位到你要登陆的数据库服务器上(如:"(local)(Windows NT)"),然后右键单击该服务器的名字,在弹出菜单中选择"属性",然后在弹出对话框中选择"安全性"选项卡,在"安全性"选项卡中你就可以看到"身份验证"选项,选"SQL Server和Windows",然后确定就可以了,然后可以用SA登陆了~~
就看你在安装的时候有没有设置SA的密码了~~
Top
15 楼jackyzgm()回复于 2005-04-21 01:25:25 得分 2
用 windows 身份进入“企业管理器”后,在“安全”里修改 sa 的密码,或添加其他高权限的帐号Top
16 楼liublog(╃)回复于 2005-04-21 08:09:05 得分 0
谢谢,这回好使了,不用重新安装SQL Server
但是当我运行的时候出现如下的错误:
-----------------------------------------
Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer 2000 Dri
ver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at connection.main(connection.java:9)
我已经把
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar
这些放到CLASSPATH中去了,我感觉不是不能加载SQL Server驱动。
错误说是Error establishing socket,
我以前连数据库都是这么写的语句,没有错误啊,
请大家帮忙给小弟指点一下,谢谢。
-----------------------------------------
连接数据库的原程序如下:
import java.sql.*;
public class connection{
public static void main(String[] args) throws Exception {
String id=null,name=null;
String sql="select * from menu";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=DriverManager.getConnection
("jdbc:microsoft:sqlserver://STEVIE:1433;DatabaseName=myData","sa","");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {
id=rs.getString(1);
name=rs.getString(2);
System.out.println("id"+id);
System.out.println("name"+name);
}
rs.close();
stmt.close();
}
}Top
17 楼liublog(╃)回复于 2005-04-21 08:10:43 得分 0
其中第9行是:Connection conn=DriverManager.getConnection ("jdbc:microsoft:sqlserver://STEVIE:1433;DatabaseName=myData","sa","");
Top
18 楼Bany_dns(丁宁)回复于 2005-04-21 09:01:54 得分 1
你的代码我测试了,没有问题啊!!!
import java.sql.*;
public class ConnectionSqlServer {
public static void main(String[] args) throws Exception {
String id=null;
String name=null;
String sql="select * from ctl_tbl";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=NGSoft","sa","");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
id=rs.getString(1);
name=rs.getString(2);
System.out.println("id"+id);
System.out.println("name"+name);
}
rs.close();
stmt.close();
}
}
SQL Server SP3 你装了没有?如果是windows server 2003 的操作系统,不装sp3就会出现
Error establishing socket的错误。
下面是我的运行结果:
idngfuncs
name功能模块定义、安装记录
idngusers
name用户帐套记录
idngrights
nameNGSoft管理员
idngyeardb
name帐套的各个年度
idngreper
name复制记录
idngspc
name管理记录
idngsource
name其它数据源
idngbackup
name备份记录
idngreper1
name复制任务表
idrepdbver
name复制版本表
idngsuites
name套件表
idngver
name
idnglanguage
name语言表
idngtran_def
name协同信息表
idngtran_logs
name协同日志表
idngtran_wspace
name协同账套表
idngtran_obj
name协同对象表
idngsystemrelaconn
name
idngsystemrelation
name
idngsystemrelabusi
name
我是新手。。。。。说得不对的地方大家不要骂我,呵呵Top
19 楼liublog(╃)回复于 2005-04-21 14:35:44 得分 0
我感觉也不应该有错误啊,
但是就是显示:“Error establishing socket的错误”
不知道是什么错误,怎么回事。Top
20 楼jdbc(.Config)回复于 2005-04-21 22:18:01 得分 5
我以前遇到过这个问题
有两种解决办法:
(1)你没有启动SQL Server
(2)只能重新安装SQL ServerTop
21 楼liublog(╃)回复于 2005-04-21 22:46:51 得分 0
谢谢大家
谢谢 jdbc(.Config)
我的错误让你的(1)说中了
呵呵!Top




