黑马程序员小鲁哥哥白话笔记管家婆项目一.docx
- 文档编号:4550339
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:11
- 大小:17.42KB
黑马程序员小鲁哥哥白话笔记管家婆项目一.docx
《黑马程序员小鲁哥哥白话笔记管家婆项目一.docx》由会员分享,可在线阅读,更多相关《黑马程序员小鲁哥哥白话笔记管家婆项目一.docx(11页珍藏版)》请在冰豆网上搜索。
黑马程序员小鲁哥哥白话笔记管家婆项目一
小鲁哥哥白话笔记-管家婆项目
前面我们把java基础的内容给大家用白话的形式简单的讲了讲,今天我们把课堂上的管家婆案例拿出来和大家聊一聊,这一个项目是综合了前面我们所讲的所有技术,让大家把以前所学的知识整合起来,对前面我们所学的技术有一个全面的复习和了解。
项目训练目标
*A:
项目训练目标
*a:
项目目标
*综合运用前面所学习的知识点
*熟练View层、Service层、Dao层之间的方法相互调用操作、
*熟练dbutils操作数据库表完成增删改查
*了解公司项目开发的流程,充分的掌握项目需求分析、设计与功能的代码实现。
提高同学们独立分析需求与功能实现的能力。
###02项目中的功能模块
*A:
项目中的功能模块
*a:
五大模块
*查询账务
*多条件组合查询账务
*添加账务
*编辑账务
*删除账务
###03技术的选择和相关jar包
*A:
技术的选择和相关jar包
*a:
apache的commons组件:
###04项目中的工具类
*A:
项目中的工具类
*a:
工具类的介绍
*每个项目中都会有很多个工具类,不要求每个工具类对能独立写出来,但是要会使用工具类
*JDBCUtils:
用来创建数据库连接池对象
###05数据表的设计
*A:
数据表的设计
*a:
数据表的设计(详见:
day34_source/表关系.JPG)
*表与表之间是有关系的
*主表和从表的关系
*主表中的主键作为从表中的外键
###06创建数据库数据表写入测试数据
*A:
创建数据库数据表写入测试数据
*a:
创建数据库数据表
/*
创建管家婆的数据库
名字gjp
*/
CREATEDATABASEgjp;
USEgjp;
/*
创建数据表,表名账务
字段,列
主键
分类名称 可变字符
金额 double
账户 可变字符(支付,收入方法)
创建日期date
账务描述可变字符
*/
CREATETABLEgjp_zhangwu(
--主键
zwidINTPRIMARYKEYAUTO_INCREMENT,
--分类名称
flnameVARCHAR(200),
--金额
moneyDOUBLE,
--账户
zhanghuVARCHAR(100),
--创建日期
createtimeDATE,
--账务描述
description VARCHAR(1000)
);
SELECT*FROMgjp_zhangwu;
*b:
写入数据
--写入测试的数据
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(1,'吃饭支出',247,'交通银行','2016-03-02','家庭聚餐');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(2,'工资收入',12345,'现金','2016-03-15','开工资了');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(3,'服装支出',1998,'现金','2016-04-02','买衣服');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(4,'吃饭支出',325,'现金','2016-06-18','朋友聚餐');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(5,'股票收入',8000,'工商银行','2016-10-28','股票大涨');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(6,'股票收入',5000,'工商银行','2016-10-28','股票又大涨');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(7,'工资收入',5000,'交通银行','2016-10-28','又开工资了');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(8,'礼金支出',5000,'现金','2016-10-28','朋友结婚');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(9,'其他支出',1560,'现金','2016-10-29','丢钱了');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(10,'交通支出',2300,'交通银行','2016-10-29','油价还在涨啊');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(11,'吃饭支出',1000,'工商银行','2016-10-29','又吃饭');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(12,'工资收入',1000,'现金','2016-10-30','开资');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(13,'交通支出',2000,'现金','2016-10-30','机票好贵');
INSERT INTOgjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES(14,'工资收入',5000,'现金','2016-10-30','又开资');
###07项目中的分层设计
*A:
项目中的分层设计
*a:
各层功能介绍
*view层作用:
视图层,即项目中的界面
*controller层作用:
控制层,获取界面上的数据,为界面设置数据;将要实现的功能交给业务层处理
*service层作用:
业务层,功能的实现,与controller控制层和数据访问层DAO交互,将对数据库的操作交给DAO数据访问层来处理
*dao层作用:
数据访问层,用来操作数据库表的数据
*db数据库:
这里指MySQL
*domain实体包:
存放JavaBean
*tools工具包:
存放项目中使用到的工具类
*test测试包:
存放项目功能测试的代码
###08创建项目_分层_导入jar包
*A:
创建项目_分层_导入jar包
*a:
创建工程包
*b:
导入jar包
*在项目根路径下建立文件夹lib
*导入以下jar包
*拷贝以上jar包,选定拷贝的jar包/右键/BuildPath/AddtoBuildPath
###09创建domain包中的类
*A:
创建domain包中的类
*a:
案例代码
publicclassZhangWu{
privateint zwid;
privateStringflname;
privatedouble money;
privateStringzhanghu;
privateStringcreatetime;
privateStringdescription;
//注意生成空参构造、有参构造、set和get方法、toString方法等
}
###10创建JDBCUtils工具类
*A:
创建JDBCUtils工具类
*a:
案例代码
publicclassJDBCUtils{
//创建BasicDataSource对象
privatestaticBasicDataSourcedatasource=newBasicDataSource();
//静态代码块,实现必要参数设置
static{
datasource.setUsername("root");
datasource.setPassword("123");
datasource.setMaxActive(10);
datasource.setMaxIdle(5);
datasource.setMinIdle
(2);
datasource.setInitialSize(10);
}
publicstaticDataSourcegetDataSource(){
returndatasource;
}
}
###11创建其他包中的类
*A:
创建其他包中的类
/*
* 实现对数据表gjp_zhangwu数据增删改查操作
* dbuils工具类完成,类成员创建QueryRunner对象,指定数据源
*/
publicclassZhangWuDao{
privateQueryRunnerqr=newQueryRunner(JDBCUtils.getDataSource());
}
/*
* 业务层类
* 接收上一层,控制层controller的数据
* 经过计算,传递给dao层,操作数据库
* 调用dao层中的类,类成员位置,创建Dao类的对象
*/
publicclassZhangWuService{
privateZhangWuDaodao=newZhangWuDao();
}
/*
* 控制器层
* 接收视图层的数据,数据传递给service层
* 成员位置,创建service对象
*/
publicclassZhangWuController{
privateZhangWuServiceservice=newZhangWuService();
}
/*
* 试图层,用户看到和操作的界面
* 数据传递给controller层实现
* 成员位置,创建controller对象
*/
publicclassMainView{
privateZhangWuControllercontroller=newZhangWuController();
}
/*
* 主程序类,作用,开启软件程序
*/
publicclassMainApp{
publicstaticvoidmain(String[]args){
newMainView().run();
}
}
###12实现用户的界面菜单
*A:
实现用户的界面菜单
*a:
案例核心代码
/*
* 实现界面效果
* 接收用户的输入
* 根据数据,调用不同的功能方法
*/
publicvoidrun(){
//创建Scanner类对象,反复键盘输入
Scannersc=newScanner(System.in);
while(true){
//接收用户的菜单选择
intchoose=sc.nextInt();
//对选择的菜单判断,调用不同的功能
switch(choose){
case1:
//选择添加账务,调用添加账务的方法
break;
case2:
//选择的编辑账务,调用编辑账务方法
break;
case3:
//选择的删除账务,调用删除账务方法
break;
case4:
//选择的是查询账务,调用查询方法
//selectZhangWu();
break;
case5:
System.exit(0);
break;
}
}
}
###13实现查询的界面菜单
*A:
实现查询的界面菜单
*a:
案例核心代码
/*
*定义方法selectZhangWu()
*显示查询的方式1所有查询 2条件查询
*接收用户的选择
*/
publicvoidselectZhangWu(){
Scannersc=newScanner(System.in);
intselectChooser=sc.nextInt();
//判断根据用户的选择,调用不同的功能
switch(selectChooser){
case1:
//选择的查询所有,调用查询所有的方法
selectAll();
break;
case2:
//选的条件查询,调用带有查询条件的方法
select();
break;
}
}
/*
*定义方法,实现查询所有的账务数据
*/
publicvoidselectAll(){
}
/*
*定义方法,实现条件查询账务数据
*提供用户的输入日期,开始日期结束日期
*就2个日期,传递到controller层
*调用controller的方法,传递2个日期参数
*获取到controller查询的结果集,打印出来
*/
publicvoidselect(){
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 黑马 程序员 哥哥 白话 笔记 管家婆 项目