本文中我们介绍在Eclipse 3.2中怎样设置和测试Oracle和SQL Server的JDBC驱动程序,以及故障排除。
以下对数据库的操作以SQL Server2000和Oracle 10g为例。
从Oracle和Microsift网站上下载JDBC驱动程序
下载Oracle JDBC驱动程序
网址:
http://www.oracle.com/technology/global/cn/software/tech/java/sqlj_jdbc/index.html
在Eclipse安装目录,例如D:/lecture/JAVA/Eclipse/eclipse下创建路径:
D:/lecture/JAVA/Eclipse/eclipse/jdbc/OracleJDBC/lib。
下载4个java归档文件放入其中:
ocrs12.jar
ojdbc14.jar
ojdbc14dms.jar
orai18n.jar

下载SQL Server 2000 Driver for JDBC Service Pack 3,支持JDK 1.4
网址:
http://www.microsoft.com/downloads/details.aspx?FamilyID=07287b11-0502-461a-b138-2aa54bfdc03a&displaylang=en
执行setup.exe安装SQL Server JDBC驱动程序。在安装目录下有帮助文件。
在Eclipse安装目录,例如D:/lecture/JAVA/Eclipse/eclipse下创建路经:
D:/lecture/JAVA/Eclipse/eclipse/jdbc/SQLServerJDBC/lib。
将setup.exe安装的下面3个java归档文件放入其中:
msbase.jar
mssqlserver.jar
msutil.jar
在项目库中导入驱动程序库
创建新项目。文件 > 新建 > 项目 > 打开新建项目对话框。

选择Java项目 > 下一步 > 打开新建Java项目对话框。

输入项目名JDBCTest > 完成。
打开导航器窗口,检查新创建的项目。

用于测试连接的代码示例
用于SQL Server的测试连接的代码示例
安装了 Microsoft SQL Server 2000 JDBC 驱动程序后,可以通过两种方式从您的程序连接到数据库:使用连接 URL,或使用 JNDI 数据源。本文介绍如何使用连接 URL 配置和测试数据库连接。
连接到数据库的一种方法是通过 JDBC 驱动程序管理器,使用 DriverManager 类的 getConnection 方法。使用此方法时,最简单的方式是使用一个包含 URL、用户名和密码的字符串参数。下面介绍如何从 JDBC 程序载入 Microsoft SQL Server 2000 JDBC 驱动程序。
创建测试类
右击新建的项目JDBCTest > 新建 > 包 >打开新建Java包对话框。

在名称栏输入testJDBC > 完成。
右击新建的包testJDBC > 新建 > 类 > 打开新建Java类对话框。
在名称栏输入SQLServerJDBCTest >完成。

添加库
要将JAR文件添加到现有应用程序中。
右击项目JDBCTest > 属性 > 打开JDBCTest的属性对话框。
在左边的窗格中选择Java构建路径 > 在右边的窗格中选择库标签
单击按钮添加外部JAR > 选择前面下载的3个SQL Server JDBC驱动程序的JAR文件 > 确定。
注册驱动程序
注册驱动程序的目的是为了通知 JDBC 驱动程序管理器载入哪个驱动程序。当使用 class.forName 函数载入驱动程序时,您必须指定驱动程序的名称。以下是 Microsoft SQL Server 2000 JDBC 驱动程序的名称:
com.microsoft.jdbc.sqlserver.SQLServerDriver
下面的代码示例演示如何注册驱动程序:
Driver d = (Driver)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
传递连接 URL
必须以连接 URL 的形式传递数据库连接信息。以下是 Microsoft SQL Server 2000 JDBC 驱动程序的模板 URL。请用您数据库的值替换以下值:
jdbc:microsoft:sqlserver://servername:1433
下面的代码示例演示如何指定连接 URL:
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "userName", "password");
服务器名称值可以是 IP 地址或主机名(假定您的网络可以将主机名解析为 IP 地址)。您可以通过对主机名执行 PING 命令来进行测试,验证是否可以接收到响应,以及响应的 IP 地址是否正确。
服务器名称后面的数字值是数据库侦听的端口号。上文列出的值是示例默认值。确保用您的数据库使用的端口号替换该值。
要获取连接 URL 参数的完整列表,请参见 Microsoft SQL Server 2000 JDBC 驱动程序 HTML 帮助,或参见联机指南。请参见“连接字符串属性”一节。
下面的代码示例尝试连接到数据库,并显示数据库名称、版本和可用编目。请用您服务器的值替换代码中的服务器属性:
package testJDBC;
public class SQLServerJDBCTest {
     private java.sql.Connection   con = null;
     private final String url = "jdbc:microsoft:sqlserver://";
     private final String serverName= "localhost";
     private final String portNumber = "1433";
     private final String databaseName= "pubs";
     private final String userName = "sa";
     private final String password = "wyfd";
     // 告诉驱动器使用服务器端游标,
     // 它允许在一个连接上的多个活动语句。
     private final String selectMethod = "cursor";
    
