主办单位: 共青团中央   中国科协   教育部   中国社会科学院   全国学联  

承办单位: 贵州大学     

基本信息

项目名称:
ACCESS2003数据库在Java程序中的应用
小类:
信息技术
简介:
在很多的实际应用系统中,数据库是必不可少的数据存储方式,而ACCESS2003数据库具有简单、高效、便于管理和使用的数据库管理系统。本文简述在Java程序中如何应用ACCESS2003数据库的具体原理和方法。
详细介绍:
在各种软件应用系统开发中,数据库的应用具有极其重要的意义,大部分软件系统都需要利用各种数据库管理系统来存储和查询各种结构化的数据。在各种各样的数据库管理系统中,微软的Access单机数据库具有使用简单、方便、小巧等各种优点,在装有微软office的计算机系统中都会按照有Access。另一方面,在各种程序设计语言中,Java语言由于拥有面向对象、跨平台等各种优良特性,而被很多开发人员所使用。因此,本文以一个学生学籍管理系统为例,讲述Java程序中如何应用Access 2003数据库。 1 建立数据库 在实现系统之前,首先需要创建数据库。具体对学生学籍管理系统,我们先来建立学生学籍管理数据库。首先安装office2003,启动ACCESS2003,建立新数据库学生学籍管理数据库(xjgl.mdb),创建包含二个文本型字段 number和name的表,表名为student,录入最好10个以上的记录到student表中,不妨假设是保存在D盘根目录下。然后,后续的问题是:如何在Java程序中读取Access数据库里面的字段?基本的方法有个:有本地方法和远程访问方法。 2 桥接驱动 在创建好数据库之后,程序运行时需要对数据库建立连接,才可以读取数据库中的内容。下面,以数据库管理系统ACCESS2003,编程软件JCREATE、Java运行环境jdk1.5.8为例来说明Java连接数据库的过程。 2.1本地连接 JDBC(Java DataBase Connectivity)是Java数据库连接的API。JDBC能完成与一个数据库建立连接,然后向数据库发送SQL语句,再处理数据库返回的结果。JDBC在设计上和ODBC相似。JDBC和数据库建立连接的一种方式是首先建立起一个JDBC-ODBC桥接器。 利用JDBC连接数据库的过程是:打开控制面板 -> 管理工具 -> 数据源 (ODBC),选择“系统DSN”,也可以选择“用户DSN”选项卡,系统的DSN对每个用户都适用,可避免调试时出现的权限问题。单击“添加”,选择Microsoft Access Driver(*.mdb)选项。点击"完成",弹出的对话框里将“数据源名”一项设为我们喜欢的名字,比如redsun。点“选择”,找到“D:\ xjgl.mdb”文件,如此一个ODBC数据源就配置好了。 然后就是连接数据库了这里要用到java.sql包中的Connection类。首先声明一个Connection类对象,再用类DriverManager调用它的静态方法getConnection创建这个连接: Connection con=DriverManager.getConnection("jdbc:odbc:数据源名字","数据源用户名","数据源密码"); 为防止连接出现异常,这里也要有个异常的处理,具体代码是: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Class 是java.lang包中的一个类,通过调用它的静态方法forName就可以建立桥接器。但建立桥接器时可能发生异常,这是我们所不想见到的,因此要捕获这个异常: try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { 异常捕获 } 2.2远程连接 通过远程方式连接Access数据库时,需要使用rmijdbc。 我们首先从网上下载rmijdbc.jar, 加入系统环境变量,运行java org.objectweb.rmijdbc.RJJdbcServer。这一步很重要,用来启动rmijdbc服务。否则,连接的时候报Connection refuse异常。 远程方式连接Access数据库的具体步鄹是: 第一步:在服务器上建一个odbc数据源,指向一个学生学籍管理数据库.mdb文件; 第二步:客户端连接代码(假设数据库服务器的IP地址为:192.168.0.201) Class.forName("org.objectweb.rmijdbc.Driver").newInstance(); String url = "jdbc:rmi://192.168.0.201/jdbc:odbc:redson"; 3 Java 程序源代码 import java.sql.*; public class access{ public static void main(String args[]) { Connection con; Statement sql; ResultSet rs; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){ System.out.println(""+e); } try{ con=DriverManager.getConnection("jdbc:odbc:redsun","",""); sql=con.createStatement(); rs=sql.executeQuery("Select * FROM student"); while(rs.next()){ String number =rs.getString(1); String name =rs.getString(2); System.out.println("学号:"+); System.out.println("姓名:"+name); } con.close(); } catch(SQLException el){} } } 4 几点注意事项 在Java程序中访问Access数据库时,需要注意几个问题。 1)中文字段的查询问题 Java用中文字段作为查询条件时,有时总是找不到数据集,但是Access2003数据库中却有符合条件的数据。这时,如果是在jsp等网页程序中访问数据库,则需要添加如下一句代码: <%@ page language="java" pageEncoding="GBK"%> 即在页面中说明页面采用的编码是“GBK”。 如果是在程序中,则jdbc driver在接受查询结果时,应该做 GBK到unicode 的转换才对。在connector-j-3.0.7 里面的 readme, 我们可以找到一个解决方案: connection = DriverManager.getConnection ( " jdbc:rmi://192.168.0.201/jdbc:odbc/xjgl?user=root&password=&useUnicode=true&characterEncoding=GBK" ); 也就是告诉jdbc driver 强制按指定参数进行转码。 2)中文数据的写入问题 Java 在向数据库插入数据时不支持中文。具体的解决方法是:打开Access数据库,找到缺省的字符集default-character-set这一项,将该数据库的字符集改成gbk字符集。 另外的一种解决方法是:在将数据写入数据库之前,将所有包含中文的字符串进行字符转换成ISO或UTF8;在将含有中文的字符串从数据库里读出来后在用程序转换成GBK或GB2312。这种方法比较麻烦,每次写入和读出中文之前都必须调用这两个方法。

作品图片

  • ACCESS2003数据库在Java程序中的应用

作品专业信息

撰写目的和基本思路

在Java程序应用中数据库的应用对于信息技术提升起到很大作用,主要是根据JDBC方法实现对数据库的访问和操作。完成的主要任务有请求与数据库建立连接;向数据库发送各种请求;为结果集定义存储应用和数据类型;查询结果;处理错误;控制传输、提交及关闭连接等操作。

科学性、先进性及独特之处

在所有面向对象的程序设计语言中,JAVA是比较简单易学易用易推广的。其中所有的对象都是通过类来描绘的。通过JAVA程序中数据库ACCESS2003,使得海量信息在网络中更容易比共享和传递。

应用价值和现实意义

面向对象的程序设计语言JAVA和中小型关系数据库管理系统ACCESS2003是两种不同数据处理方式。他们之间有很大的差异性,但是对于他们的选择却又往往反映出对于问题领域中的概念本质的理解。对于设计者的反映是否正确、合理、有效,充分表现了两者间的优势互补关系。对于信息技术推广使用将起很大作用。

学术论文摘要

作品通过在很多的实际应用系统中,数据库是必不可少的数据存储方式,而ACCESS2003数据库具有简单、高效、便于管理和使用的数据库管理系统。本文简述在Java程序中如何应用ACCESS2003数据库的具体原理和方法。

获奖情况

鉴定结果

参考文献

1.程芳:关系数据库ACCESS应用, 网络软件, 2004(12) 2.陈安琪 许统邦:JAVA接口管理与实现初探,华南理工大学学报2006(8) 3. 靳恒清:《JAVA程序设计中接口技术》,甘肃科技纵横,2010.5 4. 武传海(译):《Java编程基础、应用与实例》,人民邮电出版社,2005.10 5.刘万军等: 《Java程序设计实践教程》,清华大学出版社,2006.9

同类课题研究水平概述

面向对象的程序设计语言Java是一门很值得学习和研究的课程,特别是其中的抽象类和接口灵活应用,在一定程度上反应出设计水平的灵活性与可读性还有执行效率的高低。在Java语言中数据库的应用是支持信息产业化、网络化的最佳有效途径之一,正是由于这两种理念的存在,才赋予了Java强大的面向对象能力。
建议反馈 返回顶部