第28天管家的家庭会计软件
面向家庭主妇的第28天家政软件
第一章管家的家庭会计软件1。项目简介1.1。项目安排1.1.1。项目目标
这个项目是一个JAVAEE基础课的综合项目,包含了大量的知识点,从而综合运用基础课所学的知识,提高我们对项目的理解和知识点的应用。
精通视图层、服务层和道层之间的调用方法,
熟练的dbutils操作数据库表来完成添加、删除和修改
通过这个项目,让我们了解公司的项目开发流程,全面掌握项目需求分析、设计和功能代码实现。提高学生独立分析需求和实现功能的能力。
1.1.2.项目时间
这个项目是在两天的课程时间内完成的,一边说一边练。
1.2.项目功能分析1.2.1。项目演示1.2.2。项目功能介绍
查询账务多条件组合查询账务添加账务编辑账务删除账务2.项目环境建设2.1。技术选择和罐子包装介绍
每个项目都必须使用一些成熟的技术,通常是一些专业组织或团队提供的开源、免费的技术。在以后的学习过程中,我们会逐渐了解这些专业组织。本项目使用的技术如下:
apache的commons组件: commons-dbutils-1.4.jar:封装并简化了JDBC; commons-dbcp-1.4.jar:apache commons提供的数据库连接池组件,命名为DBCP; commons.pool-1.3.jar:DBCP连接池依赖该jar包;mysql-connector-java-5.1.28-bin.jar:MySQL的JDBC驱动包,用JDBC连接MySQL数据库必须使用该JAR包。2.2.工具介绍
每个项目都会用到一些工具类,这个项目也不例外。我们不会教你如何实现这些类,而是让你知道如何在项目中使用这些工具类。以下是本项目中使用的工具类及其介绍:
JDBCUtils:用来创建数据库连接池对象;在项目实施过程中,我们会讲解工具类的使用,这里就不多介绍了。
JDBCUtils.java
publicclassJDBCUtils {
publicationstatifinString DRIVER _ CLaSS _ NAME = " com . MySQL . JDBC . DRIVER ";
publicationstatifinString URL = " JDBC:MySQL://localhost:3306/javahelp _ gjp ";
publicationstatifinString USERNAME = " root ";
publicationstatifinString PASSWORD = " root ";
privatestationbasicdatasource = new basicdatasource;
静态{
data source . setdriverclassname;
data source . setURl;
data source . set USERNAME;
data source . SetPassword;
}
publicationstaticdata source getdata source{
returndataSource
}
}
2.3.数据表创建
对于一个项目来说,表的设计非常重要,因为应用程序中的所有操作都是基于数据库表的,所以我们的第一步是创建数据库表。
管家项目的数据库设计非常简单。我们只需要找到gjp.sql文件并执行它。以下是用于创建库和表的SQL语句:
2.3.1.创建数据库
创建家庭主妇数据库gjp
CREATE DATABASE gjp
2.3.2.创建数据库表
创建会计表gjp _彰武
CREATETABLEgjp_zhangwu,
双倍的钱,
张虎·瓦尔查尔,
createtime DATE,
deion VARCHAR
);
2.3.3.添加表格数据
添加会计表数据
插入gjp _ zhangwu 值;
插入gjp _ zhangwu 值;
insertinggjp _ Zhang Wu价值观;
插入gjp _ zhangwu 值;
插入gjp _ zhangwu 值;
插入gjp _ zhangwu 值;
插入gjp _ zhangwu 值;
Insertintogjp _ zhangwu 价值观;
插入gjp _ zhangwu 值;
插入gjp _ zhangwu 值;
插入gjp _ zhangwu 值;
插入gjp _ zhangwu 值;
Insertiongjp _ zhangwu 值;
插入gjp _ zhangwu 值;
2.4.项目分层的作用
项目为什么要分包分层?
分析顾客在餐厅就餐的案例:
小餐馆:一个服务员就能搞定
大酒店:
迎宾员点菜员厨师通过案例发现,程序小的时候,可以一个人完成;然而,当项目规模较大时,一个人很难完成。这时候就需要用多人合作来完成程序开发。
多人合作会遇到工作任务分配的问题。这时,我们会认为每个人都有责任完成项目的一部分。然后,这一块内容的划分需要我们通过分层来完成。
通过下图说明项目中常见的分层。
界面菜单的完成是项目编制的第一步。
我们通过输出语句输出界面菜单,然后根据输入的函数序号调用并执行相应的函数。
3.3.1.功能实现步骤
1编写MainView类的运行方法
1.1完成功能界面菜单显示
1.2接收键盘输入的功能选项
1.3根据选项值,调用相应的函数方法
2写MainApp类的主要主方法
2.1调用MainView类中的run方法执行程序,显示函数界面菜单。
3.3.2.功能实现代码
1.在视图包的MainView类中编写运行方法
/**
*操作方法
*/
publicvoidrun {
/*
* 1.打印菜单2。获取用户输入3。调用相应的方法
*/
booleanflag = true
scanner in = Newscanner;
while {
系统。out . println;
System.out.println;
System.out.println;
intop = in . Nextint;
开关 {
案例1:
addZhangWu;
打破;
案例2:
editZhangWu;
打破;
案例3:
deleteZhangWu;
打破;
案例4:
selectZhangWu;
打破;
案例5:
System.out.println;
flag = false
打破;
默认:
System.out.println;
}
}
}
2.在应用程序包的MainApp类的main主方法中,调用MainView类中的run方法
public static void main{
newMainView。run;
}
3.4.查询所有帐户
3.7.1.功能分析
1在MainView类中编写edit彰武方法
1.1键盘输入编辑会计信息标识号
1.2键盘输入修改会计信息内容
1.3调用彰武服务类中的edit彰武方法,更新指定的会计信息
1.4更新完成后,使用输出语句提示“编辑账号成功!”
2在彰武Service类中编写edit彰武方法
2.1调用章五道类中的edit章五方法更新指定的会计信息
3写编辑章武法于章武道班
3.1通过QueryRunner对象,调用update方法更新数据库表gjp_zhangwu,完成数据库表中指定的会计更新操作
3.7.2.功能实现步骤
1.在MainView类中编写edit彰武方法
/**
*编辑会计方法
*/
publicationeditzhangwu{
/*
* 1.获取用户输入并将其打包到bean中。
* 2.调用服务的editZhangWu方法完成添加功能
*/
scanner in = Newscanner;
章武zw =章武;
System.out.print;
zw . SetzWid);
System.out.print;
zw . SetFlname);
System.out.print;
zw . setzhanghu);
System.out.print;
zw . SetMoney);
System.out.print;
zw . SetCreateTime);
System.out.print;
zw . SetDeion);
Zhang wuservice . edit Zhang Wu;
System.out.println;
}
2.在彰武Service类中编写edit彰武方法
/**
*编辑账户
* @paramzw
*/
public void edit Zhang Wu{
章五道.编辑章五;
}
3.在章无道课上写编辑章无法
/**
*编辑账户
* @paramzw
*/
public void edit Zhang Wu{
string SQL = " update gjp _ Zhang Wu set flname =?,钱=?,张虎=?,createtime=?,deion=?其中zwid=?”;
尝试{
Object params= {zw.getFlname、zw.getMoney、zw . getzhHu、zw.getCreatetime、zw.getDeion、zw . getzwid};
qr.update;
} catch {
throwNewRuntimeException;
}
}
3.8.删除帐户
3.8.1.功能分析
1在MainView类中编写deleteZhangWu方法
1.1键盘输入要删除的会计信息标识号
1.2在彰武服务类中调用delete彰武方法,删除指定的会计信息
1.3删除后,使用输出语句提示“账户删除成功!”
2在彰武服务类中编写write彰武方法
2.1调用章无道类中的删除章无方法删除指定的会计信息
3在章无道课上写删除章无法
3.1通过QueryRunner对象,调用update方法更新数据库表gjp_zhangwu,完成数据库表中指定的账户删除操作
3.8.2.功能实现步骤
1.在MainView类中编写deleteZhangWu方法
/**
*删除会计方法
*/
publicvoiddeleteZhangWu {
/*
* 1.获取用户输入并将其打包到bean中。
* 2.调用服务的deleteZhangWu方法完成添加功能
*/
scanner in = Newscanner;
System.out.print;
Zhang wuservice . deletezhang Wu);
System.out.println;
}
2.在彰武服务类中编写write彰武方法
/**
*删除账户
* @paramzwid
*/
public void deletezhangwu{
章无道.删除章无;
}
3.在章无道课上写删除章无法
/**
*删除账户
* @paramzwid
*/
public void deletezhangwu{
string SQL = " delete from gjp _ Zhang Wu其中zwid=?";
尝试{
qr.update;
} catch {
throwNewRuntimeException;
}
}
3.9.功能模块概述
恭喜,我们已经完成了分类模块的所有功能。通过分类模块功能的实现,您可能会发现以下问题:
难度大的地方:自行功能分析的能力欠缺,需要讲师来分析;代码实现: View(Controller):代码量最大; Service层:代码量最小; DAO层:相似度高,难度不大;到目前为止,这是我们第一次写这么复杂的项目,所以没有练习过泛函分析的能力,所以第一次需要讲师来分析是很正常的。当我们不断练习的时候,自然可以用正确的思维方式去分析。
视图层的功能是“界面”,用于向用户显示数据。当前项目的视图层包含控制器层代码。
控制器层的作用是“调度”,调度表示层视图和业务层服务。主要功能如下:一、将表示层的数据交给业务层处理;二是将业务层返回的数据交给表示层显示。至于为什么View层有大量代码,我想在这里说明,不是View层有大量代码,而是其他层有少量代码,所以你会觉得View层有大量代码。
服务层的功能是“业务”,我们也可以把“业务”看成“功能”。
那么为什么服务层的代码这么少呢?原因是我们现在写的项目很小,没有复杂的业务。然而,未来大型项目的最大代码量是服务层。
DAO层是一个操作数据库,现在用commons-dbutils工具简化JDBC,发现代码很简单。最后,我们将学习DAO层的其他工具,如hibernate和mybatis,它们是JDBC简化JDBC的包。
1.《家庭记账软件 第二十八天 管家婆家庭记账软件【悟空教程】》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《家庭记账软件 第二十八天 管家婆家庭记账软件【悟空教程】》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1689131.html