     private java.sql.Connection getConnection(){
         try{
           // A. 注册 SQL Server JDBC 驱动程序
           Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
           // B. 创建新数据库连接
           con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
           if(con!=null) System.out.println("Connection Successful!");
         }catch(Exception e){
           e.printStackTrace();
           System.out.println("Error Trace in getConnection() : " + e.getMessage());
         }
         return con;
       }
      
       private String getConnectionUrl(){
         return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
       }
      
       private void closeConnection(){
         try{
           if(con!=null)
             con.close();
           con=null;
           }catch(Exception e){
             e.printStackTrace();
           }
       }
/*
           显示驱动器属性,数据库详细信息
        */
       public void displayDbProperties(){
         java.sql.DatabaseMetaData dm = null;
         java.sql.ResultSet rs = null;
           try{
             con= this.getConnection();
             if(con!=null){
               dm = con.getMetaData();
               System.out.println("驱动器信息:");
               System.out.println("/t驱动器名字: "+ dm.getDriverName());
               System.out.println("/t驱动器版本: "+ dm.getDriverVersion ());
               System.out.println("/n数据库信息: ");
               System.out.println("/t数据库名字: "+ dm.getDatabaseProductName());
               System.out.println("/t数据库版本: "+ dm.getDatabaseProductVersion());
               System.out.println("显示可用的数据库目录:");
               rs = dm.getCatalogs();
               while(rs.next()){
                 System.out.println("/tcatalog: "+ rs.getString(1));
               }
               //rs = dm.getTables("ckgl",null,"ckgl","TABLE").getCatalogs();
               while(rs.next()){
                 System.out.println("/tcatalog: "+ rs.getString(1));
               }
               rs.close();
               rs = null;
               closeConnection();
             }else System.out.println("Error: No active Connection");
           }catch(Exception e){
           e.printStackTrace();
           }
           dm=null;
       }
public static void main(String[] args) {
           SQLServerJDBCTest sQLServerJDBCTest = new SQLServerJDBCTest();
           sQLServerJDBCTest.displayDbProperties();
       }
}
如果此代码运行成功,其输出结果应类似于以下内容:
IWAV0055I Java Bean testJDBC.SQLServerJDBCTest started with the main method
Connection Successful!
驱动器信息:
驱动器名字: SQLServer
驱动器版本: 2.2.0040
数据库信息:
数据库名字: Microsoft SQL Server
数据库版本: Microsoft SQL Server   2000 - 8.00.2039 (Intel X86)
May   3 2005 23:18:38
Copyright (c) 1988-2003 Microsoft Corporation
Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
显示可用的数据库目录:
catalog: ckgl
catalog: coal
catalog: master
catalog: msdb
catalog: Northwind
catalog: pubs
catalog: student
catalog: tempdb
有关排除连接故障的基本信息
下面是尝试连接到 SQL 服务器时常见的错误信息:
java.sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Login failed for user 'user'.Reason:Not associated with a trusted SQL Server connection.
如果将 SQL Server 2000 的验证模式设置为“Windows 验证模式”,则会出现此错误信息。Microsoft SQL Server 2000 JDBC 驱动程序不支持使用 Windows NT 验证进行连接。您必须将 SQL Server 的验证模式设置为“混合模式”,该模式既允许 Windows 验证,也允许 SQL Server 验证。
java.sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC]This version of the JDBC driver only supports Microsoft SQL Server 2000. You can either upgrade to SQL Server 2000 or possibly locate another version of the driver.
当您尝试连接到 SQL Server 2000 以前的 SQL Server 版本时,则会出现此错误信息。Microsoft SQL Server 2000 JDBC 驱动程序仅支持与 SQL Server 2000 进行连接。
用于Oracle的测试连接的代码示例
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
package testJDBC;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class OracleJDBCTest {
     public static void main(String[] args) throws SQLException, ClassNotFoundException   {
         // A. 注册 Oracle JDBC 驱动程序。下面两种方法都可以
         //DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
         Class.forName("oracle.jdbc.driver.OracleDriver");
         // B. 创新新数据库连接
         Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oract", "hr", "hr");
         // C. 取得连接数据(元数据)
         DatabaseMetaData md = conn.getMetaData();
         System.out.println("数据库版本:");
         System.out.println("------------------------------------------------");
         System.out.println(md.getDatabaseProductVersion());
         System.out.println();
         System.out.println("驱动程序名称与版本:");
         System.out.println("------------------------------------------------");
         System.out.print(md.getDriverName() + " " + md.getDriverVersion());
         // D. 关闭数据库连接
         conn.close();
     }
}
不要忘记添加前面下载的4个Oracle JDBC库文件。
如果此代码运行成功,其输出结果应类似于以下内容:
数据库版本:
------------------------------------------------
IWAV0055I Java Bean testJDBC.OracleJDBCTest started with the main method
数据库版本:
------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
驱动程序名称与版本:
------------------------------------------------
Oracle JDBC driver 10.1.0.5.0
注意:有时连接错误是由防火墙造成的,所以在用JDBC进行数据库开发时要关闭防火墙,包括winXP自带的防火墙。
[参考文献]
Eclipse 3.2 帮助
如何开始使用 Microsoft JDBC,http://support.microsoft.com/default.aspx?scid=kb;zh-cn;313100

