目录

  • 源代码说明
  • 一、源代码地址
  • 二、源代码文件说明
    • 1.关键类说明
    • 2.关键方法说明
  • 参考文献

源代码说明

该文章是对JAVA课程设计—《基于JAVA实现的数据库管理系统》 的源代码说明。


*该项目代码仅供参考
By-Group6: dls zly cyx lhy

一、源代码地址

Github 代码地址:
基于java实现的数据库管理系统.

二、源代码文件说明

1.关键类说明

系统主模块

(1) DBMS.java
该类首先将输入的SQL语句根据首部关键词划分,将其传入到对应的功能子模块
中,同时对SQL语句进行去除多余空格、分号的预处理。系统日志记录输入正确的SQL语句。
(2) MyException.java
该类完成将子模块抛出的异常输出到系统界面的功能。

文件操作模块

(1) DBFUtils.java
利用javadbf 实现对DBF文件的读写操作,实现从DBF文件获取数据、创建及插
入表的函数。
(2) DBFContents.java
完成数据库中数据的读取操作,将DBF中数据存储到该类中。

条件处理模块

(1) Where_and.java
实现了Between…and…、=、<>、<、<=、>、>=条件匹配。
(2) Where_or.java
将where条件转换为or条件组,该类提供对一条记录的条件匹配操作函数,从而
实现对一条记录的条件匹配操作函数。

2.关键方法说明

(1) Alter.java

对SQL语句拆分解析,提取tablename、columnname、add、drop字符串,将对应
数据表中的数据读取到内存中,根据列名对DBFContent中的字段数组进行增加或删除,再将DBFContent写回DBF文件中。

(2) Create.java

对SQL语句拆分解析,提取tablename、columnname,类型与约束条件,约束条件记录在data文件夹下“constraint.dbf”中,调用DBFUtils.createDBF()实现表的创建。

(3) Delete.java

对SQL语句拆分解析,提取tablename和where条件,通过条件模块匹配将记录从DBFContent中删除,再将DBFContent写回DBF文件中。

(4) Drop.java

对SQL语句拆分解析,提取tablename,将data文件夹下对应文件删除。

(5) Insert.java

对SQL语句拆分解析,提取tablename和column属性键值对,查找“constraint.dbf”中对应表的记录获取该表约束条件,判断是否允许插入记录,若符合则再DBFContent中添加新的记录,将DBFContent写回DBF文件中。

(6) Select.java

对SQL语句拆分解析成select、from、where、group by、order by语句块,其中select后语句块记录带查询列名,from后语句块为带查询表名。
Where条件提取到where模块中,group by 后面的语句提取到List groups中,order by 后的语句提取到List orders 中。
通过translateWhere()提取where语句块中的字符串,以or或and为界,循环处理每一个条件。
读取froms中所有表的DBF数据,按列名键值相等的原则对多表连接,得到的结果按orders语句块中的升序和降序条件对结果排序输出。

(7) Update.java

对SQL语句拆分解析,得到tablename、修改键值对和修改条件,通过where模块查询待修改记录,并根据“constraint.dbf”中约束条件判断是否允许修改,若允许则将修改后的记录添加到DBFContent中,写回DBF文件。


参考文献

Java官方文档:https://docs.oracle.com/en/java/
其他参考:https://blog.csdn.net/demongwc/article/details/8478744

