跟着黑马程序员的管家婆项目视频敲了一边,记录下一些要点供自己以后查看。
一、项目目标
本项目为JAVAEE综合项目。
理解项目分层思想,掌握各层之间方法的相互调用。
掌握DBUtils工具操纵数据库增删查改。
掌握事件监听处理。
二、项目介绍
1.所用jar包介绍
- jfreechar-1.0.9.jar:用来绘制图形的框架,例如:柱状图、饼状图等;
- jcommon-1.0.12.jar:jfreechart依赖该jar包;
- commons-beanutils-1.8.3.jar:封装并简化了反射;
- commons-dbutils-1.4.jar:封装并简化了JDBC;
- commons-dbcp-1.4.jar:apache commons提供的数据库连接池组件,命名为DBCP;
- commons.pool-1.3.jar:DBCP连接池依赖该jar包;
- commons-logging-1.1.1.jar:beanutils依赖该jar包;
- mysql-connector-java-8.0.11.jar:MySQL的JDBC驱动包,用JDBC连接MySQL数据库必须使用该JAR包
这里提一下,新装的MySQL8,注册驱动和URL写法有变化。
"com.mysql.cj.jdbc.Driver"
"jdbc:mysql://localhost:3306/gjp?useSSL=false&serverTimezone=UTC"
2.工具类介绍
- DateChooser.java:用来显示日期选择框,属于对GUI的扩展;
- DateUtils.java:字符串与日期类之间的转换类;
- GUITools.java:该类可以把窗口居中显示;
- JFreeChartUtils:用来简化JFreeChart的使用;
- ListTableModel:用来简化JTable组件的使用;
- JDBCUtils:用来创建数据库连接池对象
3.工程分包创建
- com.itheima.gjp.app:存放main方法,启动程序;
- com.itheima.gjp.tool:存放工具类;
- com.itheima.gjp.domain:存放实体类;
- com.itheima.gjp.view:存放GUI界面,抽象类形式实现界面;
- com.itheima.gjp.controller:存放控制层类,该包下的类会继承view包下的类;
- com.itheima.gjp.service:存放业务层类;
- com.itheima.gjp.dao:存放数据层类
4.UI介绍
- MainFrameContrller(主界面):通过继承AbstractMainFrame得到
- SortMngController(分类管理对话框):通过继承AbstractSortMngDialog得到
- LedgerMngController(账务管理对话框):通过继承AbstractLedgerMngDialog得到
- AddSortController(添加分类对话框)和EditSortController(编辑分类对话框):通过继承AbstractOperationSortDialog得到
- AddLedgerController(添加账务对话框)和EditLedgerController(编辑账务对话框):通过继承AbstractOperationLedgerDialog得到
- PieController(年收支占比图【饼形图】):通过继承AbstractShapeDialog得到
三、一些要点
- 数据库连接池技术
- 下拉菜单联动
- DBUtils中ResultHandler的选择
- 查询时,(此项目中根据起止日期,收/支情况,具体分类查询账务),可以把这些查询条件封装成一个类
文本框接收金额,后台从String转为Double时,如果有非数字内容,可能转换失败,把转换过程try-catch,NumberFormatException