JavaSwing+MySQL的小区物业管理系统

news2024/11/26 14:42:00

点击以下链接获取源码:
https://download.csdn.net/download/qq_64505944/88071096
在这里插入图片描述

JDK1.8、MySQL5.7
《数据库原理课程设计》课程设计任务书
题 目: 小区物业管理系统
学生姓名: xxxxxx 班 级: xx 级软件工程 x 班
学 号: 66666666 指导教师: ---------------
一、 设计目的
本设计任务以培养学生需求分析、数据库设计过程和软件编码能力为基础,
强调技能训练,突出实践性。通过该题目的分析和设计,综合应用所学知识,使
学生掌握数据库设计和软件设计架构,全面培养数据库设计过程中的需求分析、
概念模型设计、逻辑模型设计、编码、测试及文档规范书写的能力,得到数据库
设计的综合训练,提高解决实际问题的能力。
二、 设计内容
该设计要求学生以某小区物业管理为背景,设计并开发小区物业管理系统。
1.系统功能的基本要求
(1) 员工信息维护;
(2) 业主信息维护;
(3) 停车信息维护;
(4) 业主投诉信息维护;
(5) 设备维修信息维护;
(6) 值班员工信息维护。
2.数据库要求(在数据库中至少应该包含下列数据表)
(1) 员工基本信息表;
(2) 业主基本信息表;
(3) 车位基本信息表;
(4) 值班信息表。
三、 设计要求及工作量
1.查阅近 5 年文献资料,一般在 10 篇以上;
2.以要求业务背景为基础,通过调研、分析现有的管理模式和已有的管理软件,
建立系统模型;
3.完成软件结构设计、数据库设计和算法设计;
4.完成软件开发和测试工作;
5.撰写设计说明书;
6.做好答辩工作。
四、 要提交的成果

  1. 课程设计说明书(1 份)
    A4 打印稿,正文部分要求不少于 20 页,中文为宋体,英文为 Time New
    Roman。正文及目录格式参考(毕业设计论文格式要求)正文包括以下内容。
    (1) 摘要
    (2) 章节目录
    (3) 系统概述
    (4) 需求分析
    (5) 系统设计
    (6) 系统实现
    (7) 系统测试
    (8) 总结、参考文献、致谢
  2. 光盘(1 张)
    把完成的所有电子文档(设计说明书文档、打包后可运行程序及源程序)一
    并交由指导老师处。为了统一,资料规范如下。
    (1)光盘名称为“学号+姓名”,如:------------xxxxxxxx。
    (2)光盘根目录下只包含一个文件夹,文件夹的命名为“学号+姓名”,该文
    件夹中包含 3 部分内容:源代码、数据库(sql 文件)和设计说明书。命名方式为
    XXX 系统_XXX。该文件夹中有:XXX 系统_源代码(文件夹)、XXX 系统_数据
    库和 XXX 系统_设计说明书。
    五、设计进度计划及时间安排
    序号 工作内容 时 间
    1 分组、选题、收集与整理资料 第一周,周 1-2
    2 数据库分析与设计 第一周,周 3-4
    3 用户界面设计及系统功能实现 第一周,周 5 到第二周,周 1
    4 软件测试 第二周,周 2-3
    5 撰写课程设计说明书 第二周,周 3-4
    6 答辩(以小组为单位) 第二周,周 5
    六、主要参考资料
    [1] 王珊, 萨师煊. 数据库系统概论(第 5 版)[J]. 中国大学教学, 2018
    [2] 张永奎. 数据库原理与设计[M].人民邮电出版社, 2019.
    [3] 万常选,廖国琼,吴京慧,刘喜平. 数据库系统原理与设计(第 3 版)[M].清
    华大学出版社.2017.
    [4] Abraham Silberschatz.数据库系统概念(第 7 版)[M]. 机械工业出版
    社.2021.
    [5] 蒙祖强,许嘉.数据库原理与应用(第 2 版)[M].清华大学出版社.2021.
    [6] 许春勤 .SQLServer 数据库项目实践教程[M].北京理工大学出版
    社.2017.
    [7] 刘中胜.SQLServer 数据库技术项目化教程[M].中国铁道出版社.2020.
    [8] 周蓉,何泓位.智慧物业管理系统设计方案研究[J].内江科技,2021.
    [9] 赵越超.基于 JavaEE 的小区物业管理系统设计与实现[J].物联网技
    术,2020.
    [10] 侯金彪.基于 JSP 的小区物业管理系统设计与实现[J].陇东学院学
    报,2020.
    摘要
    小区物业管理系统是典型的管理信息系统,其开发主要包括数据库的设计和
    应用程序对数据库的调用。经过实际的需求分析,结合管理信息系统开发的概念、
    结构及系统开发的基本原理和方法,设计开发了小区物业管理系统。
    随着我国经济的迅速发展,城镇化的推广普及和各种购房政策及福利制度的
    实施,住宅式小区已经成为了人们选择住处的首选。与此同时,小区的规模和数
    量也在不断地扩大和增大,小区住户信息的统计与管理便成了很大的问题。在海
    量的住户信息面前,利用计算机技术来解决海量数据的相关问题已是大势所趋。
    在此背景下,经数据调查,需求分析,系统设计和系统实现后,利用程序提供管
    理员对小区各项资源的管理,运用云服务器上的 作为后台数据库,设计并开发了
    功能完善,操作简便,界面美观,高效实用,可靠安全的小区物业管理系统。
    我们系统的实现是由 JAVA 语言编写的,本系统包含的四个界面分别是欢迎登
    录界面、菜单界面、业主信息管理界面、物主信息管理界面;借助 MySQL 来连接
    数据库,达到对系统信息的管理和操作,从而实现了小区物业管理系统。
    关键词:小区物业;管理系统;JAVA;MySQL
    目录
    1 绪论… 1
    2 系统概述… 2
    2.1 系统业务流程图… 2
    2.2 数据流图… 2
    2.3 系统功能模块… 3
    2.4 数据字典… 4
    3 需求分析… 5
    3.1 需求分析… 5
    4 概念结构设计… 6
    4.1 业主信息表 E-R 图… 6
    4.2 物业信息表 E-R 图… 6
    4.3 系统 E-R… 7
    5 逻辑结构设计… 8
    5.1 关系模式… 8
    5.2 表的设计… 8
    5.2.1 业主信息表… 8
    5.2.2 物业信息表… 8
    5.2.3 收费信息表… 9
    5.3 关系图… 9
    6 系统实现… 10
    6.1 业主信息管理子系统实现… 10
    6.2 物业信息管理子系统实现… 10
    6.3 收费信息管理子系统实现…11
    7 系统测试… 12
    7.1 常用的软件测试方法… 12
    7.1.1 白盒测试法… 12
    7.1.2 黑盒测试法… 12
    7.2 测试用例… 12
    7.2.1 业主信息管理子系统测试用… 13
    7.2.2 物业信息管理子系统测试用… 13
    7.2.3 收费信息管理子系统测试用… 13
    7.3 测试结果… 14
    7.3.1 登录界面… 14
    7.3.2 菜单界面… 15
    7.3.4 业主信息管理界面… 16
    7.3.5 物业信息管理界面… 17
    7.3.6 收费信息管理界面… 18
    8 软件使用说明书… 19
    8.1 系统环境… 19
    8.2 系统操作说明… 19
    总结… 20
    参考文献… 21
    致谢… 22
    附录… 23
    1 绪论
    随着人们生活水平的提高,小区物业提供的服务越来越多,同时项目也越来
    越丰富,包括诸如房屋维护、停车服务、垃圾处理等等,小区物业管理的信息化
    程度也不断提高。因此,开发一套高效率、无差错的小区物业管理系统软件十分
    必要。本设计将真实的物业管理进行简化,可以实现部分物业服务的分析和设计。
    本系统的主要目的是告别帐本,安全、快捷的保存数据信息。由于小区物业管理
    涉及到费用问题,为了增强系统的保密性,使业主利益不受损害,使业主能够对
    自家的物业费用和投诉等情况提供透明化、直观的了解。
    通过该题目的设计、开发,使学生初步得到数据库开发的训练,全面培养软
    件开发过程中的分析、设计、编码、测试及文档规范书写的能力,得到软件开发
    的综合训练,提高解决实际问题的能力。
    2 系统概述
    2.1 系统业务流程图

