2024年java基础实战项目2

java基础实战项目2一本糊涂账 Java 基础实战项目 1 项目简介 1 需要知识 2 设计思想 3 模块功能 2 开发流程 1 表结构设计 2 entity 类和 dao 类的实现 3 service 层的实现 3 完整代码 1 项目简介 1 需要知识 面向对象 字符串数字 日期 异常 集合 JDBC 反射机制 I O Swing 利用 TableModel 更新数据 图形界面的皮肤 图标

大家好,我是讯享网,很高兴认识大家。



一本糊涂账(Java 基础实战项目)

  • 1. 项目简介
  • 1. 需要知识
  • 2. 设计思想
  • 3. 模块功能
  • 2. 开发流程
  • 1. 表结构设计
  • 2. entity类和dao类的实现
  • 3. service 层的实现
  • 3. 完整代码

1. 项目简介

java se项目实战教程 java项目实战精编_java se项目实战教程

1. 需要知识

  • 面向对象、字符串数字、日期
  • 异常、集合、JDBC、反射机制、I/O、Swing、利用 TableModel 更新数据、图形界面的皮肤
  • 图标 chart 动态生成、数据库的备份与恢复、自定义圆形进度条

2. 设计思想

  • 单例模式
  • 面板类与监听器类松耦合
  • Entity 层设计
  • Service 层设计

3. 模块功能

消费一览
统计本月的消费总数,今日消费,日均消费,本月剩余,日均可用,距离月末有多少天。

同时使用一个环形进度条,这个环形进度条不是JDK自带的,需要自己设计,并且随着消费用度,颜色从绿色渐变为红色。

java se项目实战教程 java项目实战精编_eclipse_02

记一笔

java se项目实战教程 java项目实战精编_java_03

消费分类管理

java se项目实战教程 java项目实战精编_java se项目实战教程_04

月度消费报表

java se项目实战教程 java项目实战精编_sql_05

设置预算和数据库路径

在设置页面,设置本月的预算金额。

java se项目实战教程 java项目实战精编_java_06

备份数据

java se项目实战教程 java项目实战精编_java_07

恢复数据

java se项目实战教程 java项目实战精编_主键_08

2. 开发流程

1. 表结构设计

在开始整个软件开发之前,一定是事先进行表结构设计。

把表有哪些字段搞清楚,表与表之间的关系理顺。

同时还要校验这样的表结构,是否能够支撑功能上的需要。

比如在消费一览中需要的各种数据,应该以什么样的方式去设计这些表,才能够支撑页面上的数据显示。

在专门的表结构设计章节里,会把每张表列出来,每个字段的意义,类型,限制。 表与表之间的关系,一对多关系,多对一关系如何确定与设计。主键约束,外键约束等等信息。

步骤 1 : 首先创建数据库
数据库名定为hutubill,在程序中的JDBC相关代码,都需要连接这个数据库名 hutubill

步骤 2 : 确定需要哪些表
根据业务上的需要,一共要3个表

  1. 配置表信息 config 用于保存每月预算和Mysql的安装路径( 用于备份还原用)
  2. 消费分类表 category 用于保存消费分类,比如餐饮,交通,住宿
  3. 消费记录表 record 用于存放每一笔的消费记录,并且会用到消费分类

步骤 3 : 配置信息表 config
配置信息表 config有如下字段
主键,每个表都有一个主键 类型是 int
配置信息按照键值对的形式出现 ,类型是varchar(255)
配置信息的值, 类型是 varchar(255)

  1. 键值对
    进一步解释一下键值对,比如要存放每个月的预算,则需要在config表中增加一条记录,key=“budget” value=“500”,就表示预算是500.
  2. varchar(255) 表示变长字符,如果实际存放只有30个字符,那么在数据库中只占用30的空间,最多占用255
  3. key 是关键字,不适合用于作为字段名,所以在key后面加了一个下划线 key_ 就不会有任何问题了,识别性一样很好,一眼就知道这个字段是干什么用的
  4. 有多种存储引擎,MyISAM和InnoDB是其中常用的两种, 他们之间的区别很多,如果要展开讲,就需要专门的章节了。 这里使用ENGINE=InnoDB 是因为后续要使用的外键约束只有在InnoDB中才生效。
  5. 表示该表按照UTF-8的编码存放中文
讯享网

步骤 4 : 消费分类表 category
消费分类表 category 有如下字段
主键,每个表都有一个主键 类型是 int
分类的名称,类型是varchar(255)

 

步骤 5 : 消费记录表 record
消费记录表 record 有如下字段:
主键,每个表都有一个主键 类型是 int
本次花费,类型是int
对应的消费分类表的中记录的id, 类型是int
备注,比如分类是娱乐,但是你希望记录更详细的内容,啪啪啪,那么就存放在这里。
日期,本次记录发生的时间。

讯享网

步骤 6 : 添加主键
每个表都应该有主键,主键约束自带非空和唯一性属性。

表示修改表category
增加约束
约束名称 pk 是primary key的缩写,category是表名, id表示约束加在id字段上。约束名称是可以自己定义的,你可以写成abc,但是尽量使用好的命名,使得一眼就能够看出来这个约束是什么意思。 能够降低维护成本。
约束类型是主键约束
表示约束加在id字段上

 

步骤 7 : 设置id为自增长
设置id为自增长是常用的插入数据策略。 换句话说,插入消费分类数据的时候,只用提供分类名称即可,不需要自己提供id, id由数据库自己生成。

表示修改表category
表示修改字段 id
修改后的id是 int类型,并且是auto_increment(修改之前仅仅是int类型,没有auto_increment)

 

步骤 8 : 外键
外键约束的作用是保持数据的一致性
比如增加一条消费记录,金额是500,cid是5。
但是cid=5在分类表category中找不到对应的数据,那么这就破坏了数据的一致性,会带来一系列的后续问题,比如根据分类进行统计,就会找不到这条数据。

修改表record
增加约束
约束名称fk_record_category,fk是foreign key的缩写, 表示是从record表指向category表的约束。 与主键一样,约束名称也是可以自己定义的,比如写成abc. 不过依然建议使用可读性好的命名方式。
约束类型,外键
本表record的字段 cid 指向category表的字段id

 
 

数据库表格的设计,也可以采用数据库管理工具的可视化面板直接进行设计

2. entity类和dao类的实现

以 category 为例

 
 

3. service 层的实现

service 主要是对 entity 类的业务进行封装

 

3. 完整代码

小讯
上一篇 2024-12-30 17:16
下一篇 2024-12-28 14:05

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/5965.html