• 软件工程实践第二次随笔


    最近的小学期实践一直是跟着老师敲代码,起初都不知道自己做的是什么,后来自己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。

     
     
     

     

  • 相关阅读:
    #Bug--Mapper资源加载不到
    Spring项目用JUnit调试时出现错误 Failed to load ApplicationContext 的解决方法
    安装和配置maven遇到的坑
    DataGrip 异常
    数据库-1055报错-把only_full_group_by去掉
    spring boot 配置logback.xml 日志重复打印
    eclipse创建maven项目
    【C++11新特性】 C++11智能指针之weak_ptr
    socket编程中的粘包问题解决方案
    c++的反映机制实现
  • 原文地址:https://www.cnblogs.com/tvtaqa/p/7100833.html
Copyright © 2020-2023  润新知