zoukankan      html  css  js  c++  java
  • 软件工程实践第二次随笔

    最近的小学期实践一直是跟着老师敲代码,起初都不知道自己做的是什么,后来自己Google了一下,查阅了一些相关的资料,以及结合了最近在做的这个小demo,也算是初步地了解和接触了java主要的三大框架ssh。
    在我们这个写的小demo中,struts文件是作为控制器(作为中间的桥梁),接收前端的请求,对应jsp目录下的custInfo和custSave
    而struts中的class对应的后台服务applicationContext




    比如我们如果要做的是保存操作,那么struts文件中name=”saveCust”对应custSave中的<s:form action=”saveCust”…>,这些是前端的操作,然后到applicationContext中的路径com.crm.action.CustSaveAction去进行操作,new一个service对象,然后service来调用dao,实现对数据库的访问和操作。






    这几天老师也一直强调,Hibernate主要是对象关系映射框架,就是实体实例与数据库记录之间的映射,因此如果做得项目不是很复杂的话,基本上是不需要知道数据库的具体细节了。

    另外service是调用dao,而dao是访问数据库的访问,在我们这个项目中,CustDao是一个接口,写了一些访问数据库的方法,CustDaoImpl是实现了CustDao

    然后在CustServiceImpl中是new了一个CustDao的对象来调用dao的方法。但是后来在网上也查了一些资料,这么写貌似是不规范的,service是业务层,不应该有具体对象,最多是引用,不然就是耦合了。


    自己总结了一下:

    dao(Data Access object)(接口):数据访问对象层,和数据库打交道,和其连接,完成增删查改
    impl :实现了dao接口
    service(接口):业务层。处理业务流程
    service.impl:实现了service接口,service调用dao

    
    

     

    
    

    前端页面的请求,即jsp中的action和struts的name对应。
    请求通过struts控制器和后端也对应起来,其class和applicationContext中的id对应,然后根据后面的路径具体调用相应的xxxxaction,xxxaction其中的service调用dao中的方法。
    而具体实现类CustDaoImpl继承了HibernateDaoSupport(网上的资料写的是这种方法不怎么常用,因为继承会造成耦合度较高),同时又实现了接口dao。

     
     
     

     

  • 相关阅读:
    app专项测试之稳定性测试-monkey测试
    Mac下Fiddler的安装启动。
    测试环境搭建和部署(在Linux环境下搭建jdk+Tomcat+mysql环境和项目包的部署)
    mysql如何用sql语句修改表字段?
    VMware虚拟机出现“正在使用中”如何解决?
    Opencv2.1+vs2008生成不依赖编译环境的exe文件
    VS2008在win7下不时出现Microsoft Incremental Linker已停止工作
    没有找到opencv_core231d.dll运行结果不能显示
    Mat类型与IplImage类型之间相互转换
    获取当前可执行文件的路径(绝对路径)
  • 原文地址:https://www.cnblogs.com/tvtaqa/p/7100833.html
Copyright © 2011-2022 走看看