我们在本章中,学习了在JAVA EE中,使用struts及hibernate,处理V层传的数据,并按需求进行了数据的增删改查操作。同时,我们在章节中,尽可能多的给出了官方文档的位置。
我们说越是优秀的产品,其官方文档做的就越是优秀。struts和hibernate正是如此.
其实,我们前面在下载struts和hibernate的压缩包时,已经将官方文档下载至了本地计算机。
他们的位置分别为:
1. struts
![struts docs](https://box.kancloud.cn/349b56e0fdbcb695a9e2078f0dbfcf58_874x260.png)
1. hibernate
![hibernate docs](https://box.kancloud.cn/8baa71db76272604e3c74f8a248cd995_1624x194.png)
在安装http-server的前提下,我们只需要在命令行下进行该文件夹,并执行http-server便可以启动一个HTTP服务。然后打开浏览器,浏览本地的就可以了。
> 在以后的章节中,当我们涉及到知识点时,将给出本地的链接地址。
# 带着问题前行
如果你已经有了TP的基础,相信一定也是带着问题来学习的。比如C层如何获取到V层使用GET和POST方法传入的值。再比如C层如何向V层传值。V层获取到C层传入的值后,如何展示在页面上。如何在M层做数据验验处理。M层如何连接数据库。单条查询如何实现。多条查询如何实现。如何分页。如何排序。如何定义显示字段。等等等等。
# 面向对象及分层
C层是个指挥者,起的永远是指挥的角色。所以更多的,它是在调用这个方法,然后进行判断,然后根据判断结果,再决定调用另一个方法。
M - entity 与数据表相对应,它只实现与数据表相关的操作,比如基本的增删改查,后面我们还可以用到的索引、外键等。 entity中的类文件与我们的ER图中的E相对应。实际上,在开发中,我们会严格参考ER图来建立实体类。
M - server 服务层. 服务层在C与实体中起到了缓存的作用。它的存在,保证了每一次使用实体类对数据表进行的操作,都是完整的。避免了实体层内部的调用,同时,也避免了C与实体直接打交道。在实际的开发中,服务层将严格的与我们的UML类图中的类相对应,uml类图中,每存在一个类,我们在编码的过程中,就会在服务层新建一个类。
面向对象的思想,很编程更加贴进于大脑的思索过程。虽然前期需要一定的学习成本,但一但掌握并灵活运用它的思想后,便会有事半功倍的效果。
# 单元测试
我们在以前的TP开发学习中,并没有强调单元测试。基本的原因,是由于我们的基础相对较差,我们并不想人为的提升开发难度;其次,TP分三层。在JAVA EE开发中数据表实体部分,我们使用了navicat对表直接进行操作。
TP三层: V C M\(server\) + navicat
JAVA EE四层 :VCM\(server\)M\(entity\)
# 大道至简
我们如何分层后,代码量的确较以前增多了。有人说,老师不是大道至简吗?怎么起来代码越多。
我们说大道至简的简,是指思维简单,实现的方法简单,代码的浅显易懂。在开发,特别是团队开发中,我们讲求的是写能看的懂的代码。这里的能看的懂,是指其它队员能看的懂,是指自己在3个月以后能看的懂,是指我们在不写注释的情况下能看的懂。并不是指代码量的缩减。
所以大道至简的简,更多的是需要体现的思维上,体现在交流的难度上,体现在代码二次开发及维护的难度上。而不是体现在代码量上。
> 大道至简:努力的写出别人能看的懂的代码!
- README
- 第一章:准备
- 第二章:Hello World!
- 第一节:查看工程文件
- 第二节:JDK、JRE与环境变量
- 第三节:index.jsp
- 第三章:Hello Struts
- 第一节:Web.xml
- 第二节:单入口
- 第三节:Hello Struts
- 第四节:触发C层
- 第四章:建立数据表
- 第一节:建立实体类
- 第二节:测试一
- 第三节:测试二
- 第四节:引入Hibernate
- 第五节:配置Hibernate
- 第六节:建立连接
- 第七节:实体类映射数据表
- 第八节:完善数据表
- 第五章:教师管理
- 第一节:增加数据--add
- 第二节:增加数据--save
- 1 获取传入数据数据
- 2 数据写入测试
- 3 对接C层
- 第三节:数据列表
- 1 获取数据
- 2 重构代码
- 3 C层对接--初始化
- 4 C层添加数据
- 5 V层显示数据
- 6 获取数据库中数据
- 7 显示性别
- 8 分页
- 9 条件查询
- 第四节:修改数据
- 1 edit
- 2 update
- 第五节:删除数据
- 第六节:总结
- 第六章:重构C层
- 第一节:继承ActionSupport类
- 第二节:数据验证
- 第七章:前台分离(前台)
- 第一节:环境搭建
- 第二节:运行环境
- 第三节:共享开发环境
- 第四节:生产环境
- 第八章:前台开发(前台)
- 第一节:本地化
- 第二节:教师列表
- 1 引入M层
- 2 模拟后台返回数据
- 3 C与M对接
- 4 C与V对接
- 第九章:前后台对接(前后台)
- 第一节:后台输出json(后台)
- 第二节:对接前台(全栈)
- 第二节:对接API(前台)
- 第二节:跨域请求(后台)
- 第三节:重构代码(前台)
- 第十章:重构后台M层
- 第一节:数据访问DAO层
- 第二节:项目整体重构
- 第十一章:用户登陆(前后台)
- 第一节:制定规范
- 第二节:定制测试用例
- 第三节:后台输入测试代码(后台)
- 第四节:postman(后台)
- 第五节:新建用户登陆模块(前台)
- 第六节:代码重构(前台)
- 第十二章:班级管理(前后台)
- 第一节:班级列表
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第二节:Add
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第三节:Save
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第四节:Edit
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第五节:Update
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第六节:Delete
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第七节:小结
- 第十三章:班级管理(API)
- 第一节:ER图
- 第二节:create
- 1 实体层
- 2 dao层
- 3 service(server)层
- 4 action层
- 第三节:ManyToOne
- 第四节:Read
- 1 service(server)层
- 2 action层
- 第五节:update
- 1 service(server)层
- 2 action层
- 第六节:update
- 第十四章:重构服务层