java连接SQL Server2000——菜鸟日志

  今天试着用java连接数据库,本来机子上是有SQL Server的,很早以前装的,也不知到是哪个版本了,很不健全,连基本的连接驱动都没有,其实连接驱动JDBC网上有很多,下载一个了也就是了。下载之后将驱动jar包导入java项目中。但是java连接数据库的语句:Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:2033;DatabaseName=数据库","sa","sa");

我都不明白是怎么回事啊,在网上搜了很多资料,瞎搞了好久,不管我怎么改,始终提示我TCP/IP无法连接,可是我明明是设置TCP/IP协议是支持的。最后觉得应该是数据库的问题,实在搞不了了把数据库卸了重装。于是用360卸载了SQL,但是这里因为我的一个犹豫,没有将注册表信息删除,导致给后面的安装工作带来了不少的麻烦。重新安装的时候就遇到了挂起的问题,就是因为之前系统里已经存在安装文件的注册信息。不得不找了同学来帮忙,删除相应的注册信息,也是颇费了一番周折。

     这次安装的是2000版本的,同时还安装了数据库驱动包跟sp4的补丁,等到终于安装好了,新建一个数据库一个表,测试一下连接吧,这时候我相信应该不会出错了,但是不随我愿,还是有错。这次错误是说端口错误,我使用的是默认的连接端口1433,应该没错啊,看网上说可以查看一下端口的运行情况,在命令行输入cmd,然后使用netstat命令,看到使用的端口信息,发现1433并没有被占用,于是我坚信一定不会是端口号除了问题。继续查资料,查看了一下我安装的数据库的版本后,发现我是没有安装sp3补丁的,应该是这个原因了,于是找到官网下载sp3.又是一番周折~~,挺挺简单的一件事做起来总是花很多时间,真叫人郁闷呢!因为我这里又犯了一个错误!因为下载的文件chs_sql2ksp3是。exe格式的,点击运行以后其实是在解压,可是我以为我安装好了,试一下没有效果,几经解压,其实实际上都没有安装上,最后终于在网上看到资料提示说其实只是解压了而已!崩溃。真正装上之后,心想这下应该好了吧。可还是不好,还是一样的错误,意思就是端口错误。崩溃。实在是没招了,我实在是抱着试试看的想法,就试着改一下端口号吧,把默认的端口号1433改成2033,其实随便该一个大于1000的数都行,只要该端口号没有恰巧也被占用了。改好以后运行,天呢!竟然通过了!!!高兴,心里一下轻松了好多,不过我也在想早点该就好了,可能后面那么多都是做的无用功吧。不过对于一个菜鸟,多看看还是有好处的。

 

以下是连接SQL server 2000的代码:

try{
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
      Connection con = DriverManager.getConnection     

                                                                  ("jdbc:sqlserver://localhost:2033;DatabaseName=sqlserver","sa","sa");
       stmt = con.createStatement();
       rs = stmt.executeQuery("Select * from student");
    while(rs.next()){
    System.out.println(rs.getInt("sid")+" "+rs.getString("sname")+rs.getInt("age"));
   }
   
  }catch(Exception e){
   e.printStackTrace();
  }

其中函数DriverManager.getConnection("","","")中的三个字符串参数含义如下:第一个是要连接到的数据库URL,localhost表示本机,冒号后面是端口号,DatabaseName=你要操作的数据库的名字;第二及第三个字符串表示登录数据库的用户名跟密码。

 

连接MySQL 的代码:

try {
   Class.forName("com.mysql.jdbc.Driver");

   conn = DriverManager
                    .getConnection("jdbc:mysql://localhost/mydata?user=root&password=root");

   stmt = conn.createStatement();
   rs_s = stmt.executeQuery("select * from student");
   
   while (rs_s.next()) {
    System.out.println(rs_s.getInt("sid")+" "+rs_s.getString("sname"));
   }
   
   rs_d = stmt.executeQuery("select * from dept");

   while (rs_d.next()) {
    System.out.println(rs_d.getInt(1)+" "+rs_d.getString(2));
   }
   
  } catch (e) {
   e.printStackTrace();
  }

 

其中函数DriverManager.getConnection("")中只有一个字符串参数,localhost/后面跟的是你要处理的数据库的名字,?之后跟是登录数据库的用户名跟密码。

 

Microsoft SQL Server 2000 Service Pack 3a 下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn

 

Microsoft SQL Server 2000 Service Pack 4  下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5

 

最后总结:一般出现数据库连接错误,在正确安装驱动的情况下,有三种可能:1、端口号被占用。2、版本不正确,没有安装需要的全部补丁sp3、sp4。3、防火墙搞的鬼,阻止了了数据库的连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值