`
Lytlove68
  • 浏览: 40588 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Eclipse 3.2中怎样设置和测试Oracle和SQL Server的JDBC驱动程序

阅读更多
本文中我们介绍在Eclipse 3.2中怎样设置和测试Oracle和SQL Server的JDBC驱动程序,以及故障排除。

以下对数据库的操作以SQL Server2000和Oracle 10g为例。

一、   从Oracle和Microsift网站上下载JDBC驱动程序
n         下载Oracle JDBC驱动程序

1.       网址:

http://www.oracle.com/technology/global/cn/software/tech/java/sqlj_jdbc/index.html

2.       在Eclipse安装目录,例如D:\lecture\JAVA\Eclipse\eclipse下创建路径:

D:\lecture\JAVA\Eclipse\eclipse\jdbc\OracleJDBC\lib。

3.       下载4个java归档文件放入其中:

1)       ocrs12.jar

2)       ojdbc14.jar

3)       ojdbc14dms.jar

4)       orai18n.jar

n         下载SQL Server 2000 Driver for JDBC Service Pack 3,支持JDK 1.4

1.       网址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=07287b11-0502-461a-b138-2aa54bfdc03a&displaylang=en

2.       执行setup.exe安装SQL Server JDBC驱动程序。在安装目录下有帮助文件。

3.       在Eclipse安装目录,例如D:\lecture\JAVA\Eclipse\eclipse下创建路经:

D:\lecture\JAVA\Eclipse\eclipse\jdbc\SQLServerJDBC\lib。

4.       将setup.exe安装的下面3个java归档文件放入其中:

1)       msbase.jar

2)       mssqlserver.jar

3)       msutil.jar

二、   在项目库中导入驱动程序库
1.       创建新项目。文件 > 新建 > 项目 > 打开新建项目对话框。



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



3.       输入项目名JDBCTest > 完成。

4.       打开导航器窗口,检查新创建的项目。



三、   用于测试连接的代码示例
n         用于SQL Server的测试连接的代码示例

安装了 Microsoft SQL Server 2000 JDBC 驱动程序后,可以通过两种方式从您的程序连接到数据库:使用连接 URL,或使用 JNDI 数据源。本文介绍如何使用连接 URL 配置和测试数据库连接。

连接到数据库的一种方法是通过 JDBC 驱动程序管理器,使用 DriverManager 类的 getConnection 方法。使用此方法时,最简单的方式是使用一个包含 URL、用户名和密码的字符串参数。下面介绍如何从 JDBC 程序载入 Microsoft SQL Server 2000 JDBC 驱动程序。

创建测试类

1.       右击新建的项目JDBCTest > 新建 > 包 >打开新建Java包对话框。



2.       在名称栏输入testJDBC > 完成。

3.       右击新建的包testJDBC > 新建 > 类 > 打开新建Java类对话框。

4.       在名称栏输入SQLServerJDBCTest >完成。



添加库

要将JAR文件添加到现有应用程序中。

1.       右击项目JDBCTest > 属性 > 打开JDBCTest的属性对话框。


2.       在左边的窗格中选择Java构建路径 > 在右边的窗格中选择库标签

3.       单击按钮添加外部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 进行连接。

n         用于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自带的防火墙。







[/color][color=blue]
分享到:
评论

相关推荐

    EclipseJDBC 驱动程序设置

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

    java连接数据库新手用

    本文中我们介绍在Eclipse 3.2中怎样设置和测试Oracle和SQL Server的JDBC驱动程序,以及故障排除。 .........

    Java 连接 SQL Server 2008 方法与驱动文件

    Java 连接 SQL Server 2008 的驱动文件

    【server 2003系统下】Eclipse下实现Java和sql server/Oracle连接详细步骤说明

    此文档中包含相关的JDBC驱动(sql,oracle),详细的配置说明,对照此说明,可以很好的解决数据库连接的问题。

    eclipse jdbc

    此压缩包中包括,hibernate,struts,spring,sql-server JDBC,MySql JDBC,Oracle JDBC,JavaDB JDBC,JDBCforMSSQL。

    Eclipse开发入门与项目实践 源代码

    Eclipse开发入门与项目实践 Eclipse开发入门与项目实践 源代码 Eclipse开发入门与项目实践 源代码 Eclipse开发入门与项目实践 源代码 第一部分 开发入门 第1章 Eclipse概述及开发环境搭建 2 1.1 Eclipse概述 2...

    jdbc(jar文件)

    mysql,oracle和SQLser三大数据局与eclipse的桥梁

    使用Eclipse 3.3演示Oracle9i/10g的函数完成的分页动作

    该例子针对上次SQL实现分页公式使用的详细说明--说明具体在函数中怎样使用分页公式和SQL怎样在游标中返回的说明,然后JDBC怎样捞取数据,然后通过Servlet与JSP显示出来。当然该函数可以由读者进一步完成,我主要是...

    使用JDBC连接ORACLE并进行一些操作

    这是一个用JAVA编写的,用JDBC连接ORACLE数据库,并对数据进行一些基本的操作,非常简单,希望能给初学JAVA的朋友一点帮助。生成Department数据库的SQL文在下一个资源里。 如果这个程序有什么问题,联系我felixlee@...

    J2EE JNDI配置原理详解 JBOSS安装配置 Maven入门 Ant使用入门

    1.1 Apache Tomcat各版本...1.19 Oracle,MySql,SQL server分页 1.20 Jboss下的第一个EJB程序 1.21 JNDI 1.22 JNDI配置原理详解 1.23 JSF+Seam框架学习心得 1.24 java jdbc驱动的四种类型 1.25 resource-ref元素

    dbeaver-ce-7.2.3-x86_64-setup.exe

    对于关系数据库,它使用JDBC API通过JDBC驱动程序与数据库交互。对于其他数据库(NoSQL),它使用专有数据库驱动程序。它提供了一个编辑器,支持代码完成和语法突显。它提供了一种插件体系结构,允许用户修改应用...

    Spring+JDBC实例

    本篇教程是一个简单的Spring+JDBC的操作,作为一个入门级来实现读取MySQL(可选:Oracle或SQL Server)数据中Department表的所有数据。这篇文章是基于: Spring 4,Eclipse 4.4 (LUNA) 详见:...

    基于java和jsp的聊天系统完整源码(含配套jsp网站)

    对怎样用exe4j和inno setup制作软件安装包,怎样用eclipse等都是非常有益的。使用说明中有详细的步骤,一步步照做就能 成功。 ----- Fandy 服务器端和客户端以及网站平台都有linux版和windows版,皆通用,即linux...

    dbeaver-ce-7.3.4-x86_64-setup.exe

    支持任何具有JDBC驱动程序的数据库(基本上意味着-ANY数据库)。EE版本还支持非JDBC数据源(MongoDB,Cassandra,Couchbase,Redis,BigTable,DynamoDB等)。 具有很多功能,包括元数据编辑器,SQL编辑器,丰富的...

    使用eclipse编写的登录Demo

    自己制作的登录小例子 很多地方不是很完善 功能仅限登录 注册 修改密码 注销... 这个例子采用eclipse编写 Oracle11gXE数据库 运行只需将src/com/lzy/dbutil/DbUtil中的具体代码改成自己的数据库 并将sql文件导入即可

    DBeaver数据库管理工具

    DBeaver 通过 JDBC 连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQL Server、Sybase、MS Access、Teradata、Firebird、Derby 等等。商业版本更是可以支持...

    强大易用的数据库管理和开发工具:DBeaver(安装包)

    DBeaver 通过 JDBC 连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQL Server、Sybase、MS Access、Teradata、Firebird、Derby 等等。商业版本更是可以支持...

    Eclipse SQL Explorer [RCP/Plugin]-开源

    Eclipse SQL Client,用于数据库查询/浏览任何符合JDBC的数据库。 它支持具有针对各个数据库(Oracle,DB2,MySQL,PostgreSQL,Sybase,Informix)的专门功能的插件,并且可以扩展。

    JAVA开发工程师简历

    熟练使用sqlserver和mysql和oracle等数据库及sql使用及优化。 熟练使用webservice接口发布及编程。 熟练使用liunx命令,了解liunx服务器配置及sftp的搭建。 熟悉使用jquery,javascript,css,html的前端技术,了解使用...

Global site tag (gtag.js) - Google Analytics