由于系统需求,最近在开发过程中将系统从原来的MySQL转移到SQL 2000下,其中遇到了诸多问题,花费了我不少时间。现在把我的经验拿出来告诉大家,好让大家少走弯路,节约时间。

首先是SQL 2000数据库的安装问题,在此我主要讲些关于SQL 2000的版本与操作系统的兼容性问题:SQL 2000总共有7个不同版本,适应不同等级用户的需求。

我试了一下,在XP系统下只有“个人开发版”能正常安装而不出现错误,所以大家在安装时要注意,具体安装时的配置参照相关说明就可以了。

下面说明如何连接到SQL 2000数据库,首先当然是要下载JDBC驱动程序,最好去微软官方网站下载,然后将下载到的三个JAR包放入你的WEB应用的WEB-INF/lib/下。接下来编写程序进行测试:

/***********************************************
 /*
 /*DBTest.java
 /*
 /******************************************* */
 
 import java.sql.*;
 
 public class DBTest
 {
  
  Connection con;
  Statement  sta;
  ResultSet  rs;
  
  String driver;
  String url;
  String user;
  String pwd;
  public DBTest()
  {
      driver = "com.microsoft.jdbc.
   sqlserver.SQLServerDriver";;
      url    = "jdbc:microsoft:sqlserver:
   //localhost:1433;DatabaseName =test";
      //test为数据库名
      user   = "sa";
      pwd    = "sa";
      //请更改为你相应的用户和密码
      init();
  }
  public void init()
  {
   try{
    Class.forName(driver);
    System.out.println("driver is ok");
    con = DriverManager.
 getConnection(url,user,pwd);
    System.out.println("conection is ok");
       sta = con.createStatement();
       rs  = sta.executeQuery
    ("select * from room");
       while(rs.next())
        System.out.println
  (rs.getInt("roomNum")); 
   }catch(Exception e)
    {
     e.printStackTrace();
    }
  }
  
  public static void main(String args[])
  //自己替换[]
  {
   new DBTest();
  }
 }

按道理讲,上边这段代码应该没错,可首先我们来看一下,如果sqlser服务器没有升级到sp3(在使用jdbc时,如果系统是xp或者2003务必要把sqlserver 升级到sp3,往上到处都有下的),我们看看运行结果:

driver is ok
java.sql.SQLException: [Microsoft]
[SQLServer 2000 Driver for JDBC]
Error establis
hing 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 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:523)
        at java.sql.DriverManager.
  getConnection(DriverManager.java:171)
        at DbTest.init(DbTest.java:32)
        at DbTest.<init>(DbTest.java:25)
        at DbTest.main(DbTest.java:46)
Press any key to continue...

出现上边错误的主要原因是默认的数据库服务器端口 1433没有打开,无法直接连接。如果升级到sp3则这个问题可以结决,我们再来看看升级之后,程序运行的结果:

driver is ok
conection is ok
java.sql.SQLException: 
[Microsoft][SQLServer 2000 Driver for JDBC]
[SQLServer]对
象名 ’room’ 无效。
        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.
  TDSExecuteRequest.processReplyToken(
Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.
  TDSRequest.processReply(Unknown Sour
ce)
        at com.microsoft.jdbc.sqlserver.
  SQLServerImplStatement.getNextResultType
(Unknown Source)
        at com.microsoft.jdbc.base.
  BaseStatement.commonTransitionToState
  (Unknown
 Source)
        at com.microsoft.jdbc.base.
  BaseStatement.postImplExecu
te(Unknown Source)

at com.microsoft.jdbc.base.
  BaseStatement.commonExecute(Unknown Source)
        at com.microsoft.jdbc.base.
  BaseStatement.executeQueryInternal
  (Unknown So
urce)
        at com.microsoft.jdbc.base.
  BaseStatement.executeQuery(Unknown Source)
        at DbTest.init(DbTest.java:35)
        at DbTest.<init>(DbTest.java:25)
        at DbTest.main(DbTest.java:46)
Press any key to continue...

在这儿,用户已经登陆上去,但是却不能访问里边的数据表,出现这个问题的原因在于sa用户为系统用户,它虽然能够登陆数据库,但是test数据库里边却没有这个用户的访问权限,所以,我们现在为这个数据库重新建立一个用户share,建立过程如下:

在test数据库中选重用户 ---〉新建用户 -- 〉名称选择(这一步中有两个关键点:身份验证选sql身份验证,默认数据库选test)-〉建立新教色share ,此时更改程序,将用户登陆名和密码修改一下,重新运行程序:

driver is ok
conection is ok
1001
1002
1003
1004
1005
1006
Press any key to continue...

这次顺利通过测试

其实这些小问题花了我一个晚上才解决,真是浪费时间,所以写下来希望能使遇到类似问题的朋友不要重蹈覆辙,在此提醒大家遇到问题时多上网查查,多在论坛里问问,这样你学到的会更多,更节省时间,更有效率。

总结:Sqlserve 和JDBC 的融合问题,关键涉及到sp3补丁(端口开放)还有用户问题,解决这两个问题之后,剩余的便是Sqlserver 操作问题了,还有一点在远程操作的时候,要把Sqlserver 组设置一下,在安全性里边亦将身份验证更改为Sqlserve 验证即可。

转载于:https://www.cnblogs.com/fhj2050/archive/2007/02/06/641936.html

[转摘] JSP连接SQL SERVER问题总结相关推荐

  1. jsp连接Sql Server 2000数据库

    testsqlserver.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page i ...

  2. html通过jsp连接sql数据库数据,jsp连接sql Server数据库教程(示例代码)

    jsp连接sqlServer数据库教程: 首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar  下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0 ...

  3. jsp连接sql server数据库

    <%@ page import="java.sql.*"%> // 导入java的sql包 <%String driverClass = "com.mi ...

  4. Java/JSP中使用JDBC连接SQL Server 2000/2005

    转自:http://hi.baidu.com/huangdonghui/blog/item/87cf4ff47ba653e37609d7e1.html/cmtid/9c82350965721ba22e ...

  5. Java/JSP中使用JDBC连接SQL Server 2005(转自 秋忆)

    接触Java或者JSP,难免会使用到数据库SQL Server 2000/2005(我使用2005标准版[9.0.3054]测试),经过自己的搜索和研究,使用JDBC连接SQL Server成功,特此 ...

  6. Java 实现连接sql server 2000(JDBC数据库访问例子)

    JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere).优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的图形处理能力).网络通信功能.通过JDBC数据库 ...

  7. PHP5.3.8连接Sql Server SQLSRV30

    PHP5.3连接SQL Server就不能用php_mssql.dll了. 网上下载了好多都不行,因为它的版本是5.2的,不能再PHP5.3中使用. 后来听说微软专门为PHP出了自己的dll. 叫做M ...

  8. python 使用pymssql连接sql server数据库

    Python连接SQL Server数据库 - pymssql使用基础 ----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html ...

  9. powershell连接数据库_PowerShell 连接SQL Server 数据库

    PowerShell 通过ADO.NET连接SQL Server数据库,并执行SQL脚本.工作中整理的一小段脚本,后来没有用上,先记录在这里: 建立数据库连接 查询返回一个DataTatble对象 执 ...

最新文章

  1. 惊呆了!Spring Boot 还能远程调试?
  2. mysql权限的误操作的恢复
  3. 高通 android平台LCD驱动分析
  4. mysql中length与char_length字符长度函数使用方法
  5. java语言修饰符$_Java语言中的修饰符
  6. (五)Unity插件生成
  7. Spring Cloud微服务之搭建service_user模块(三)
  8. ASP.NET Core知多少(7):对重复编译说NO -- dotnet watch
  9. java设计模式2--工厂模式
  10. this.$router.push用query传参对象时需注意的地方
  11. PCSCHEMATIC ELAUTOMATION.V19.0.1.69中文正式单机版
  12. OV7670摄像头模块资料
  13. 乔姆斯基生成语法_乔姆斯基的转换生成语法理论
  14. 最小外接矩形--最大内接矩形
  15. 基础知识 | 什么是二进制文件?
  16. 说到VDI与IDV的分分合合,不会再有比这更清晰的解释了!
  17. matlab迭代求解泊松方程,MATLAB编程求解二维泊松方程
  18. 移动开发之我见 ——移动WEB
  19. python绘制多个散点图_如何利用python把多个散点图画在一张图上:一个案例
  20. 【JavaScript实现十进制转换成二进制】

热门文章

  1. PHP类中的__get()和__set函数到底有什么用
  2. 爱创课堂每日一题101天-哪些操作会造成内存泄漏?
  3. WX公众号授权登录的简单应用
  4. 计算两个日期相差几年几个月
  5. odoo8.0+PyCharm4.5开发环境配置
  6. logcat错误日志
  7. Linux下使用mail命令发送邮件
  8. TP5 行为Behavior用法说明
  9. 远程桌面与本地桌面实现文件传输
  10. day11-(cookiesession)