CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

java连SQL Server数据库

楼主liublog(╃)2005-04-20 18:44:32 在 Java / J2SE / 基础类 提问

 
  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

相关问题

  • java如何连sql server
  • 怎样使Java连接到MS SQL Server?
  • java连接sql server的问题.
  • sql server连接
  • Sql Server连接
  • c++连sql server
  • 连接SQL SERVER
  • VB连接SQL-SERVER
  • SQL SERVER连不上
  • jbuilder2006连接sql server

关键词

  • sql server 2000
  • 数据库
  • jdbc
  • sqlserver
  • 验证
  • source
  • 安装
  • 安全性
  • sa
  • microsoft

得分解答快速导航

  • 帖主:liublog
  • hcw_peter
  • xiaohuasz
  • derekzhou
  • appleangle
  • gaojing830724
  • jackyzgm
  • Bany_dns
  • jdbc

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo