数据库应用系统的开发
初步掌握数据库应用系统分析设计的基本方法;进一步提高分析与解决问题的综合能力;初步掌握数据库建模工具的使用方法
实验环境
数据库使用云服务器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
的编写熟悉程度,对于面向对象的思想理解和运用有了很大的提升,本次实验对于自己的帮助很大,有确确实实感觉到自己有学到一些东西。