如何在Eclipse中用JDBC连接Sql Server 2005,曾经让我如此的蛋疼(下篇)

来源:互联网 发布:js中鼠标点击事件 编辑:程序博客网 时间:2024/06/15 11:09

接上篇,咱们接着续。咱们现在不用上篇中的那个新建的Test了,看了你就明白为什么不用那个了,因为我要进行对比。

打开Eclipse

    a.左上角file->new-> java -> java project,起名为Test
  
    b.选择eclipse->window->preference,在新打开的对话框中点击java->installed JRE 

 

双击打钩的那一行,弹出:

 

点击Add External JARs,弹出对话框,找到你的sqljdbc.jar或sqljdbc4.jar,只选一个,我用的是sqljdbc4..jar,至于为什么,请看我的上一篇文章《如何在Eclipse中用JDBC连接Sql Server 2005,曾经让我如此的蛋疼(上篇)》此处不再赘述。然后点击"Finish",再点击"OK"。


    c.右键单击目录窗口中的Test, 选择Build Path ->Configure Build Path..., 添加扩展jar文件,即把sqljdbc.jar添加到其中

 

弹出窗口如下:

 

点击Libraries,还是看上图,单击Add Exterbal JARs...,同样是弹出对话框,找到你的sqljdbc.jar或sqljdbc4.jar,只选一个,我用的是sqljdbc4..jar,至于为什么,请看我的上一篇文章《如何在Eclipse中用JDBC连接Sql Server 2005,曾经让我如此的蛋疼(上篇)》此处不再赘述。然后点击"OK"。


<5> 编写java代码来测试连接数据库

程序代码:

import java.sql.*;
public class Test {
public static void main(String[] srg) {
  String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  //加载JDBC驱动
  String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=master";  //数据库master,你根据情况改
  String userName = "sa";  //默认用户名,你根据情况改
  String userPwd = "sa";  //密码,你根据情况改
  Connection dbConn;
  try {
   Class.forName(driverName);
   dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
   System.out.println("Connection Successful!");  //如果连接成功 控制台输出Connection Successful!
  } catch (Exception e) {
   e.printStackTrace();
  }
}
}
好了,屏住呼吸,点击Eclipse左上部的那个小绿三角(Run Test),不是那个带红色的绿三角哦。
看看Eclipse下方的空白处是不是”Connection Successful!“,如果是,那就大功告成了,如果不是,我也不知道了,因为我成功了。
好了,下面我们模仿《如何在Eclipse中用JDBC连接Sql Server 2005,曾经让我如此的蛋疼(上篇)》中建立动态web的方法建立一个网页,你可以用上篇的哪个,这里我用的是我原来建的工程”Dormitory“,
,因为我不小心把上片那个工程给删了。
现在重复上面c步骤,只不过从针对Test换成了针对Dormitory,设置完后,点击运行,哎,怎么又出现java.lang.ClassNotFoundException异常,你的是吗,反正我的是。下面解释并解决之。
我的第一个错误是:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
      con=DriverManager.getConnection("jdbc:microsoft:sqlserver:"+
           "//localhost//MSSQLSERVER:1433;DatabaseName=Dormitory","sa","sa");
,你先把Class.forName和DriverManager.getConnection中的参数跟我在上篇中设置的这两个函数的参数对比一下,看你能不能发现不同。
下面说一个很重要很重要的地方
如果你以前用java连接sql server 2000的话就要注意了:

在sql server 2000 中加载驱动和URL路径的语句是

 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample");

而sql server 2005 中加载驱动和url的语句则为

 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
DriverManager.getConnection ("jdbc:sqlserver://localhost:1433; DatabaseName=sample");

如果写法错误将会找不到驱动.

 


所以我改正了这个错误,改成是在sql server 2005 中的格式,重新运行,竟然还是不行!!!

下面就是我的第二个错误了,但是这个错误的原因我还为找出来,不知道原因,但我知道怎么解决,就是重新启动Eclipse,呵呵,是不是很吃惊,很大跌眼镜,这也是我的反应。反正重启后在运行就可以了,不会出现那个异常了。我猜测原因是,针对动态web,设置了以后,重启才能真正加载驱动,因为你不重启,它说ClassNotFoundException,就是没发现吗,所以重启后加载进去就会发现这个类了,这只是猜测。更大跌眼镜的在后面,我把c步骤加载的sqljdbc4.jar又给删了,在C步骤里第二个图上,你选中sqljdbc4.jar,再点击右边的Remove,就会删除它,然后你再点击运行,奇怪的是不报异常,更奇怪的是,我重启Eclipse后再次运行它仍不报异常,可是我已经删了它了!闹鬼了!!我不知道这是为什么,有知道的在文章后面回复我。

好了,写了将近3个小时,终于把这两篇文章写完了,这是我的心得和总结,希望遇到同样问题的你早点找到我这两篇文章,能对你有所帮助。好了,我要休息一下下,好累哦!