[源码和文档分享]基于java实现的数据库管理系统

news/2024/7/4 10:10:36

一、需求分析说明

通过对数据库系统原理的学习,掌握数据库管理系统的运行原理,尝试在给定的DBF文件操作框架的物理储存基础上通过java建立一个数据库管理系统,以更好的温习学习的知识。

基本功能如下:

  • 实现创建表,并把约束条件存储到建立好的数据字典中

  • 为表添加删除列操作和删除表操作  

  • 实现对表数据的插入操作,并实现插入前约束检测    

  • 实现对表数据删除操作

  • 实现对表数据的修改操作,修改前对修改数据进行约束检测 

  • 实现对表数据的查询操作,完成多表查询,单条件多条件查询,单字段排序与多字段排序

  • 实现对输入过的SQL语句进行系统日志记录,并添加时间

  • 界面友好,易与操作,通过创建一个简单的窗口实现对SQL语句的输入和对运行结果的显示

二、模块分析

该系统存在于com.silence.mysql包中,系统文件夹目录下的data文件夹是数据库DBF文件的存储目录,logs文件夹是系统日志文件目录。

2.1系统主模块

该模块是数据库系统的主模块,在包主目录下,包括三个类DBMS.java、DBMSForm.java、MyException:

  • DBMS.java:系统的运行中心,通过输入的SQL语句开头将SQL语句传入到相应的子模块,并对SQL语句进行标准化预处理;通过对输入的正确的SQL语句实现对系统日志的记录

  • DBMSForm.java:系统的显示窗口,通过单例模式创建一个显示窗口,实现对SQl语句的输入操作和对运行结果的反馈显示,提供接口实现让其他模块运行时对UI界面的即时刷新,该类中的main函数是系统的运行入口

  • MyException.java:自定义异常,通过接收子模块抛出的运行时异常,实现将异常反馈输出到UI界面中供用户参考

2.2 DBF文件操作模块

该模块在包名下的dbf包中,通过javadbf4.1.jar包提供的DBF文件操作函数库,实现对数据库DBF文件的读写操作,该模块包括DBFContent.java和DBFUtils.java两个类。

  • DBFContent.java:这个是一个JavaBean,通过将读取到的DBF中数据存储到这个JavaBean中,实现对数据库中数据的操作

  • DBFUtils.java:DBF文件操作工具类,通过对javadbf4.1.jar中函数的调用,实现对DBF文件的读写操作,提供创建表,插入表和查询表的操作函数

 


参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/149.html

转载于:https://www.cnblogs.com/ddgg5151/p/10091604.html


http://www.niftyadmin.cn/n/530367.html

相关文章

storm 阿姆歌曲_Eminem经典歌词

【1】:I feel like Im caged in these chains and restraints. 感觉自己身处牢笼,身负枷锁。 --Eminem 《Evil Twin》【2】:Its a broke day but everything is okay 破碎的一天但一切都好 Im up all night, but everything is alright 彻夜…

Jupyter Notebook 的快捷键

Jupyter Notebook 的快捷键 Jupyter Notebook 有两种键盘输入模式。编辑模式,允许你往单元中键入代码或文本;这时的单元框线是绿色的。命令模式,键盘输入运行程序命令;这时的单元框线是灰色。 命令模式 (按键 Esc 开启) Enter : 转…

mysql中怎么用加法_MySQL 中=用法(长知识)

算术运算符MySQL 支持的算术运算符包括:运算符作用加法-减法*乘法/ 或 DIV除法% 或 MOD取余在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL。1、加mysql>select12;-----|12|-----|3|-----2、减mysql>select1-2;-----|1…

其他事件函数

对许多应用程序,现存包含和RED5不是相关的应用程序逻辑的类需要重用。为了使他们在客户端通过RTMP协议连接的时候可用,这些类需要作为RED5事件函数被注册。 现在有两种方法注册这些事件: 1. 把他们加到配备文件中; 2. …

mysql分组选择数据_我们可以按一列分组并选择MySQL中的所有数据吗?

是的,您可以为此使用group_concat()。让我们首先创建一个表-mysql> create table groupByOneSelectAll-> (-> StudentDetails varchar(100),-> StudentName varchar(100)-> );以下是使用insert命令在表中插入一些记录的查询-mysql> insert into g…

如何创建Red5应用程序

一.序言: 本文档的目的是描述如何在Red5中创建应用程序.需要使用Red5中所给的API. 二.应用程序目录: 在默认的情况下,Red5将所有的应用程序存放在根目录的"Webapps"目录下面.因此在创建一个新的应用程序之前,首先需要在这个目录中创建一个子目录.习惯上这个子目录的…

elasticsearch-mathc和term的区分

elasticsearch和mysql在思想上是有不同的,elasticsearch有分词一说,比如北京奥运分词成北京,奥运,北京奥运。分词要要考虑两点,一个是查询字符串要不要分词,还有就是原存储字段是不是精确值。 1. match 查询…

easyexcel设置下拉选项不能覆盖_Excel2016下拉菜单怎么做?

在 Excel 中,制作一些有选择分类功能的表格时,需要制作下拉菜单,以便于每一行选择和减少输入,那么 Excel下拉菜单怎么做?这主要用公式中的定义名称和数据中的数据验证两项功能,用这两项功能可以制作出一级下…