数据库应用系统的开发

初步掌握数据库应用系统分析设计的基本方法;进一步提高分析与解决问题的综合能力;初步掌握数据库建模工具的使用方法

实验环境

数据库使用云服务器openEuler操作系统上的openGauss数据库,主要功能及界面在windows下使用eclipse编写java程序实现。

实验内容

一、系统选题需求情况

完成一个图书管理系统,实现对图书信息的增删改查功能,并且该系统需要进行用户登录的过程才能够正常使用。

二、系统的概念数据模型(E-R 图)设计

三、系统中每张表的说明

基本表 属性
用户 用户名、密码
图书类别 图书类别名称、图书类别简介
图书 书号、图书名称、作者、图书类别、图书简介

users中包含了管理员的登录信息,其中包含了管理员名称和密码,目前只包含了两个管理员。

booktype表是有关图书的类别表,其中包括图书类别名称(typename)和图书类别简介(typedesc),其中typename作为book表的外键

book表中保存所有图书的基本信息,包括书号(id),书名(bookname),作者(author),图书类别(booktype),图书简介(bookdesc)。其中id为主键且固定为5位字符

四、系统运行环境配置,操作说明,前端与后台数据库连接用到的关键语句说明

1.系统运行环境配置

目前仅在Windows下试运行过

若需要查看程序的详细组成将bookManager.jar文件解压即可

2.操作说明

Windows操作系统下双击运行bookManager.exe文件
或者配置java环境后双击运行bookManager.jar文件(命令窗口运行也可以)

或者用编译器编译运行com.bookMangager.view包下的LogOnfrm.java文件。

3.前端与后台数据库连接用到的关键语句说明

首先引入openGauss的驱动包,使用sql包中的Connection类获取连接

五、系统主要功能界面介绍

登录界面

目前有两个管理员

用户名 密码
admin 123456
qian 12581

用户名和密码输入正确后会进入主界面

点击导航栏的菜单可以进行各种操作

点击具体的功能会进入相关的功能界面

更多详细操作请参看下一篇文章

六、实验结果总结

系统运行的效果基本符合预期的要求,对于图书、图书类别的添加和修改有这很多要求,比如图书名称及类别不能为空,不能够级联删除,书号不能超过5位等等。
界面的设计过于简陋,实现的功能也过于简单,因为设计的基本表只有3个,且表与表之间了联系很弱,所以对于功能也只能围绕其中两个表的增删改查来设计,没有着手与现实生活中较为复杂的情景来设计

编程工作总结

本次编程的学习和参考为B站上的教程视频
本次编程工作的首要任务是如何远程连接openGauss数据库,后查找资料后决定使用jdbc连接,引入openGauss的驱动包,并且注意到其连接格式与mysql有所不同,在种种错误都尝试后还是不能连接数据库,捣鼓了几天后终于发现云服务器中的openGauss数据库对应的端口号并没有开放…
数据库设计方面从简单的关系入手进行设计,但是发现openGauss数据库并不支持表格的属性自增这一功能,所以放弃了原本主键自增的设计
在如何呈现可视化界面的方面,由于自己决定使用java编写系统,所以决定使用java中的Swing工具包来实现系统的各个界面(虽然以后实际可能很少会用该工具包,但是眼下实现起来比较简单且快速,而且是个人第一次实现可视化较高的程序,还是有一定成就感的)。但是从头学习Swing也比较繁琐复杂,所以在eclipse中安装相关插件,可以实现对窗口、按钮、文本框的拖动来更加方便地设计界面。
sql语句的编写上,因为要实现多条件查询,所以我计划将各条件分开写成多个String,再组合成一个String传参,但是却忘了组合后各String之间要以空格分开,导致单个sql语句错误,这个错误找了挺久的。
其实在完成该系统的实现之前,自己对java的熟悉程度并不是很高,因为真正的使用java编写程序的经验很少,但是此次过后,觉得自己对于java的编写熟悉程度,对于面向对象的思想理解和运用有了很大的提升,本次实验对于自己的帮助很大,有确确实实感觉到自己有学到一些东西。