基于JavaSwing+MySQL的清朝古代名人数据管理系统设计

本文主要是介绍基于JavaSwing+MySQL的清朝古代名人数据管理系统设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目 录
摘 要 II
Abstract III
第一章 课题背景 1
1.1课题介绍 1
1.2工具介绍 1
1.3章节安排 2
第二章 设计简介及设计方案论述 3
2.1需求分析 3
2.2概要设计 3
第三章 详细设计 6
3.1逻辑设计 6
3.2物理设计 7
第四章 设计结果及分析 12
4.1功能测试 12
4.2结果分析 18
总 结 19
致 谢 20
参考文献 21
附录 主要程序代码 22
第二章 设计简介及设计方案论述
整个应用系统的设计严格按照数据库设计的方法来进行,包括数据库的设计和应用程序的设计,两部分相辅相成[9]。数据库设计过程包含以下步骤:需求分析:系统的目的、用户需求、功能流程图;概念结构设计:用 E-R 图来描述实体及实体间的联系;逻辑结构设计:确定关系模式,各种约束的声明,同时给出系统的功能模块组成图,系统各模块功能;物理结构设计。数据库的实施阶段:数据库用 SQL SERVER 等创建,前端开发使用 JAVA 实现。
2.1需求分析
所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说需求分析是做系统之前必做的。需求分析是软件工程中的一个关键过程[10]。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后,设计者才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能。
2.1.1用户需求
在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。这里把系统划分为了三个模块:登录模块,管理员模块,用户模块。模块分别能够实现以下功能:
(1)登录模块,实现登录功能, 注册功能。
(2)管理员模块,实现管理员对名人的增删改减功能。
(3)读者模块,实现用户查询功能。
2.1.2系统目标
根据需求分析及用户的沟通,该系统应达到以下目标:
(1)界面设计友好,美观。
(2) 数据存储安全,可靠。
(3) 信息分类清晰,准确。
(4)强大的查询功能,保证数据查询的灵活性。
(5)操作简单易用,界面清晰大方。
(6)系统安全稳定。
(7)开发技术先进,功能完备,扩展性强。
(8)占用资源少,对硬件要求低。
(9)提供灵活,方便的权限设置功能,使整个系统的管理分工明确。
2.2概要设计
数据库系统主要使用面向对象的分析方法,采用 JAVA、SQL 语句来详尽地描述清朝历代皇帝和名人的详细资料,名人数据库管理系统可以分为两个大型模块:用户登录和管理员登录[11]。
用户登录是名人数据库系统中的一个重要部分,它虽然不能像管理员一样对数据库进行更新操作,但是管理员的存在也正是服务于用户,管理员的操作能够让用户查询到相对准确的信息,同时也提高了用户查询的效率。同时给予用户查询功能可以防止一些不良用户对系统的恶意使用,进而保证了系统的安全性[12]。
Swing 程序表示JAVA 的客户端窗体程序,除了通过手动编写代码的方式设计 Swing 程序之外,Eclipse 中还提供了一种Window Builder 工具,该工具是一种非常好用的Swing可视化开发工具,有了它,开发人员就可以通过拖放组件的方式编写 Swing 程序了。
当名人、皇帝的资料表导入 MYSQL 之后,需要在 Eclipse 中做出几个必要的界面: 登录界面和增加、删除、查询、修改界面,同时也需要必须的管理员选择界面。在界面中设计采用 Window Builder 插件,进而在后台自动生成代码。
数据库管理系统是在管理员对系统进行更新操作之后,数据库内的数据随之发生改变。登录操作已经完成,本文转载自http://www.biyezuopin.vip/onews.asp?id=15279其中包括用户登录与管理员登录。两种身份登陆之后出现的界面是不同的,用户登录成功之后只能进入查询界面,而管理员登录之后进入一个选择界面,可以自主选择增加、删除、查询、修改操作。
登录操作已经完成,其中包括用户登录与管理员登录。两种身份登陆之后出现的界面是不同的,用户登录成功之后只能进入查询界面,而管理员登录之后进入一个选择界面,可以自主选择增加、删除、查询、修改操作。
在管理员登录成功之后,进入一个选择界面,在这个界面中包含增删查改四个功能。在添加界面中,必须先输入人物的名字,并在文字提示框后输入相应的内容,进而通过系统将输入的信息录入数据库。
增加、删除、修改三个操作中,无论其中哪一种进行操作,数据库中的数据也需要发生相应改变,这一点可以在基本实现系统中进行操作,操作完成之后打开 MYSQL 的表进行验证。
管理员登录的数据需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询上,这就要求数据库结构能充分满足各种信息的输出和输入。

