在java中用JDBC连接SQL Server 2000 的经验分享

来源:互联网 发布:js url encode 在线 编辑:程序博客网 时间:2024/06/05 19:59

这几天上到java的《JDBC基础知识》这章,讲了使用jdbc-odbc桥来实现jbuilder和sqlserver数据库的连接,基本没什么问题,但是碰到很多同学问如何采用sql server driver 来实现对sqlserver数据库的操作,所以把自己的经验以及在其他论坛上看的帖子总结了一下,具体步骤如下:

1、安装SQLServer2000
  安装SQLServer2000补丁SP3
  安装SQLServer2000 for SP3的驱动程序
  (先打补丁sp3,再安装针对sp3的驱动程序,安装补丁时,为保险起见,两种验证方式的都装一遍,我是先装windows验证,再装SQL Server验证的)
 
  打开JBuilder
2、tools_configure_libraries  new一个sqlserver,在library paths中加入驱动程序安装目录下lib文件夹中的三个jar文件
3、project——default projectproperties在paths页下的required libaraes页中加入第1步new的sqlserver
4、tools——enterprise setup(jb9)
  enterprise——enterprise setup(jb2005)
  在弹出的对话框的database driver页中,添加第1步new的sqlserver,确定
5、重启jbuilder
6、tools——database pilot
  在弹出的窗口的菜单中选view——option
  在弹出的对话框中选driver页面,点add
  在driver class文本框中输入com.microsoft.jdbc.sqlserver.SQLServerDriver,确定
 
7、设置名为com.microsoft.jdbc.sqlserver.SQLServerDriver的driver class
  Driver是com.microsoft.jdbc.sqlserver.SQLServerDriver
  URL是jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名(如:cardSystem)

常见问题分析-1:
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则这个问题可以结决。还有就是数据库一定要用Windows和数据库混合身分验证方式。


常见问题分析-2:
    在安装安装SQLServer2000 for SP3的驱动程序时,弹出对话框提示:"以前的某个程序安装已在安装计算机上创建挂起的文件操作"
   
    原因:以前装过sql server,后来删掉。现在重装,却出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”的错误。无法进行下去。
   
    解决步骤是:
1)添加/删除程序中彻底删除sql server。
2)将没有删除的sql server目录也删除掉。
3)打开注册表编辑器,在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session  Manager中找到PendingFileRenameOperations项目,并删除它。这样就可以清除安装暂挂项目。
4)删除注册表中跟sql server相关的键。
其实估计只要做第3步就可以搞定,这样就可以清除安装暂挂项目。自己是先走了1,2,4,最后  做了3才搞定。所以估计3才是最关键的。

采用sql server driver 来实现对sqlserver数据库的操作时,一般代码如下:
Connection con = null;
PrepareStatement pstmt = null;
try{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    con = DriverManager.getConnection("jdbc:microsoft:sqlserver//localhost:1433;databasename=pubs","sa","sa");
    pstmt = con.preparedStatment("insert ....");
    //......
}catch(ClassNotFoundException e){
    e.printStackTrace();
}catch(SQLException e){
    e.printStackTrace();
}finally{
    try{
          if (pstmt != null) pstmt.close();
          if (con != null) con.close();
    }catch(Exception e){
          e.printStackTrace();
    }
}

如果是SQLSERVER2005,则改成:
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    con = DriverManager.getConnection("jdbc:sqlserver//localhost:1433;databasename=pubs","sa","sa");
 

> java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
估计是你连接sql server的端口设置有问题,你可以查看一下端口,看看是不是1433。

解决:出现[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket

凡是出现这种错误的,都可以说不是程序本身的错误,一般人都会写jdbc:microsoft:sqlserver://localhost:1433;这样写是对的,很多是由于端口的问题,请查看一下端口,如下:

1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库
2)在相应"数据库"上单击右键,选择"属性"
3)选择"常规"选项卡,点击"网络配置",如启用的协议中无"TCP/IP协议"将其加入
4)选择"TCP/IP协议",点击"属性",检查其端口号是否为1433
5)如端口号为1433将其修改为其它端口号,修改jdbc连接语句,将端口号同样改为新启用的端口号,如jdbc:microsoft:sqlserver://server_name:1400(假设新端口号为 1400)

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 退货时快递丢件怎么办 淘宝店铺代销1688有订单怎么办 供应商已解除合作无法代销怎么办 被代运营骗了怎么办 被淘宝运营骗了怎么办 淘宝运营公司骗了怎么办 被金融公司骗了怎么办 天猫品牌方投诉怎么办 淘宝卖家售假被扣了12分怎么办? 淘宝店被投诉了怎么办 淘宝商品被投诉侵权怎么办 淘宝小二胡乱判怎么办 淘宝卖家不干了怎么办 花呗剩下的钱怎么办 蚂蚁花呗无法使用怎么办 淘宝不能用花呗怎么办 淘宝号给冻结了怎么办 淘宝买家号封了怎么办 拼多多商家盗图怎么办 被拼多多盗图了怎么办 淘宝盗用图片被投诉怎么办 淘宝别人盗用我的图片怎么办 淘宝盗图申诉原图过大怎么办 淘宝别人举报我盗用图片怎么办 淘宝卖家被投诉盗图怎么办 淘宝卖家被投诉卖假货怎么办 淘宝买到假货卖家不承认怎么办 被投诉盗图扣2分怎么办 拼多多盗淘宝图怎么办 微信视频清理了怎么办 牛仔短裤买大了怎么办 淘宝图片打开变大了怎么办 同城换公司社保怎么办 劳务不给交社保怎么办 好多工厂外包工不交社保怎么办 外包公司没有交社保怎么办 外包公司不给交社保怎么办 银行取100万现金怎么办 给老外发警告信后怎么办 照片上传是歪的怎么办 日亚不能直邮的怎么办