图 2-1 系统业务流程图
2.2 数据流图
数据流图由四种基本的元素构成:数据流(Data Flow)、处理(Process)、数据
存储和数据源(数据终点)。
数据流(Data Flow):为具有名称且有流向的数据,用标有名称的箭头表示,
一个数据可以是记录、组合项或基本项。
处理(Process):表示对数据所进行的加工和变换。指向处理的数据流为该处
理的输入数据,离开处理的数据为处理的输出数据。
数据存储:表示用文件方式或数据库形式所存储的数据,堆砌进行的存取分
别以指向或离开数据存储的箭头表示。
数据源及数据终点:表示数据的来源或数据的去向,可以是一个组织或人员,
它处于系统范围之外,所以又称它为外部实体,它是为了帮助理解系统界面而引
入的,一般只出现在数据流图的起点和终点。
:表示数据流 :表示变换数据的处理
:表示数据存储 : 表示数据的源点或终点

系统的数据流图如图 2-2 所示。
图 2-2 系统顶层数据流图
2.3 系统功能模块
系统功能模块图如图 2-3 所示。
图 2-3 系统功能模块图


退



小区物业管理系统
物业信息模块
















收费信息模块
















业主信息模块
















2.4 数据字典

业主信息表
别名:Owner
描述:记录业主的基本信息
定义:业主信息管理表=业主编号+姓名+房屋面积+房屋地址+联系电话
位置:数据库 XQWY dbo.Owner
物业信息表
别名:Property
描述:记录物业项目的基本信息
定义:物业信息管理表=项目名称+收费标准
位置:数据库 XQWY dbo.Property
收费信息表
别名:Charge
描述:记录收费信息
定义:物业信息管理表=收费编号+业主编号+项目名称+收费方式+应收
总额+已交金额+欠款金额+交费日期+办理人
位置:数据库 XQWY dbo.Charge
3 需求分析
3.1 需求分析
经过调研与可行性分析,出于对人们生活住房考虑,设计了这套小区物业管
理系统,本系统主要考虑到小区物业管理的普遍要求,小区物业管理系统主要包
括:
(1)对小区内业主的详细资料的管理,包括增、删、改、查询等功能的实现,
这些也是一个小区的基本资源,毕竟物业管理最后是针对小区的所有业主而言
的。
(2)在具有了所有的基本资料信息后,需要实现实质性的物业管理。主要的管
理业务包括:物业设备管理、仪表(水电、停车,电梯维修)数据管理、收费管
理、住户投诉管理、故障管理等。这些成为小区物业管理的主体。这样就可以便
于物业公司对小区进行全面的了解和管理了。
该管理系统所涉及的信息有:
业主信息。包括的数据项有:业主编号、姓名、房屋面积、房屋地址、联系
电话等;
收费信息。包括的数据项有:收费编号、住户姓名、物业地址、年份、月份、
收费项目、收费方式、应收总额、已交金额、欠款金额、交费日期、办理人等。
物业信息。包括的数据项有:项目名称(停车费、水电费、电梯维护费等),
收费标准
4 概念结构设计
该系统由业主和物业两个实体构成,通过业主在物业各个项目上的交费,产
生各项收费信息。
4.1 业主信息表 E-R 图
业主信息表的 E-R 图,如图 4-1 所示。
图 4-1 业主信息 E-R 图
4.2 物业信息表 E-R 图
物业信息表的 E-R 图,如图 4-2 所示:

图 4-2 物业信息 E-R 图
4.3 系统 E-R
系统 E-R 图如图 4-3 所示

图 4-3 小区物业管理系统的基本 E-R 图
5 逻辑结构设计
5.1 关系模式
根据转换规则和小区物业管理系统 E-R 图,可以得到小区物业管理的关系模
式如下:
业主(业主编号,姓名,房屋面积,房屋地址,联系电话)
物业(项目名称,收费标准)
收费信息(收费编号,业主编号,项目名称,收费方式,应收总额,已交金
额,欠款金额,交费日期,办理人)
5.2 表的设计
本系统采用 SQL Server 数据库。在系统中创建数据库 SSH_CRUDBASE,
数据库包含三张表,各表的详细设计如下:
5.2.1 业主信息表
表名:owner
表 5-1 业主信息表
5.2.2 物业信息表
表名:property
表 5-2 物业信息表
属性名 类型 允许为空 主/外键设置 描述
ONum char(30) No 主键 业主编号
OName char(20) Yes \ 姓名
PHouseArea char(20) Yes \ 房屋面积
OHouseAddress char(30) Yes \ 房屋地址
OTelephone char(30) Yes \ 联系电话
属性名 类型 允许为空 主/外键设置 描述
PName char(20) No 主键 项目名称
PStandard char(20) Yes \ 收费标准
5.2.3 收费信息表
表名:charge
表 5-3 收费信息表
5.3 数据关系图
图 5-1 小区业务管理系统各项数据关系图
属性名 类型 允许为空 主/外键设置 描述
ChargeNum char(20) Yes \ 收费编号
ONum char(20) No 外键 业主编号
PName char(20) No 外键 项目名称
Manner char(10) Yes \ 收费方式
YingShou char(20) Yes \ 应收总额
YiJiao char(20) Yes \ 已交金额
Debt char(20) Yes \ 欠款金额
Date char(20) Yes \ 交费日期
Transactor char(20) Yes \ 办理人
6 系统实现
6.1 业主信息管理子系统实现
业主信息管理子系统主要由业主的各种信息组成。
业主信息的管理操作包括业主信息的添加、删除、修改、查询、打印、退出
等操作。具体实现流程如下图所示:
图 6-1 业主信息管理子系统实现流程图
6.2 物业信息管理子系统实现
物业信息管理子系统主要由物业的各种信息组成。
物业信息的管理操作包括物业信息的添加、删除、修改、查询、打印、退出
操作。具体实现流程如下图所示:
图 6-2 物业信息管理子系统实现流程图
6.3 收费信息管理子系统实现
收费信息管理子系统主要由各种收费信息组成。
收费信息的管理操作包括收费信息的添加、删除、修改、查询、打印、退出
操作。具体实现流程如下图所示:
图 6-3 收费信息管理子系统实现流程
7 系统测试
7.1 常用的软件测试方法
7.1.1 白盒测试法
白盒测试(White Box Testing),又称结构测试或者逻辑驱动测试。
白盒测试是把测试对象看作一个打开的盒子。利用白盒测试法进行动态
测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功
能。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻
辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆
盖和路径覆盖。
白盒测试是知道产品内部工作过程,可通过测试来检测产品内部动作是
否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程
序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测
试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
白盒测试常用工具有:Jtest、VcSmith、Jcontract、C++ Test、CodeWizard、
logiscope。
7.1.2 黑盒测试法
黑盒测试(Black Box Testing),又称功能测试或者数据驱动测试。
黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内
部的运作原理,因此软件对用户来说就像一个黑盒子。
软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果
来发现软件存在的缺陷,而不关心程序具体如何实现的一种软件测试方法。
黑盒测试常用工具有:AutoRunner、winrunner。
本次系统测试方法采用的是黑盒测试法。
7.2 测试用例
测试用例的作用:是为了高效地发现软件缺陷而精心设计的少量测试数据,
可以预防或减少潜在错误的发生。
7.2.1 业主信息管理子系统测试用
业主信息管理子系统测试用例如下表所示:
表 7-1 业主信息管理子系统测试用例表
业主编号 姓名 房屋面积 房屋地址 联系电话
1 赵吉龙 1200 甘肃 1234567890
2 张玫瑰 120 甘肃 2147483647
3 赵新宇 120 甘肃 2147483647
4 小赵 130 402 2147483647
5 小陈 130 402 2147483647
7.2.2 物业信息管理子系统测试用
物业信息管理子系统测试用例如下表所示:
表 7-2 物业信息管理子系统测试用例表
物业名称 收费标准
水费 8
电费 5
物业费 2300
暖气费 2500
停车费 450
7.2.3 收费信息管理子系统测试用
收费信息管理子系统测试用例如下表所示:
表 7-3 收费信息管理子系统测试用例表
收费
编号
业主
编号 项目信

收费方

应交
总额
已交
金额
欠款
金额 交费日期 办理人
1 1 水费 微信 1200 1200 0 2021-12-12 赵
2 2 电费 银行卡 1100 1100 0 2021-12-13 张
3 3 停车费 网银 1300 1300 0 2021-12-15 赵
4 5 水费 微信 1400 1300 100 2021-12-13 程
5 6 业务费 现金 1000 800 200 2021-12-01 哈
7.3 测试结果
7.3.1 登录界面
在 myeclipse 软件中运行程序,打开系统的登陆界面,如图 7-1 所示。
在这里插入图片描述

图 7-1 登录界面运行图
输入用户名 zjlong18、密码 19740149,显示登陆成功,如图 7-2 所示。
在这里插入图片描述

图 7-2 登录成功界面运行图

当输入用户名和密码错误时,显示输入用户或密码错误,如图 7-3 所示。
在这里插入图片描述

图 7-3 登录失败界面运行图
7.3.2 菜单界面
登录成功之后进入菜单页面,进行信息的管理,如图 7-4 所示。
在这里插入图片描述

图 7-4 菜单界面运行图
7.3.4 业主信息管理界面
点击业主信息管理,弹出与数据库连接好的表,对业主信息进行查询、修改、
在这里插入图片描述

删除等操作,如图 7-5 所示。
图 7-5 业主信息管理界面运行图
对业主进行添加的操作,操作完毕显示添加成功,如图 7-6 所示。
图 7-6 业主信息添加成功运行图
对业主进行删除的操作,操作完毕显示添加成功,如图 7-7 所示。
图 7-6 业主信息删除成功运行图
对业主进行删除的操作,操作完毕显示添加成功,如图 7-7 所示。
图 7-6 业主信息修改成功运行图
7.3.5 物业信息管理界面
返回菜单界面,继续点击物业信息管理界面,弹出该窗口,与业主信息管理
类似,可对物业信息管理进行查询、删除、添加、修改等操作,如图 7-7 所示。

图 7-7 物业信息管理界面运行图
7.3.6 收费信息管理界面
返回菜单界面,继续点击收费信息管理界面,弹出该窗口,与业主信息管理
类似,可对收费信息管理进行查询、删除、添加、修改等操作,如图 7-8 所示。

图 7-8 收费信息管理界面运行图
8 软件使用说明书
8.1 系统环境
(1)硬件环境:基本硬件设施完整的计算机即可。
(2)软件环境:Windows系列操作系统;装有Java编程系统与运行环境;myeclips
2017 版本或以上;MySQL5.5 版本或以上。
8.2 系统操作说明
(1)启动程序,进入欢迎界面,点击进入系统,进入登陆界面。
(2)在登录界面输入用户名和密码,点击登录,进入菜单界面。
用户名:zjlong18
密码:19740149
(3)选择操作,进入相应的信息管理界面。
(4)信息管理操作:
添加信息时,在下方输入框里输入相应的信息,点击上方“添加信息”
按钮,即可成功添加想要添加的信息。
修改信息时,只需要在下方对应位置输入想要操作的编号信息,然后在
后方对应输入想要修改的新信息,点击“修改信息”按钮,即可成功修改原
来的信息。
删除信息时,在最后一个输入框里输入想要删除的编号信息,点击上方
“删除信息”按钮,即可成功删除想要删除的信息。
查询信息时,在最后一个输入框里输入想要查询的编号信息,点击上方
“查询信息”按钮,即可成功查询想要查询的信息。特别要说明的是,费用
信息的查询支持按收费编号查询和按业主编号查询两种查询方式,按业主编
号查询可以查询到该业主所有的交费信息。
(5) 信息操作完成后,点击窗口上方的返回按钮,即可再次返回菜单,选择继
续操作信息或返回主界面。
(6) 选择主界面,即可返回到欢迎界面,返回到欢迎界面后,可以选择进入系
统重新登陆,或选择退出系统。
选择退出系统,即可关闭系统所有窗口,系统运行
总结
通过这次课程设计使我熟悉了系统设计的整体步骤。系统设计大体可分为需
求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。
其中,让我感触最深的是需求分析阶段,在这个阶段,必须对所要设计的系统有
总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的
调查,不能凭想象或自己的了解,这样会在后续的工作中遇到很多的问题。
这次课程设计加深了我对数据库系统概论相关知识和 MySQL 相关功能的理
解。例如对建立基本表、视图、索引、存储过程、触发器等,都比以前更加的熟
练。并在解决遇到的各种问题的过程中,学到了很多新的知识。比如在导入、导
出数据时,由于外键约束的存在,经常会出现错误,这就要注意各个表导入的顺
序问题。一般是先导入主键表,后导入外键表,这样可以避免很多的错误。
我进一步掌握了相关的 SQL 语句方面的知识。不但纠正了以前的错误认识和
理解,而且学会了建立存储过程和触发器。通过查阅资料,我还明白了存储过程
是编译后放在服务器端的程序,它可以被别的模块调用,且不需要重新编译,这
样就大大减轻了客户端的负担,且有效的提高了系统执行的效率。
参考文献
[1] 王珊, 萨师煊. 数据库系统概论(第 5 版)[J]. 中国大学教学, 2018
[2] 张永奎. 数据库原理与设计[M].人民邮电出版社, 2019.
[3] 万常选,廖国琼,吴京慧,刘喜平. 数据库系统原理与设计(第3版)[M].清华大学出
版社.2017.
[4] Abraham Silberschatz.数据库系统概念(第 7 版)[M]. 机械工业出版社.2021.
[5] 蒙祖强,许嘉.数据库原理与应用(第 2 版)[M].清华大学出版社.2021.
[6] 许春勤 .SQLServer 数据库项目实践教程[M].北京理工大学出版社.2017.
[7] 刘中胜.SQLServer 数据库技术项目化教程[M].中国铁道出版社.2020.
[8] 周蓉,何泓位.智慧物业管理系统设计方案研究[J].内江科技,2021.
[9] 赵越超.基于 JavaEE 的小区物业管理系统设计与实现[J].物联网技术,2020.
[10] 侯金彪.基于 JSP 的小区物业管理系统设计与实现[J].陇东学院学报,2020.
[11]王志辉.浅析计算机软件 JAVA 编程的特点及应用[J].软件,2020,41(1):266-269.
[12] 胡正雨,刘文锐.计算机软件 JAVA 编程优势及其应用研究[J].计算机产品与流
通,2020(6):28.
[13] 程灿.计算机软件 Java 编程及应用分析[J].电脑编程技巧与维护,2020(7):16-18.
[14] 胡其荣.计算机软件 Java 编程特点及其技术思考探析[J].电脑编程技巧与维
护,2019(6):43-44,80
[15] 曹文渊.JAVA 语言在计算机软件开发中的应用[J].电子技术与软件工
程,2019(2):53-54.
致谢
感谢我的很多同学,在我在编程中、在调试程序中遇见很多挫折时,遇见不
懂的问题时,是他们给了我帮助,使我不至于卡在某一环节处,毫无进展。感谢
教授我数据库课程的老师们,没有他们的教导就没有今天的这个课程设计,是他
们让我从以前对数据库知识一无所知到现在能完成一个小型软件的设计的转变。
最后,要感谢的是我的指导老师们,他们对我认真而负责的态度感染着我,
使我认识到自己的薄弱处,和对知识的掌握不够,还是不够灵活,努力让自己以
后加强这方面的理论知识,培养良好的编程习惯和兴趣,更让我知道做一个软件
不是一蹴而就的,是要下苦工夫的,是要用心去做的,这样才能做出一个令大家
令自己满意的软件。
附录
import java.awt.;
import java.awt.event.
;
import java.sql.;
import javax.swing.
;
//主函数。
public class XQWY{
public static void main(String []args){
new HFrame();
}
}
//欢迎界面。
class HFrame extends Frame{
HFrame(){
JFrame f=new JFrame(“欢迎界面”);
JPanel p=new JPanel();
JLabel l=new JLabel(“欢迎进入小区物业管理系统”);
JPanel p3=new JPanel();
JLabel l3=new JLabel(“登录名:”);
JPanel p5=new JPanel();
JTextField f3=new JTextField(20);
JPanel p4=new JPanel();
JLabel l4=new JLabel(“密码 :”);
JPanel p6=new JPanel();
JTextField f4=new JTextField(20);
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JButton b1=new JButton(" 进入系统 “);
JButton b2=new JButton(” 退出系统 “);
f.add§;
f.add(p3);
f.add(p5);
f.add(p4);
f.add(p6);
f.add(p1);
f.add(p2);
p.add(l);
p3.add(l3);
p5.add(f3);
p4.add(l4);
p6.add(f4);
p1.add(b1);
p2.add(b2);
f.setVisible(true);
f.pack();
f.setLayout(new GridLayout(7,1));
f.setBounds(200,200,500,500);
b1.addActionListener((e)->{
f.setVisible(false);
ZFrame of=new ZFrame();
});
b2.addActionListener(new TuiChu());
}
}
//退出。
class TuiChu implements ActionListener{
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
f.setLayout(new GridLayout(4,1));
f.setBounds(200,200,500,500);
b1.addActionListener((e)->{
f.setVisible(false);
OFrame of=new OFrame();
});
b2.addActionListener((e)->{
f.setVisible(false);
PFrame of=new PFrame();
});
b3.addActionListener((e)->{
f.setVisible(false);
CFrame of=new CFrame();
});
b4.addActionListener((e)->{
f.setVisible(false);
HFrame of=new HFrame();
});
}
}
//退出
b6.addActionListener((e)->{
f.setVisible(false);
ZFrame of=new ZFrame();
});
//统计
b7.addActionListener((e)->{
Frame CHAFrame=new Frame(“统计结果”);
JPanel jp=new JPanel();
TextArea Cshow = new TextArea(“收费次数”+‘\n’,100,30);
JScrollPane js = new JScrollPane(Cshow);
js.setBounds(150,150,600,200);
jp.add(js);
CHAFrame.add(jp);
CHAFrame.setBounds(200,100,300,350);
CHAFrame.setVisible(true);
try{
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
System.out.println(“成功加载 SQL 驱动!”);
}catch(ClassNotFoundException e1){
System.out.println(“找不到 SQL 驱动!”);
e1.printStackTrace();
}
try {
Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
PreparedStatement ps = null;
conn =
DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;databaseName=” +
“XQWY”, “sa”,“123456”);
stmt = conn.createStatement();
System.out.print(“成功连接到数据库!”);
System.out.println();
String sql = “select count(ChargeNum) as result from Charge;”;
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
int count=0;
while(rs.next()){
count = rs.getInt(1);
}
String s1=null;
s1=”“+count;
Cshow.append(s1+‘\n’);
System.out.println(count);
rs.close();
stmt.close();
conn.close();
}catch(Exception ex)
{
ex.printStackTrace();
}
});
}
}
//物业信息。 查询
class PFrame extends Frame{
PFrame(){
JFrame f=new JFrame(“物业信息”);
JPanel p1=new JPanel(new GridLayout(1,2));
JLabel l1=new JLabel(“项目名称:”);
JTextField f1=new JTextField(15);
JPanel p2=new JPanel(new GridLayout(1,2));
JLabel l2=new JLabel(“收费标准:”);
JTextField f2=new JTextField(15);
JPanel p4=new JPanel();
JButton b1=new JButton(” 录入 “);
JPanel p5=new JPanel();
JButton b2=new JButton(” 查询 “);
JPanel p6=new JPanel();
JButton b3=new JButton(” 修改 “);
JPanel p7=new JPanel();
JButton b4=new JButton(” 删除 “);
JPanel p8=new JPanel();
JButton b5=new JButton(” 打印 “);
JPanel p9=new JPanel();
JButton b6=new JButton(” 退出 “);
JPanel p10=new JPanel();
JButton b7=new JButton(” 统计 “);
f.add(p1);
f.add(p2);
f.add(p4);
f.add(p5);
f.add(p6);
f.add(p7);
f.add(p8);
f.add(p9);
f.add(p10);
p1.add(l1);
p1.add(f1);
p2.add(l2);
p2.add(f2);
p4.add(b1);
p5.add(b2);
p6.add(b3);
p7.add(b4);
p8.add(b5);
p9.add(b6);
p10.add(b7);
f.setVisible(true);
f.pack();
f.setLayout(new GridLayout(10,1));
f.setBounds(200,200,500,500);
//物业录入。
b1.addActionListener((e)->{
Connection conn = null;
Statement stmt = null;
ResultSet rs=null;
String insertsql2 = “INSERT INTO
Property(PName,PStandard)VALUES('”+f1.getText()+”‘,’“+f2.getText()+”');";
try{
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
conn=DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;databaseNam
e=” + “XQWY”, “sa”,“123456”);
stmt=conn.createStatement();
if(f1.getText()==null||f2.getText()==null)
{
JOptionPane.showMessageDialog(null,“请输入内容”,“错
误”,JOptionPane.ERROR_MESSAGE);

}else{
stmt.executeUpdate(insertsql2);
f1.setText(“”);
f2.setText(“”);
JOptionPane.showMessageDialog(null," 保 存 成 功 “,” 提 示
“,JOptionPane.INFORMATION_MESSAGE);
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{
if(rs !=null) rs.close();
if(stmt !=null) stmt.close();
if(conn !=null) conn.close();
} catch(Exception ex){
ex.printStackTrace();
}
}
});
//物业查询按照收费标准。
b2.addActionListener((e)->{
Frame CHAFrame=new Frame(“查询结果”);
JPanel jp=new JPanel();
TextArea Cshow = new
TextArea(“PName”+”\t"+“PStandard”+‘\n’,100,30);
JScrollPane js = new JScrollPane(Cshow);
js.setBounds(50,150,600,200);
jp.add(js);
CHAFrame.add(jp);
CHAFrame.setBounds(200,100,600,650);
CHAFrame.setVisible(true);
String s1 = null;
String s2 = null;
try{
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
System.out.println(“成功加载 SQL 驱动!”);
}catch(ClassNotFoundException e1){
System.out.println(“找不到 SQL 驱动!”);
e1.printStackTrace();
}
try {
Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
PreparedStatement ps = null;
conn =
DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;databaseName=” +
“XQWY”, “sa”,“123456”);
stmt = conn.createStatement();
System.out.print(“成功连接到数据库!”);
System.out.println();
String t1 = (f2.getText().trim());
String sql = “select * from Property where PStandard =
'”+f2.getText()+“';”;
if (t1.equals(“”))
JOptionPane.showMessageDialog(null, “请输入查询信息!”, “提示
“, JOptionPane.WARNING_MESSAGE);
else {
ps = conn.prepareStatement(sql);
//ps.setString(1,t1);
rs = ps.executeQuery();
while(rs.next()){
s1=rs.getString(“PName”);
s2=rs.getString(“PStandard”);
if ( s2null)
JOptionPane.showMessageDialog(null, “该数据不存在!”, “提示”,
JOptionPane.WARNING_MESSAGE);
else{
System.out.println(s1);
Cshow.append(s1+‘\t’+s2+‘\n’);
}
}
}
rs.close();
stmt.close();
conn.close();
}catch(Exception ex)
{
ex.printStackTrace();
}
});
//物业修改按照项目名称
b3.addActionListener((e)->{
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String updateSql1 = “UPDATE Property SET
PName='”+f1.getText()+“‘,PStandard=’”+f2.getText()+“’ WHERE
PName='”+f1.getText()+“'”;
try{
Class.forName("com.mysql .jdbc.mysql ");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3333;databaseName=
" + “XQWY”, “root”,“root”);
stmt=conn.createStatement();
int count=stmt.executeUpdate(updateSql1);
if(count
1){
f1.setText(””);
f2.setText(“”);
JOptionPane.showMessageDialog(null," 保 存 成 功 “,” 提 示
“,JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,” 内 容 错 误 “,” 错 误
“,JOptionPane.ERROR_MESSAGE);
}catch(Exception ex)
{
ex.printStackTrace();
JOptionPane.showMessageDialog(null,” 请 输 入 内 容 “,” 错 误
“,JOptionPane.ERROR_MESSAGE);
} finally
{
try{
if(rs !=null) rs.close();
if(stmt !=null) stmt.close();
if(conn !=null) conn.close();
} catch(Exception ex){
ex.printStackTrace();
}
}
});
//物业删除项目名称
b4.addActionListener((e)->{
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String deleteSql=“DELETE FROM Property WHERE
PStandard='”+f2.getText()+”‘;";
try{
Class.forName("com.mysql .jdbc.mysql ");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3333;databaseName=
" + “XQWY”, “root”,“root”);
stmt=conn.createStatement();
int count=stmt.executeUpdate("DELETE FROM Property WHERE
PStandard=’“+f2.getText()+”‘");
if(count1){
JOptionPane.showMessageDialog(null," 保 存 成 功 “,” 提 示
“,JOptionPane.INFORMATION_MESSAGE);
f1.setText(”“);
}
else{
JOptionPane.showMessageDialog(null,” 内 容 错 误 “,” 错 误
“,JOptionPane.ERROR_MESSAGE);
}
}catch(Exception ex){
JOptionPane.showMessageDialog(null,” 内 容 错 误 “,” 错 误
“,JOptionPane.ERROR_MESSAGE);
ex.printStackTrace();
}finally{
try{
if(rs !=null) rs.close();
if(stmt !=null) stmt.close();
if(conn !=null) conn.close();
} catch(Exception ex){
ex.printStackTrace();
}
}
});
//物业打印
b5.addActionListener((e)->{
Frame CHAFrame=new Frame(“统计结果”);
JPanel jp=new JPanel();
TextArea Cshow = new
TextArea(“PName”+”\t"+“PStandard”+‘\n’,100,30);
JScrollPane js = new JScrollPane(Cshow);
js.setBounds(50,150,600,200);
jp.add(js);
CHAFrame.add(jp);
CHAFrame.setBounds(200,100,600,650);
CHAFrame.setVisible(true);
String s1 = null;
String s2 = null;
try{
Class.forName("com.mysql .jdbc.mysql ");
System.out.println(“成功加载 SQL 驱动!”);
}catch(ClassNotFoundException e1){
System.out.println(“找不到 SQL 驱动!”);
e1.printStackTrace();
}
try {
Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
PreparedStatement ps = null;
conn =
DriverManager.getConnection(“jdbc:mysql://localhost:3333;databaseName=” +
“XQWY”, “root”,“root”);
stmt = conn.createStatement();
System.out.print(“成功连接到数据库!”);
System.out.println();
String sql = “select * from Property ;”;
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
s1=rs.getString(“PName”);
s2=rs.getString(“PStandard”)
if ( s1
null)
JOptionPane.showMessageDialog(null, “该数据不存在!”, “提示”,
JOptionPane.WARNING_MESSAGE);
else{
System.out.println(s1);
Cshow.append(s1+’\t’+s2+‘\n’);
}
}
rs.close();
stmt.close();
conn.close();
}catch(Exception ex)
{
ex.printStackTrace();
}
});
//物业退出
b6.addActionListener((e)->{
f.setVisible(false);
ZFrame of=new ZFrame();
});
//统计
b7.addActionListener((e)->{
Frame CHAFrame=new Frame(“统计结果”);
JPanel jp=new JPanel();
TextArea Cshow = new TextArea(“物业项目总数”+‘\n’,100,30);
JScrollPane js = new JScrollPane(Cshow);
js.setBounds(150,150,600,200);
jp.add(js);
CHAFrame.add(jp);
CHAFrame.setBounds(200,100,300,350);
CHAFrame.setVisible(true);
try{
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
System.out.println(“成功加载 SQL 驱动!”);
}catch(ClassNotFoundException e1){
System.out.println(“找不到 SQL 驱动!”);
e1.printStackTrace();
}
try {
Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
PreparedStatement ps = null;
conn =
DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;databaseName=” +
“XQWY”, “sa”,“123456”);
stmt = conn.createStatement();
System.out.print(“成功连接到数据库!”);
System.out.println();
String sql = “select count(PName) as result from Property;”;
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
int count=0;
while(rs.next()){
count = rs.getInt(1);
}
String s1=null;
s1=“”+count;
Cshow.append(s1+‘\n’);
System.out.println(count);
rs.close();
stmt.close();
conn.close();
}catch(Exception ex)
{
ex.printStackTrace();
}
});
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚继承是如何解决二义性和数据的冗余的

我们知道面向对象的三大特性分别为封装,继承,多态。在继承中,我们知道一个类可以继承另一个类,这样的关系被叫做子类(派生类)继承父类(基类),并且子类可以使用到父类的接口。但是在C中还被设计了…

ElasticSearch学习--数据聚合

介绍 数据聚合可以帮助我们对海量的数据进行统计分析,如果结合kibana,我们还能形成可视化的图形报表。自动补全可以根据用户输入的部分关键字去自动补全和提示。数据同步可以帮助我们解决es和mysql的数据一致性问题。集群可以帮助我们了解结构和不同节点…

Pytorch个人学习记录总结 08

目录 神经网络-搭建小实战和Sequential的使用 版本1——未用Sequential 版本2——用Sequential 神经网络-搭建小实战和Sequential的使用 torch.nn.Sequential的官方文档地址,模块将按照它们在构造函数中传递的顺序添加。代码实现的是下图: 版本1—…

BeanFactory容器的构建和使用示例

BeanFactory容器的实现流程: BeanFactory是Spring框架中的一部分,它提供了IoC(控制反转)的实现机制。下面是BeanFactory的IoC实现过程: 定义Bean定义:首先,我们需要在配置文件中定义Bean的定义…

[数据结构]顺序表和ArrayList

顺序表的介绍 在了解顺序表之前先了解一下什么叫做线性表: 线性表(linear list):是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。 常见的线性表:顺序表、链表、栈、队列… 线性…

数学建模入门-如何从0开始,掌握数学建模的基本技能

一、前言 本文主要面向没有了解过数学建模的同学,帮助同学们如何快速地进行数学建模的入门并且尽快地在各类赛事中获奖,或者写出优秀的数学建模论文。 在本文中,我将从什么是数学建模、数学建模的应用领域、数学建模的基本步骤、数学建模的技…

两天学会用Webpack打包前端代码-day01

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 什么是 Webpack? 使用 Webpack 体验webpack打包过程 修改 Webpack 打包入口和出口 入口 出…

[JAVAee]线程安全

目录 线程安全的理解 线程不安全的原因 ①非原子性 ②可见性 ③代码重排序 体会何为不安全的线程 保证线程安全 一个代码在多线程的环境下就很容易出现错误. 线程安全的理解 线程安全是什么呢?通俗的来讲,线程安全就是在多线程的环境下,代码的结果是符合我们预期的,就…

R语言-数据分析及建模(第1节)分类与预测问题简介

小伙伴们,今天我们学习R语言-数据分析及建模(第1节)分类与预测问题简介 01-分类与预测问题简介 ◆分类和预测是预测问题的两种主要类型,分类主要是预测分类标号(离散属性) ,而预测主要是建立连续…

Windows11的VS201x编译OpenCV+Contrib+CUDA

(1) CUDA下载,注意要和cudnn版本号相关。 我安装的是cuda11.0,注意VS2015不能编译CUDA11,所以用VS2015的话需要下载CUDA 10。因为更高的版本目前还没有cudnn。 (2) 下载和安装VS2015。 (3) 下载和解压CMake。 CMake地址: Releases Kitw…

性能测试Ⅱ(压力测试与负载测试详解)

协议 性能理论:并发编程 ,系统调度,调度算法 监控 压力测试与负载测试的区别是什么? 负载测试 在被测系统上持续不断的增加压力,直到性能指标(响应时间等)超过预定指标或者某种资源(CPU&内存)使用已达到饱和状…

每天五分钟机器学习:多项式非线性回归模型

本文重点 在前面的课程中,我们学习了线性回归模型和非线性回归模型的区别和联系。多项式非线性回归模型是一种用于拟合非线性数据的回归模型。与线性回归模型不同,多项式非线性回归模型可以通过增加多项式的次数来适应更复杂的数据模式。在本文中,我们将介绍多项式非线性回…

[SpringMVC]仿写SpringMVC(注解开发)

文章目录 前提:1、代码结构2、核心:YhzMVC3、初始化步骤是:4、执行 前提: 当前版本无接受网络请求功能,不喜勿喷🙏🙏 本文将对代码核心进行讲解,源码已上传到gitee仓库 1、代码结构…

SpringBoot集成Druid实现数据库连接池

一、引入依赖 完整的pom文件如下所示: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http…

第四讲:MySQL中DDL一些基本数据类型及表的创建、查询

目录 1、创建表:2、DDL一些基本数据类型&#xff1a; 1、创建表: 部分单词及解析&#xff1a; 1、tables:表 2、comment:评论&#xff0c;解释 3、gender:性别 4、neighbor&#xff1a;邻居 1、创建表&#xff1a;&#xff08;注&#xff1a;在自定义数据库操作&#xff0c;…

Vue--》打造个性化医疗服务的医院预约系统(二)

今天开始使用 vue3 + ts 搭建一个医院预约系统的前台页面,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关…

分布式锁:Redis、Zookeeper

1.基于Redis实现分布式锁&#xfeff; Redis分布式锁原理如上图所示&#xff0c;当有多个Set命令发送到Redis时&#xff0c;Redis会串行处理&#xff0c;最终只有一个Set命令执行成功&#xff0c;从而只有一个线程加锁成功 2.SetNx命令加锁 利用Redis的setNx命令在Redis数据库…

01 openEuler操作系统介绍

文章目录 01 openEuler操作系统介绍1.1 发布件1.2 最小硬件要求1.3 硬件兼容性1.4 关键特性1.4.1 openEuler 22.03-LTS基于 Linux Kernel 5.10 内核构建, 在进程调度、内存管理等方面带来10余处创新1.4.2 新介质文件系统1.4.3 内存分级扩展1.4.4 用户态协议栈1.4.5 云原生调度增…

【人工智能】深度优先搜索、代价一致搜索、深度有限搜索、迭代深度优先搜索、图搜索

【人工智能】无信息搜索—BFS 、代价一致、DFS、深度受限、迭代深入深度优先、图搜索 什么是搜索 搜索问题是指既不能通过数学建模解决,又没有其他算法可以套用或者非遍历所有情况才能得出正确结果。这时就需要采用搜索算法来解决问题。搜索就是一种通过穷举所有解的状态,来…

【车载开发系列】AUTOSAR DemDTCAttributes

【车载开发系列】AUTOSAR DemDTCAttributes 【车载开发系列】AUTOSAR DemDTCAttributes 【车载开发系列】AUTOSAR DemDTCAttributes一. DemDTCAttributes概念二. DemAgingCycleCounterThreshold三. DemAgingAllowed四. DemDTCPriority五. DemImmediateNvStorage六. DemMaxNumbe…