![]() ![]() |
|
用JDBC编写查询Access和FoxPro数据库 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/5/9 19:02:06 文章录入:杜斌 责任编辑:杜斌 | |
|
|
用JDBC编写查询Access和FoxPro数据库 ----JDBC(Java数据库连接:JavaDatabaseConnectivity)是用于执行SQL语句的Java应用程序接口(JavaApplicationProgrammingInterface:JavaAPI),它由一组用Java语言写的类与接口组成。JDBC是一种规范,其宗旨是让各数据库开发商为Java程序员提供标准的数据库访问类和接口。JDBC与Java结合,使用户可以很容易地把SQL语句传送到任何关系数据库中,程序员用它编写的数据库应用软件,可在各种数据库系统上运行。本文通过一个实例讨论用JDBC编写在中文Win95下访问Access(包括Access2.0,Access7.0)和FoxPro(包括FoxPro2.6,FoxBase2.1,dBase3.0,dBase4.0等)数据库的Java应用程序,从中体会JDBC在数据库应用上实现"一次编程,处处运行"的功能, 安装JDBC ----JDBC类库已放入JDK1.1,若使用JDK1.1,则无须安装JDBC及下面的JDBC-ODBC;因目前JDK1.1暂不支持中文,固本文主要介绍使用JDK1.02时的JDBC访问数据库编程,此时需要安装JDBC,可通过访问下列地址获得JDBC软件包(目前已有JDBC1.2版,本文使用JDBC1.1): ----得到JDBC软件(Windows的zip文件)包,用WinZip解压,生成目录JDBC,JDBC的所有内容都在这个目录中。 ----为在编译Java程序时调用JDBC得SQL类库,应在autoexec.bat批处理文件中环境变量的:\jdbc\classes。 建立数据库和设置数据源 ----Access具备完善的数据库功能,可以作为独立的DBMS使用,是PC微机上开发客户/服务器型数据库应用的优秀工具;FoxPro(FoxBase、dBase)是国内PC微机用户常用的数据库软件,已用它建立了大量数据库挡案资料;讨论用JavaSQLAPI编写访问Access和FoxPro数据库的Java应用程序是十分有意义的。 table1 table2如下:SupplierIDSoftwareSupplierNameAddressPhoneNumber ----如下建立数据库与数据源: ----1用Access7.0建立名为acs70db.mdb的数据库文件,其中建有上面两个表;将文件acs70db.mdb存盘到目录c:\datas\acs70中;数据源名为acs70db.mdb; ----2用Access2.0建立名为acs20db.mdb的数据库文件,其中建有上面两个表;将文件acs20db.mdb存盘到目录c:\datas\acs20中;注意此时表table1的字段名要改用英文;数据源名为acs20db.mdb; ----3用FoxPro2.6将上面两个表分别建为文件table.dbf与table2.dbf,并将这两个文件存盘到目录c:\datas\foxp26中; ----4用FoxBase2.1将上面两个表分别建为文件table.dbf与table2.dbf,并将这两个文件存盘到目录c:\datas\foxb21中; ----5用dBase3.0将上面两个表分别建为文件table.dbf与table2.dbf,并将这两个文件存盘到目录c:\datas\dbs3中; ----上列数据库制好后,打开Win95的"设置"菜单中的"控制面板?*从中启动微软的ODBC设置相应的ODBC驱动器和数据源(下面分别用axs70、acs20、foxp26、foxb21和dbs3作数据源名)。 配置JDBC-ODBC驱动器 ----ODBC(开放式数据库互连:OpenDatabaseConnectivity)是用C语言写的在多种不同的DBMS(数据库管理系统)中存取数据的标准应用程序接口;目前应用最广的是微软的ODBC,它几乎可将所有平台的所有数据库连接起来。ODBC在应用程序与特定数据库之间插入一个驱动程序管理器,每种数据库引擎都需要向驱动程序管理器注册它自己的ODBC驱动程序,驱动程序管理器将与ODBC兼容的SQL请求从应用程序传给ODBC驱动程序并由ODBC驱动程序把SQL请求翻译为对数据库的固有调用,从而达到应用程序访问操作数据库的目的。 ----http://splash.javasoft.com/jdbc/ ----用WinZip解压后形成jdbc-odbc目录,目录中包括了所需内容,同时在autoexec.bat批处理文件中将?:\jdbc-odbc\classes"加进?etCLASSPATH?"中;将?:\jdbc-odbc\classes\sun\jdbc\odbc"加进?etPATH?"中** 使用SQL 编写访问数据源的Java应用程序 ----(2)建立与数据库的连接、发送访问、操作数据库的SQL语句; ----(3)处理(2)对数据库访问、操作的结果。 ----对此,可如下使用Class.forName方法显式加载驱动程序来完成(1): ----Class.forName("sun.jdbc.odbc.JdbsOdbcDriver"); ----为使程序通用,编写一个方法(函数)来完成(2): ----staticResultSetcreatResultSet(Strings1,Strings2) ----该方法中的两个参数是字符串s1(数据源名)与s2(SQL语句),返回对数据源s1进行s2访问操作的结果;因此调用该方法即实现"与数据源s1连接并向其中进行s2的SQL查询并返回查询结果?*为完成**3),设计方法: ----staticvoidshowResultSet(ResultSetrs) ----该方法将查询结果rs在屏幕上显示出来。 ----综上,我们在下面的源程序中调用方法creatResultSet(Strings1,Strings2)两次:一次查询FoxPro2.6数据库的表二,另一次查询Access7.0数据库的表一;并调用方法showResultSet(ResultSetrs)将结果显示: classtest{ //关闭对象: rs1.close();rs2.close(); } catch(SQLExceptionex){ System.out.println("\n***SQL异常!***\n"); } catch(java.lang.Exceptionex){ ex.printStackTrace(); } } //与数据源s1连接并向其中进行s2的SQL 查询并返回查询结果的方法: privatestaticResultSetcreatResultSet(Strings1,Strings2) throwsSQLException{ //指定数据源: Stringdatasr=s1;//数据源名 //建立与数据的连接: //与数据源datasr连接 (因方法getConnection为静态的,故以类名调用): Connectioncon1=DriverManager.getConnection ("jdbc:odbc:"+datasr); System.out.println("\nOK!连接成功!"); //发送SQL语句,对数据源进行操作: //要执行SQL查询语句,首先需创建Statement对象: Statementstmt1=con1.createStatement(); //对数据源中的数据表tables在Statement对象上 使用方法executeQuery执行一个查询语句: //该语句将在rs1中返回表中的所有行(记录): returnstmt1.executeQuery(s2); } privatestaticvoidshowResultSet(ResultSetrs) |
|
![]() ![]() |