您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页嵌入式数据库JDBC接口技术研究

嵌入式数据库JDBC接口技术研究

来源:暴趣科技网
第27卷第4期 贵州大学学报(自然科学版) Vo1.27 No.4 2010年8月 Journal of Guizhou University(Natural Sciences) Aug.2010 文章编号1000—5269(2010)04—0081一O5 嵌入式数据库JDBC接口技术研究 赵彩云,周兰江 ,胡草华,于亚君 (昆明理工大学信息工程与自动化学院,云南昆明650051) 摘要:文章先将Java虚拟机成功的移植至嵌入式平台Windows Mobile下,并设计测试程序验 证移植的虚拟机是否成功、是否支持图形界面的功能。其次,在嵌入式平台下实现了嵌入式数据 库SQLite的JDBC访问接口,最后对研究结果进行测试。这些工作的完成,充分体现了Java语言 的跨平台特性和JDBC标准接口的优势,在很大程度上拓展了Java应用于嵌入式开发的领域,减 轻了嵌入式应用软件开发人员的负担和工作量,对今后的应用开发极具意义。 关键词:Windows Mobile;虚拟机;SQLite数据库;JDBC;嵌入式 中图分类号:TP3l1 文献标识码:A JDBC是(Java Data Base Connectivity java)可 dir”value=”../elasspath-org/classpath-0.97.2”/ 以执行SQL语句的Java API,它由一组用Java语 >.在命令窗口中执行ant指令,生成Java虚拟机 言编写的类和接口组成。可以为多种关系数据库 的核心类库文件rt.jat包。 提供统一访问,基于这些功能文章实现嵌人式开发 1.1.2生成Mysaifu JVM 平台Windows Mobile下的JDBC驱动程序,作为 (1)在Visual Studio 2008中打开“E:\v0—4—5\ Java与SQLite互通的桥梁。使得嵌入式系统开发 lib\lib.sln”进行编译生成.1ib文件和.dH文件。这 人员能够用纯Java API编写数据库应用程序,吸引 样,虚拟机和类文件需要的本地方法被编译为静态 了广大开发者。 库或动态库文件的形式,并与虚拟机链接在一起以 1嵌入式平台下Java虚拟机的移植 动态库文件的形式存放和使用。 嵌入式Java运行环境由嵌入式Java虚拟机和 (2)在Visual Studio 2008下打开“E:\v0—4—5\ 嵌入式Java运行时库组成。因此,选用GUN jvm\jvm.sln”进行编译,成功后生成虚拟机可执行 Classpath作为java的核心类库,而java虚拟机用 文件:jvm.exe和虚拟机执行时所用到动态库jvm. Mysaifu JVM来实现。Java运行环境的搭建步骤如 dU. 下: 1.2创建Windows mobile平台的安装文件 1.1编译Mysaffu JVM的类库并生成Mysaffu JVM 在命令行下执行“create—cab.cmd”,生成安装 1.1.1编译Mysaifu JVM的类库 文件jvm.Release.CAB. 准备好Mysaifu JVM的源代码和Java核心类 1.3安装及测试 库GUN classpath-0.97.2,并把核心类库classpath- 将jvm.Release.CAB拷贝至PDA的“/My 0.97.2文件放到E:\v0_4_5\lib\elasspath—org目录 Documents”目录下,双击该文件可以自动安装,安 下,修改ant构建文件build.xml,将<property llaIl'le 装成功后,会有Mysaifu JVM图标。之后,运行一 =”clsaspath-dir”value=”../clsaspath—org/class— 个带图形界面的测试程序,结果如图2.1(a)和 path-0.97.1”>改成<property name=”elsaspath一 (b)所示: 至此,Mysaifu JVM已经成功移植至PDA上。 收稿日期:2010—06—26 作者简介:赵彩云(1981),女,汉族,山西治市人,硕士,主要研究方向为:嵌入式及移动通讯应用研究,Email:zcyhhxx@163.toni. }通讯作者:周兰江,Email: km@china。corn. ・82・ 贵州大学学报(自然科学版) 第27卷 (a)PDA上移植的Java虚拟机 (b)PDA上运行helloworld.cJass文件 图1 2嵌入式平台下SQLiteJDBC接口的 设计与实现 实现嵌入式Windows Mobile平台下的SQLite— 中用到的关键技术。JNI调用过程如图2所示: JDBC驱动程序后,开发人员可以用Java API来访 问数据库应用程序。SQLiteJDBC接口提供的基本 功能包括与数据库建立连接、发送SQL语句和处 理数据库返回结果等。 2.1嵌入式平台下SQLiteJDBC接口的设计 图2 JNI调用过程 (1)SQLite数据库用C语言编写,提供了C语 言的API,如果想用Java程序来访问数据库,需要 用到Java本地方法技术JNI。JNI(Java Native In. terrace的缩写),即Java本地接口,它允许Java代 码和其它语言编写的代码交互。 本文采用JDBC驱动类型是Java到本地API 驱动,JNI技术是SQLiteJDBC驱动程序实现过程 (2)设计思想:编写JDBC驱动类,通过它去调 用存放在本机上的动态链接库。其实现代码主要 有两部分:Java部分和C部分,最终生成两个文 件。一个是Java实现类编译打包后的压缩文件 sqlite3.jar,另一个是sqlite3.h,sqlite3.C,sqlite3jni— wrap.C编译后生成的动态库文件sqlite3jni.dll,设 计过程如下图3所示: 图3 SQLiteJDBC设计思想 上图中,Java应用程序通过加载sqlite3.jar中 的JDBC驱动程序。然后通过驱动类访问 据库的连接。 (2)面向底层的JDBC Driver API,负责向驱动 sqlite3jni.du动态链接库文件。从而达到访问本地 用C语言实现的SQLite API的目的。 2.2 SQLiteJDBC接口的实现 2.2.1 实现Windows Mobile平台JDBC API的接 1:7和类 管理器加载JDBC驱动程序并加载编译成功的动 态库文件。 实现的这些驱动类被打包成jr包使用。在本 a文中为sqlite3.jr a2.2.2 生成SQLite数据库的JNI程序以及符合 JNI语法的C文件和Java包装器 待实现的JDBC AP1分为面向程序员开发的 接13和底层的JDBC Driver API: (1)面向程序员开发的接口分别是Connec— tion、Statement、ResuhSet,主要功能是建立与某个数 (1)生成SQLite数据库的JNI程序 SWIG(Simplified Wrapper and Interface Genera— tor的缩写),即简化封装和接口生成器,是“一种把 第4期 赵彩云等:嵌入式数据库JDBC接口技术研究 ・83・ 用C及C++所写的程序连接到各种高级编程语 言的软件开发工具”。 名。需要确信把正确的头文件放在%{…%}部 分。 首先要编写原C程序和Java类的SWIG类型 声明输人文件sqlite3jni.i,格式如下: %module sqlite3jni %{ #include”sqlite3.h” (2)生成符合JNI语法的c文件和Java包装 器 将swig.exe的文件存取路径设置到环境变量 中。命令行下执行swig—java sqlite3jni.i,之后在 SWIG目录下生成了符合JNI语法的C文件: sqlite3jni—wrap.C及sqlite3.java和sqlite3jni.java. %} 这个文件分为两部分:由%module开头的是 结果如图4所示: 模块名,由%开头是SWIG指令和c函数的类型签 图4生成符合JNI语法的C文件结果图 2.2.3利用vs2008生成必要的动态库文件 在进行编译的时候除了sqlite3jni_wrap.C文件 必须外,还需要加入sqhte3.h头文件及sqlite3.C 这个原c类的实现文件,进行编译。 其具体实现过程如下: 本地动态库文件DLL时首先会找sqlite3.jar这个 包,然后再找相应的类文件或加载本地的动态库文 件,之后再去调用c程序的API. 至此为止,SQLiteJDBC驱动已完全实现。 2.2.5 SQLiteJDBC接口测试 (1)在vs2008中创建名为sqlite3jni的动态库 工程 创建的项目类型属于VC++的Win32智能设 备动态库文件,文件名必须为sqlite3jni.选择的平 台是Windows Mobile 5.0 Pocket PC,附加选项设为 空。 首先,将生成的动态链接库文件sqlite3jni.dll 和Java实现类编译打包后的压缩文件sqlite3.jal" 放到PDA上与Java虚拟机的可执行文件相同的目 录下,然后编写SQLiteJDBC接口测试程序 sqlitetest1.java,通过JDBC API实现插入、查询、更 新、删除功能。代码如下: public class sqlitetestjdbel (2)添加必要的文件 添加原c类的实现文件sqlite3.C及头文件 sqlite3.h. { public static void main(String[]args) { try (3)进行编译调试,直至成功生成需要的DLL 文件 所生成的这个DLL文件中存放的是原C接口 被转换成了的Java接口。 2.2.4生成Java实现类编译打包后的压缩文件 { Class.forName(”org.sqlite.Driv— er”); Connection conn=DriverManager. 在Eclipse中创建工程sqfite3,并导入编写的 Java文件,将其编译成.class二进制文件后,打包 生成sqlite3.jar.这个jar文件包含了SQLiteJDBC 驱动的API、加载动态库文件sqlite3jni.dll的驱动 Driver类、sqlite3jni_wrap.c文件对应的一系列java 接口文件(如SQLite3.java、SQLite3JNI.java和 SWIG目录下的java文件)及实现特定功能的java 类(如Callback相关类、Event相关类及io相关类 getConneetion(”jdbc:sqlite:/mydb.db); Statement stmt=conn.createState. ment(); stmt.executeUpdate(”create table test(id int,nan,le varehar(20))”); stmt.executeUpdate(”insert into test values(1,,0ne’..);//Insert; stutr.exeeuteUpdate(”insert into 等等)。当Java应用程序要调用这些Java API及 ・84・ 贵州大学学报(自然科学版) 第27卷 test values(2,two')”);//Insert; stmt。executeUpdate(”update test set name=jdbc interface is running where id=2”); stmt.executeUpdate(”delete from where id=1”1;//delete ResultSet 1"8=sturt.executeQuery (”SELECT FROM test”);//select while(rs.next()) { String id =rs.getString f” idIt); //Column 1 String name=rs.getStringf” name”);//Column 2 System.out.println f”id”+id +”name”+name); } conn.close(); } catch(java.1ang.Exception e){ System.out.prinfln(e.getMessage()); System.out.prinfln(e.toString()); } } } 经编译后生成的sqlitetest1.class文件同步到 PDA上。注意,在执行.class文件之前一定在op— tion选项中指定sqlite3.jar文件的路径。否则会提 示:找不到sqlite3.jar文件,然后执行该类文件,执 行结果如图5所示: 图5使用JDBC接口操作数据库成功 此程序的成功运行实现了通过JDBC API对 数据库进行操作的功能。应用程序的开发人员只 需要用JDBC的API(而不是SQLite的API)就可以 达到访问SQLite数据库的目的。不仅实现了用统 一的方式操作数据库的标准JDBC API,同时也增 加了程序的可移植性。 3总结与展望 本论文在成功移植Java虚拟机到PDA的基础 上,重点实现了基于Windows mobile平台下 SQLiteJDBC数据库访问接口。为程序开发者提供 了便利。 在当今社会,嵌入式系统的功能越来越强大, 与人们的生活联系也越来越紧密,因而也有着广阔 的市场前景,所以我们应该根据实际需要进一步丰 富其功能。 参考文献: [1]梅晓丹.于新强.PDA的应用及其前景[J].黑龙江科技信息, 2008(8):34—37. [2]张晓林,崔迎炜.嵌入式系统设计与实践[M].北京航空航天 大学出版社,2008(10):59—63. [3 3曹艳春.嵌入式Java虚拟机及应用研究[D].西安:西北工业 大学,2005(7):32—35. [4]谭翼.基于ARM—Linux平台的Java虚拟机的移植研究[D]. 2006(12):24—29. [5]钱文郡.用JavaAPI和Java 2组件访问数据库[J].西安建筑 科技大学学报,2002(01):64—67. [6]刘建军.基于JDBC的web数据库接口技术研究[J].科技创 新导报,2008(04):22—24。 [7]曹艳春.嵌入式Java虚拟机及应用研究[D].西安:西北工业 大学,2005(8):39—43. 第4期 赵彩云等:嵌入式数据库JDBC接口技术研究 ・85・ The research on jdbc interface technology of embedded database ZHA0 Cai—yun,ZHOU Lan-jiang’,HU Cao—hua,YU Ya-jun (School of Information Engineering and Automation,Kunming University of Science and Technology,Ktmming 650051,China) Abstract:The first this essay has moved the virtual machine to the embedded platform Windows Moblie,and de— signed the testing procedures to demonstrate the validity of the results.Then this paper implemented JDBC inter- face of the embedded database SQLite on the embedded platform.In the end tested the research results.AⅡ0f htese reflect the platform independent of the Java and the advantage of the standard JDBC interface.The JDBC in. terface expanded the java application in the ifeld of embedded development to the great extent,Alleviate the bur- dens and the workload of the embedded application developers.These work is meaningful for future application development. Key words:windows mobile;virtual machine;sqlite database;jdbc;embedded (上接第80页) Study and Design of College Network Course Selection System by Utilizing ASP FU Su-jia’ (School of Mathematics and Computer Science,Guizhou Normal University,Guiyang 550001。China) Abstract:This essay provides a general description of network course selection system based on ASP,and dis- CUSSES how to conduct system modeling wiht UML and the way of achieving the main functions of the system by U— tilizing ASP based on the analysis of the management of college course selecting. Key words:course selection;B/S model;ASP;UML system modeling;datbaase 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务