package com.view;import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;import com.dao.CelebrityDao;
import com.dao.EmperorDao;
import com.model.Celebrity;
import com.model.Emperor;
import com.mysql.jdbc.Connection;
import com.util.DbUtil;import javax.swing.JTextField;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class Main extends JFrame {private JPanel contentPane;private JTextField textField_emperortext;private JTextField textField_Celebrity;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {Main frame = new Main();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public Main() {setTitle("\u4E3B\u9875\u9762");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 427, 231);setBak(); //调用背景方法Container c = getContentPane(); //获取JFrame面板JPanel contentPane = new JPanel(); //创建个JPanelcontentPane.setOpaque(false); //把JPanel设置为透明 这样就不会遮住后面的背景 这样你就能在JPanel随意加组件了c.add(contentPane);contentPane.setLayout(null);setSize(396, 253);setTitle("\u6E05\u671D\u540D\u4EBA\u7BA1\u7406\u7CFB\u7EDF");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//		contentPane = new JPanel();
//		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
//		setContentPane(contentPane);
//		contentPane.setLayout(null);textField_emperortext = new JTextField();textField_emperortext.setBounds(63, 54, 138, 24);contentPane.add(textField_emperortext);textField_emperortext.setColumns(10);JButton btnNewButton_emperor = new JButton("\u7687\u5E1D\u641C\u7D22");btnNewButton_emperor.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {emperorSearch();}});btnNewButton_emperor.setBounds(221, 51, 113, 27);contentPane.add(btnNewButton_emperor);textField_Celebrity = new JTextField();textField_Celebrity.setBounds(63, 115, 138, 24);contentPane.add(textField_Celebrity);textField_Celebrity.setColumns(10);JButton btnNewButton_Celebrity = new JButton("\u540D\u4EBA\u641C\u7D22");btnNewButton_Celebrity.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {celebritySearch();}});btnNewButton_Celebrity.setBounds(221, 114, 113, 27);contentPane.add(btnNewButton_Celebrity);JButton btnNewButton = new JButton("\u8FD4\u56DE");btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {dispose();new Login().setVisible(true);}});btnNewButton.setBounds(301, 11, 63, 27);contentPane.add(btnNewButton);}/** 添加背景*/public void setBak(){((JPanel)this.getContentPane()).setOpaque(false);ImageIcon img = new ImageIcon("src\\pic\\bg\\main.jpg"); //添加图片JLabel background = new JLabel(img);this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));background.setBounds(0,0, img.getIconWidth(), img.getIconHeight()); }/** 皇帝搜索*/protected void emperorSearch() {String searchword = this.textField_emperortext.getText();//获取搜索框输入的文字Connection con = null;try {con = DbUtil.getCon();Emperor emperor1 = EmperorDao.FindEByAll(con, searchword);if(emperor1!=null) {dispose();new Emperor_show().setVisible(true);}else {JOptionPane.showMessageDialog(null,"不存在该人物!");}}catch(Exception e1){e1.printStackTrace();}}/** 名人搜索*/protected void celebritySearch() {String searchword = this.textField_Celebrity.getText();//获取搜索框输入的文字Connection con = null;try {con = DbUtil.getCon();Celebrity celebrity1 = CelebrityDao.FindEByAll(con, searchword);System.out.println("返回值"+celebrity1);if(celebrity1!=null) {dispose();new Celebrity_show().setVisible(true);}else {JOptionPane.showMessageDialog(null,"不存在该人物!");}}catch(Exception e1){e1.printStackTrace();}}}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这篇关于基于JavaSwing+MySQL的清朝古代名人数据管理系统设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/160154

相关文章

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

MySQL数据库约束深入详解

《MySQL数据库约束深入详解》:本文主要介绍MySQL数据库约束,在MySQL数据库中,约束是用来限制进入表中的数据类型的一种技术,通过使用约束,可以确保数据的准确性、完整性和可靠性,需要的朋友... 目录一、数据库约束的概念二、约束类型三、NOT NULL 非空约束四、DEFAULT 默认值约束五、UN

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的