Matlab数据库接口技术-JDBC.doc_第1页
Matlab数据库接口技术-JDBC.doc_第2页
Matlab数据库接口技术-JDBC.doc_第3页
Matlab数据库接口技术-JDBC.doc_第4页
Matlab数据库接口技术-JDBC.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 Matlab数据库接口技术第三章 Matlab数据库接口技术3.1 ODBC技术3.1.1 ODBC连接Accessu 配置数据源u 建立数据库连接u 操作数据库3.1.2 ODBC连接SQL Servern 配置数据源n 建立数据库连接n 操作数据库3.1.3 ODBC连接Oracle3.1.4 ODBC数据源自动配置技术u 数据源注册表组织形式u DOS命令行操作注册表u Matlab实现数据源自动配置1)采用reg add命令实现注册表修改2)采用reg import命令实现注册表修改3.2 JDBC技术3.2.1 JDBC基础介绍u Jdbc概述u URL、Driver概念介绍3.2.2 JDBC数据源配置u Classpath添加u 驱动添加 版本问题u VQB添加数据源u 代码实现数据源配置3.2.3 JDBC连接Access、SQL Server、Oracle等数据库u Accessu SQL Serveru Oracleu MySQL3.3 ADO技术3.3.1 ADO概述3.3.2 ADODB3.3.3 ADO.NET3.3.4 ADO技术连接Access、SQL Server、Oracle3.4 VQB快速入门3.5 JDBC、ODBC、ADO比较第三章:Matlab数据库接口技术3.2 JDBC技术JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序;同时,JDBC也是个商标名。本节先简单介绍JDBC的基础知识,然后着重介绍在Matlab平台下JDBC数据源的配置方法,最后通过简单的实例分析,介绍Matlab平台下采用JDBC方式连接Access、SQL Server、Oracle等数据库的流程。3.2.1 JDBC基础介绍JDBC概述JDBC和ODBC一样为应用程序和数据库之间提供了一个交流的桥梁,只是ODBC是用C语言编写,而JDBC是采用Java语言来编写。正是如此,基于Java开发平台的应用程序在连接数据库时,采用JDBC就显的更加灵活和方便。通过Java API可以实现多种数据库的统一访问,简单的说,就是通过JDBC连接数据库,我们只需要关心数据库的URL和Driver就可以了,其余的事情都可以由JDBC来完成,同时也不要担心跨平台带来的烦恼。JDBC主要做三件事:与数据库建立连接、发送SQL语句、处理SQL语句及返回结果。在用JDBC开发应用程序时,我们也只需要关注怎样实现这三件事即可。以下是Java平台下实现JDBC连接SQL Server数据库的一段示例代码:第一件事:与数据库建立连接/注册SQL Server JDBC驱动程序 String driver = com.microsoft.jdbc.sqlserver.SQLServerDriver; Class.forName(driver); /连接到指定数据库的URL String URL = jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=test; String User =sa; /数据库的用户名 String Password = ; /登录密码 Connection conn = DriverManager.getConnection(URL,User,Password); Statement stmt=conn.createStatement();第二件事:发送SQL语句 /查询first_table表 String sql = select * from first_table ; ResultSet rs = stmt.executeQuery(sql);第三件事:处理SQL语句及返回结果 while(rs.next() System.out.println(rs.getString(title)+rs.getString(URL)+rs.getString(name)+rs.getString(age); 上述代码讲述了Java平台下JDBC连接和操作数据库的基本步骤,当然在Matlab平台下的具体使用方法会有所不同,具体方法在后文中将详述。Matlab自带的数据库工具箱Database Toolbox本身是采用Java语言编写的,其在各平台运行模式如下图所示:图? 数据库工具箱各平台驱动模式在Windows平台下可以采用JDBC/ODBC桥和单独使用JDBC驱动的方式来实现数据库的连接,而在UNIX下则只能使用JDBC驱动来连接数据库。在Windows平台下采用Database Toolbox工具箱连接数据库时,采用JDBC驱动效率会更高,因为其没有JDBC/ODBC桥这个中间过程。后文将在Matlab平台下,对比不同的驱动方式连接各种数据库的效率,以方便读者针对实际情况选择合适的驱动方式。URL、Driver概念介绍使用JDBC时,不同的数据库其URL和Driver均有所不同,同一数据库不同版本之间URL和Driver也可能存在差异,所以在连接数据库之前需要对这两个概念有所了解,这样才能准确的使用JDBC连接数据库。本部分内容不影响对本节其他内容的理解。URL:统一资源定位符(Uniform / Universal Resource Locator)也被称为网页地址,是因特网上标准的资源的地址。其由三部分组成:协议类型,主机名和路径及文件名。如:/img/logo.gif 其中http表示网络协议,对应的是主机名, /img/logo.gif则表示具体文件的路径。但是JDBC中的URL与网络上常用的URL又有所区别,它提供了一种标识数据库的方法,以使相应的驱动程序能识别该数据库并与之建立连接。读者不必深究URL具体是怎么形成的,只需知道URL和Driver需要一起使用,且不同的数据库、不同的版本二者的组合有所不同。JDBC中URL的标准语法如下所示,它由三部分组成,各部分间用冒号分隔:jdbc:这三个部分可分解如下:jdbc协议,JDBC中URL的协议总是 jdbc。驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称。子协议名的典型示例是 odbc,该名称是为用于指定 ODBC 风格的数据资源名称的 URL 专门保留的。例如,为了通过JDBC-ODBC 桥来访问某个数据库,可以用如下所示的 URL:jdbc:odbc:Sample上式中,子协议为odbc,子名称 Sample 是本地ODBC 数据资源。然而,对于远程服务器上的数据库需要更多的URL信息。如果数据库是通过Internet 来访问的,则在 JDBC的URL 中应将网络地址作为子名称的一部份包括进去,且必须遵循如下所示的标准 URL 命名约定:/主机名:端口如下所示的SQL Server的JDBC URL:URL=jdbc:sqlserver:/01:1433;DatabaseName=test其中/01:1433用于标识位于网络主机/01中的test数据库。(SQL Server一般采用1433端口)Driver:JDBC驱动程序,每个数据库对应的JDBC Driver都有所不同,需要用户下载并加载。JDBC驱动有四种类型,在网络上下载JDBC驱动程序文件时会有相关说明文字指出该驱动程序是哪种类型的JDBC驱动,如下图所示:图? JDBC驱动程序类型Type1:JDBC-ODBC桥JDBC-ODBC桥是由SUN公司的JDK提供的标准API,此类驱动实际是把所有JDBC的调用传递给ODBC,再由ODBC调用本地数据库驱动代码来实现数据库的连接。采用JDBC-ODBC桥几乎可以访问所有本地装有ODBC驱动的数据库,但此类方法是先调用ODBC再由ODBC调用本地数据库接口访问数据库,所以执行效率比较低,对于大数据量的存取并不适合,且无法用于Internet应用。Matlab自带的Database Toolbox的ODBC连接方式即采用此类JDBC连接方式对数据库进行访问,Access的JDBC驱动也是此类方法。Type2:Java to Native API 本地API驱动本地API驱动直接把JDBC调用转变为数据库的标准调用再去访问数据库,其需要本地数据库驱动代码。此类驱动比JDBC-ODBC桥已经有很大的提高,但是仍依赖数据库厂商提供的代码库,无法应用于Internet,且效率方面也比类型3和类型4低。Type3:Java to Net 网络协议驱动此类驱动是先把数局库的访问请求传递给网上的中间件服务器,中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用传给数据库服务器。由于这种驱动是基于服务器的,所以,它不需要在客户端加载数据库厂商提供的代码库,执行效率较高,同时可以设计的很小,可以非常快速的加载到内存中。也真是因为多了个中间层,其效率还不算最好。Type4:Java to Native Dababase 本地协议驱动此类驱动直接把JDBC调用转换为符合相关数据库系统规范的请求,直接与数据库服务器通讯,由于完全有Java实现,所以能实现平台独立性。正是由于直接与数据库服务器,该类驱动效率是非常高的;但是对于不同的数据库需要下载不同的驱动程序。1型驱动由于执行效率不高,只能做为一种过渡方案,对初学者来说较易理解,实际项目一般不采用此类驱动。1型和2型驱动效率较低,使用的较少。对于Internet方面的应用必须考虑使用3型和4型驱动,3型驱动适合那种需要同时连接多个不同种类的数据库,并且对并发连接要求高的应用,4型驱动则适合那些连接单一数据库的工作组应用。本书主要介绍1型和4型JDBC驱动。3.2.2 JDBC数据源配置本节以SQL Server 2008数据库为例,详细介绍Matlab平台下JDBC数据源的配置流程及相关注意事项。其它数据库的JDBC数据源配置流程与此类似。具体配置流程如下图所示:JDBC驱动安装classpath添加VQB配置数据源代码配置数据源图? JDBC数据源配置流程JDBC驱动安装SQL Server数据库最新版本为SQL Server 2008,SQL Server数据库最新版的JDBC驱动为Microsoft SQL Server JDBC Driver 3.0,该驱动可以在微软主页上免费下载,地址如下:/downloads/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707&displayLang=zh-cn该JDBC驱动支持Linux、Unix、Windows 7、Windows Server 2003; Windows Server 2008 R2、Windows Vista、Windows XP等支持Java虚拟机(JVM)的操作系统。支持数据库版本包括SQL Server 2008、SQL Server 2005、SQL Server 2000。使用该驱动需要安装Java 5.0及以上的工具包。JDBC驱动安装下载并运行名为sqljdbc_3.0.1301.101_chs.exe的文件,按照提示输入安装目录,解压缩sqljdbc_3.0文件夹,建议把该文件解压缩到%ProgramFiles%目录下。在sqljdbc_3.0文件夹的enu子文件夹下有两个文件sqljdbc.jar和sqljdbc4.jar。为方便Matlab使用SQL Server的JDBC驱动,把sqljdbc.jar和sqljdbc4.jar复制到以下地址:$matlabroot/java/jar/toolbox (matlabroot为Matlab的安装路径)classpath添加sqljdbc.jar 类库提供对JDBC 3.0的支持,要求使用5.0版的Java运行时环境 (JRE)。连接到数据库时,在JRE 6.0上使用 sqljdbc.jar会引发异常。sqljdbc4.jar 类库提供对JDBC 4.0的支持,它不仅包括 sqljdbc.jar 的所有功能,还包括新增的 JDBC 4.0 方法。但要求使用6.0或更高版本的Java运行时环境 (JRE)。在 JRE 1.4或5.0上使用sqljdbc4.jar会引发异常。注:JRE 1.5和JRE 5.0是对应的,二者为同一JRE版本,JRE 1.6和JRE 6.0是对应的,二者为同一JRE版本。在使用JDBC驱动时,需要根据本机JRE版本的不同来选择对应的文件,如本机JRE版本为JRE 6.0(JRE 1.6)则需选择sqljdbc4.jar类库,其余版本则只能选择sqljdbc.jar 类库。查看本机JRE版本在Matlab的Command Windows窗口中输入:ver,则可显示Matlab的各种版本号其中就包括JRE版本,结果如下图所示: ver-MATLAB Version 99 (R2010a)MATLAB License Number: 161051Operating System: Microsoft Windows 7 Version 6.1 (Build 7600)Java VM Version: Java 1.6.0_12-b04 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode-从上述结果中我们看到Java VM Version: Java 1.6.0_12-b04,即本机的JRE版本为JRE 1.6,应该选择sqljdbc4.jar 类库。添加classpath在Matlab的Command Windows窗口中输入:edit classpat.txt。则会在Editor窗口中打开classpat.txt,在该文件的最后添加sqljdbc4.jar 类库的地址即可,如在该文件最后添加:$matlabroot/java/jar/toolbox/sqljdbc4.jar,保存classpat.txt文件。重启Matlab程序就可以使用JDBC连接数据库了。若classpath.txt中指示的sqljdbc4.jar类库地址与实际地址不符时,Matlab并不会报错,但是无法连接到数据库。所以应确保classpath.txt中指示的地址与sqljdbc4.jar类库地址相符,当sqljdbc4.jar类库更改位置时需及时修改classpath.txt的对应值。注:在classpath.txt中不能同时添加sqljdbc4.jar和sqljdbc.jar类库,否则不能正常连接数据库。VQB配置数据源u 在Matlab的Command Windows窗口中输入:querybuilder,打开可视化查询生成器(Visual Query Builder)。u 点击Click Query Define JDBC Data Source,弹出如下图所示的对话框。u 若是第一次建立JDBC数据源,则点击Create New File,在弹出的对话框中选择适当的位置保存MAT文件,该文件用于存放JDBC数据源的配置信息。u 建立好MAT文件后会在JDBC data source file处显示该文件的地址,同时对话框中的Data source、Name、Driver、URL都处于可编辑状态,在对应位置填写好相关信息后,点击Add/Update即可保存该JDBC数据源信息,如下图。u 点击Test,在弹出窗口中输入数据库对应的登录名和密码,若一切操作正确会弹出如下图所示的连接成功对话框,此时表示建立的JDBC数据源能正常连接到指定数据库。u 点击OK保存该JDBC数据源配置信息,此时在Visual Query Builder对话框的Data source栏下会看到刚刚建立的JDBC数据源,至此JDBC数据源建立完成。注意事项:u 数据源建立对话框中的Name选项为数据源的名称,可以由用户任意选取,但是某些数据库的数据源名称必须与所连接的数据库名称一致。u Driver选项为JDBC驱动名称,SQL Server 2008该名称为:com.microsoft.sqlserver.jdbc.SQLServerDriveru URL选项为指向JDBC驱动的URL地址,具体概念参见前文,SQL Server 2008中该地址可以表示为:jdbc:sqlserver:/localhost:1433;u 不同数据库,不同版本其Driver名称和URL连接符都有所不同,具体信息将在后文做详细介绍。代码配置数据源使用VQB方式建立JDBC数据源的过程也可以通过m文件的代码来实现,实现过程主要采用Matlab自带的Database Toolbox工具箱的database函数。conn = database(databasename,username,password,driver,databaseurl)databasename指向数据库的数据源名称username数据库登录名password登录密码driverJDBC驱动程序名称databaseurlJDBC驱动URL连接符与采用VQB建立数据源一样,需要设置正确的driver和url连接符,以下代码可以实现用代码的方式配置JDBC数据源。%在Matlab用JDBC驱动连接SQL Server 2008(其他仅连接符url和driver不同)%在运行此段代码前先确保配置好了JDBC驱动,方法如下:%1.Microsoft官网下载sqljdbc3.0驱动Microsoft SQL Server JDBC Driver 2.0.exe(4M左右)%2.解压后能看到sqljdbc4.jar和sqljdbc.jar文件,针对电脑上JDK的版本选择导入文件,如JDK6.0导入sqljdbc4.jar%3.在command windows中输入:edit classpath.txt 打开路径配置文件 在文件最后一行添加sqljdbc4.jar的完整路径,%(不能同时加载sqljdbc4.jar和sqljdbc.jar的路径,否则不能正常连接数据库)。%4.在SQL Server中新建一个登录名godman,并设置密码为godman%5.采用如下代码在Matlab中连接SQL Server 2008%Godman 2010.12.20 clear;close all%urldatabaseurl=jdbc:sqlserver:/localhost:1433;%driverdriver=com.microsoft.sqlserver.jdbc.SQLServerDriver; username=godman; %登录名password=godman; %密码databasename=Test; %数据源名称conn = database(databasename,username,password,driver,databaseurl)在Command Windows窗口运行上述代码,返回conn的信息如下,当Message的内容为空时,表示与数据库建立起了正常的JDBC连接,此时就可以对数据库进行读取和写入等操作。conn = Instance: Test UserName: godman Driver: com.microsoft.sqlserver.jdbc.SQLServerDriver URL: jdbc:sqlserver:/localhost:1433;DatabaseName=bianshishuju; Constructor: 1x1 com.mathworks.toolbox.database.databaseConnect Message: Handle: 1x1 com.microsoft.sqlserver.jdbc.SQLServerConnection TimeOut: 0 Auto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论