Java 课程设计--数据库管理系统相关推荐

  1. java设计火车的类,JAVA课程设计--火车票管理系统

    JAVA课程设计--火车票管理系统 ******************* 实践教学实践教学 ******************* 兰州理工大学兰州理工大学 计算机与通信学院 2013 年秋季学期 ...

  2. java学籍管理系统课设报告,java课程设计学籍管理系统.doc

    java课程设计学籍管理系统.doc 课程设计任务书题目学籍管理系统组员学号组员学号组员学号专业课程JAVA指导教师完成时间2011年9月2011年12月计算机科学系制1课程设计任务书及成绩评定课程设 ...

  3. 人事管理java 课程设计_数据库+Java课程设计 人事管理系统 (一)

    一.JAVA与数据库的合作 此次开发语言为Java,所用的数据库驱动是mysql-connector-java-5.1.8-bin.jar 第一步   用Java连接MySQL数据库(驱动下载:htt ...

  4. java 课程设计数据库_人事管理系统(java数据库课程设计)+SQL数据库

    [实例简介] 员工各种信息:包括员工的基本信息,如编号.姓名.性别.学历.所属部门.毕业院校.健康情况.职称.职务.奖惩等:员工各种信息的修改:对转出.辞退.退休员工信息的删除:按照一定条件,查询.统 ...

  5. java课程设计(图书管理系统)

    技术:Swing+jdbc+mysql Swing:Swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格,操作简 ...

  6. JAVA设计学校的人事管理系统,java课程设计(人事管理系统).doc

    可编辑版 PAGE Word完美格式 人事管理系统 TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc343718074" 一.系 ...

  7. java 课程设计——银行管理系统

    银行管理系统(java) 环境: idea2020 jdk1.8 能实现的功能: 1.注册账户 2.登录 3.查询账户信息 4.存款 5.取款 6.向另一个账户转账 7.修改账户密码 8.注销账户 项 ...

  8. JAVA课程设计——农村人口管理系统 D4 功能实现(户头增删改查)

    上一篇,操作员页面设计 现在我们就来实现一下对户头的增删改查. 目录 添加户头 增加户头页面设计: 增加户头功能设计 Host 显示户头 1.显示户头的页面设计 2.显示户头功能设计 删除户头 1.删 ...

  9. java课程设计成绩管理系统_Java课程设计--学生成绩管理系统

    一.团队名称: ##团队成员 林艺薇 201721123032 网络1712 黄毓颖 201721123033 网络1712 唐川 201721123034 网络1712 梁才玉 2017211230 ...

最新文章

  1. 几个经典的TCP通信函数
  2. ASP生成HTML讲座笔记
  3. svn中项目管理中ec_Mac中使用svn进行项目管理
  4. Hystrix面试 - 基于 Hystrix 线程池技术实现资源隔离
  5. 1-概述程序构成基本元素
  6. Eclipse CDT 编译wxWidgets
  7. Ubuntu 安装 JDK 7 / JDK8 的两种方式
  8. python在线学习pdf_扣丁学堂Python在线学习之将pdf转成图片的方法
  9. 【SQL】去除表中的重复行
  10. api 读内存整数_10万+QPS 真的只是因为单线程和基于内存?
  11. XMPP即时通讯机制
  12. 软件设计过程--概要设计详细设计
  13. python数据分析挖掘与可视化课件_python数据分析与可视化
  14. Leetcode应该怎么刷?【笔试】
  15. 冯仑《企业领导最容易犯的十大错误》 .
  16. 几道经典逻辑推理题,提高你的逻辑思考能力
  17. ArcGIS Runtime for Android天地图底图及TPK数据包放大后数据不显示问题
  18. Sketch 快捷键速记表(中英对照)
  19. 求一个乘法算式采用几进制
  20. 电脑端epub阅读软件分享

热门文章

  1. 30天简单了解Java-Day5深入类和对象
  2. 天不怕,地不怕,就怕李佳琦的“OMG,太好看了吧!”
  3. NID-SLAM: Robust Monocular SLAM using Normalised Information Distance - Part2
  4. 球面三角形的梅涅劳斯定理、塞瓦定理及其应用
  5. 史玉柱亲笔写的脑白金策划方案
  6. sql语句中的or用法(及与and和in区别)
  7. MyBatisPlus中条件构造器中or和orNew的区别
  8. 搭建repo服务器管理多个git工程
  9. 越狱剧《青盲》观感之“自作孽不可活”
  10. 【Java】有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?