🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
我们在本章中,学习了在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个月以后能看的懂,是指我们在不写注释的情况下能看的懂。并不是指代码量的缩减。 所以大道至简的简,更多的是需要体现的思维上,体现在交流的难度上,体现在代码二次开发及维护的难度上。而不是体现在代码量上。 > 大道至简:努力的写出别人能看的懂的代码!