当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:20:00  来源:本站整理

JSP中衔接SQL 2000数据库的问题总结[MSSQL防范]

赞助商链接



  本文“JSP中衔接SQL 2000数据库的问题总结[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
由于系统需求,近来在开辟历程中将系统从本来的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 考证便可.
  以上是“JSP中衔接SQL 2000数据库的问题总结[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • JSP中衔接SQL 2000数据库的问题总结
  • JSP中Action属性的功效浅析
  • MYSQL,Oracle,SQL数据库在JSP中的驱动
  • <b>在JSP中拜候数据库大全</b>
  • jsp中的时间挑选器的代码
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .