mvcdao层怎么写

1.mvc dao层,service层 到底怎么写我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其他层代码,如果你会像spring这样的框架,你会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层 。
初期也许都是new对象去调用下一层,比如你在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了 。当那个对象不存在,我还要修改业务的代码,这不符合逻辑 。
好比主板上内存坏了,我换内存,没必要连主板一起换 。我不用知道内存是哪家生产,不用知道多大容量,只要是内存都可以插上这个接口使用 。
这就是MVC的意义 。接下来说你感觉service的意义,其实因为你现在做东西分层次不是那么严格,在一个你们做东西业务本身也少,举个最简单的例子,你做一个分页的功能,数据1000条,你20条在一个页,你可以把这个功能写成工具类封装起来,然后在业务层里调用这个封装的方法,这才是业务里真正干得事,只要没访问数据库的,都要在业务里写 。
再有不明白的追问,这是经验问题,呵呵,其实以后你就会懂 。只是刚开始写的代码都是有个请求,我就去数据库取,业务几乎没有 。
------------------------------------------------------------------------------虽然每分,但还是把自己的理解给LZ说说 。怎么说呢,我不是理论帝 。
所以我讲讲自己的理解比说你现在用的是SSH框架,做一个用户模块:1、假设现在你做这个功能会用到user表和权限表,那么你前台的页面访问action,action再去调用用户模块service,用户模块service判断你是操作user表还是权限表,如果你操作的是user表则service的实现类就去调用userDAO 。如果是操作的是权限表则调用权限的DAO2、也就是说DAO一定是和数据库的每张表一一对应,而service则不是 。
明白的没?其实你一个项目一个service和一个DAO其实也一样可以操作数据库,只不过那要是表非常多,出问题了,那找起来多麻烦,而且太乱了3、好处就是你的整个项目非常系统化,和数据库的表能一致,而且功能模块化,这样以后维护或者改错比较容易,性能也高一些--------------------------------------------------------------------------简单的说DAO层是跟数据库打交道的,service层是处理一些业务流程的,至于你说的为什么要用service层封装,我认为:一般来说,某一个程序的有些业务流程需要连接数据库,有些不需要与数据库打交道而直接是一些业务处理,这样就需要我们整合起来到service中去,这样可以起到一个更好的开发与维护的作用,同时也是MVC设计模式中model层功能的体现-------------------------------------------------------------------------------初级DAO模式:例如::写一个类 操作1张表 针对这张表的所有操作都以方法的形式写在这个类中 1个操作对应1个方法要求是外部通过调用这个类的方法达到操作某张表的目的时不需要写任何和数据库以及JDBC相关的代码,这个类的命名就是XXDAO比如表叫做 t_goods 商品表那么操作它的DAO就叫GoodsDAO高级DAO模式:例如:即DAO工厂模式,多个XXDAO实现同一个接口或者继承同一个基类,编写一个工厂类通过工厂模式(简单工厂模式或利用反射动态加载均可)获得接口或基类对象,内部实际上封装返回的是具体的XXDAO类的对象 。简单的说即是在1的基础上将创建具体的XXDAO对象的方式由new变为工厂模式实现例如:UserDAO dao = DAOFactory.create( 。