Eclipse JDBC 驱动程序设置相关推荐

  1. java设置数据库的驱动_Eclipse JDBC 驱动程序设置

    Eclipse JDBC 驱动程序设置 本文中我们介绍在Eclipse 3.2中怎样设置和测试Oracle和SQL Server的JDBC驱动程序,以及故障排除. 以下对数据库的操作以SQL Serv ...

  2. mac版eclipse连接mysql_将Eclipse连接到mysql mac os x jdbc驱动程序

    我想在学习java sql的东西时运行下面的代码,但是,我已经创建了数据库,并且从终端尝试了它的好处.将Eclipse连接到mysql mac os x jdbc驱动程序 1,我得到这个错误 java ...

  3. 【学习笔记】JDBC:java提供的专门操纵数据库的API JDBC驱动程序的类型 JDBC常用的类与接口

    JDBC技术 JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口,指定了统一的访问各种关系型数据库的标准接口,JDBC是一种底层的API,因此访问数据库 ...

  4. mysql的驱动connect放在哪里_MySQL的JDBC驱动程序下载地址

    mm.mysql是个类型4(即纯java),符合jdbc 2规范的mysql jdbc驱动程序.当前版本为2.0 pre 5(beta)你可以从下载最新的驱动程序本文只是简单描述一下mm.mysql的 ...

  5. bat 指定hid驱动加载_Visual Paradigm:在数据库连接中为JDBC驱动程序使用参考路径...

    Visual Paradigm支持连接到各种数据库服务器以执行数据库工程,包括数据库与实体关系图(ERD)之间的正向和反向工程. 在此过程中,用户将需要通过JDBC连接将Visual Paradigm ...

  6. java sql 违反协议_SQLException:违反协议。Oracle JDBC驱动程序问题

    我得到以下称呼: java.sql.SQLException: Protocol violation at oracle.jdbc.driver.DatabaseError.throwSqlExcep ...

  7. eclipse 源码设置UTF-8 (eclipse可以为JSP HTML 等各种文件不同编码格式设置) 在windows - preference- general-workspace

    eclipse  源码设置UTF-8  (eclipse可以为JSP  HTML 等各种文件不同编码格式设置) 在windows - preference- general-workspace htt ...

  8. JDBC编程专题4之JDBC驱动程序类型

    1.JDBC驱动程序是什么? -  JDBC驱动程序在JDBC API中实现定义的接口,用于与数据库服务器进行交互. -  例如,使用JDBC驱动程序,可以通过发送SQL或者数据库命令,然后使用Jav ...

  9. JDBC驱动程序的四种方式

    Java中的JDBC驱动可以分为四种类型,包括JDBC-ODBC桥.本地API驱动.网络协议驱动和纯JAVA驱动. 第一种驱动程序:JDBC-ODBC 桥 JDBC-ODBC 桥是一个JDBC 驱动, ...

最新文章

  1. 《MongoDB权威指南》读书笔记 第一章 简介
  2. 07MySQL综合应用
  3. git 无法提交空目录
  4. linux调度器(五)——进程管理与CFS
  5. 2019免费微信营销软件排行榜
  6. 学计算机编程笔记本电脑推荐,想选一款笔记本电脑,主要用来学编程,有什么好的推荐吗?...
  7. 网络安全工程师面试题合集(不全,暂不整理了)
  8. Win10磁盘的分区与合并傻瓜教程
  9. 【原创】关于2013、2014款Macbook Air安装Windows的那点事
  10. PHP开发银联云闪付二维码支付
  11. 股指期货手续费每日增加吗(手续费计算公式)
  12. 台式机网线连接笔记本通过wifi上网
  13. html水平线 虚线
  14. 洛谷P1603,P1597
  15. s4i9500 android6.0,三星Galaxy S4(i9500)各版本的区别:教你区别三星S4的5个版本(图文)...
  16. linuxoracle图形界面无法跳出_Linux 7图形化安装Oracle或者其他软件,打不开图形界面的问题 | 信春哥,系统稳,闭眼上线不回滚!...
  17. 分组ListView使用技巧
  18. HTML+CSS写个人简历
  19. biubiu加速器下载安装包路径
  20. 如何是音乐再ios展台

热门文章

  1. 计算机cpu电压,调整CPU电压的方法
  2. PS制作纸质复古野外露营插画分享
  3. java ui代码实现_Java + Element-UI 实现简单的树形菜单
  4. Python界面编程第十二课:Pyside2 (Qt For Python)布局管理QVBoxLayout 和 QHBoxLayout
  5. 手机跑分全是骗人的?
  6. 通过IDEA打jar包
  7. Jerry Ma:期货市场反转的三个重要标志
  8. 浅谈 -- ♡ ‧₊˚ JS 与JQ的区别 ‧₊˚ ♡
  9. 计算机科学与技术大学排名美国,美国计算机专业大学排名top10及3所名校推荐
  10. Go基础03:变量、常量和数据类型