java web 项目,DAO层应该如何设计

问题描述

公司的项目基本上一个domain就对应一个dao接口和一个实现daoImpl,可是我想了好一阵子都没想出这有什么好,我的想法是:domain继承于EntityBase,然后用一个dao,方法是通用增删改查方法和执行原生SQL语句的方法以及调用存储过程的方法等,参数用泛型<T extneds EntityBase>,复杂的业务全部定义在service中,在service中组合dao里面的方法,就不用给每一个domain定义dao实现了,求过来人指点下

解决方案

其实这样设计是为了降低类之间的耦合,你说的 那种抽象出来但是耦合性太大你可以看下jpa的现在设计,他的repository的设计的 就是体现出来了 现在大部分框架都是尽量低耦合的,你看下这个文章:http://www.cnblogs.com/tiwlin/archive/2010/02/24/1672459.html
解决方案二:
你这样的想法也行如果你这想法能满足你的需要就这样干!个人的一个思路: 你可以分4层 action(处理请求)--》service(处理逻辑)--》manger(编写动态sql)——》dao(传入动态sql去执行)
解决方案三:
这样设计是对的,之前的写法图省事简单。
解决方案四:
因为大多数时候所需的sql是不规整的,四五个通用的简单dao的api满足不了需求,不过话说回来如果前人已经封装好了,估计谁都乐意用,没有现成的嘛大部分人就不太愿意在眼前的项目工时中去做这种基础建设咯。
解决方案五:
你这个想法是对的,善于抽象,省了不少复杂的代码,省去了每一个dao都要重复的继承框架的Support实现类(hibernateDaoSupport),我们公司的代码基本上是这么干的。

时间: 2024-09-17 16:29:51

java web 项目,DAO层应该如何设计的相关文章

Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目

原文:Java web 项目搭建 Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring+Hibernate的架构搭建一个java web项目 Spring MVC+Spring+Hibernate结构介绍如下: Spring MVCSpring MVC的职责是作为web层框架,实现了我们常见的MVC模式 SpringSpring 作为服务层,利用自身特性IOC.AOP,提供数据从DA

Java Web项目中连接Access数据库的配置方法_JSP编程

老师决定期末考试采用access数据库实现增删改查,我认为现在的我已经没有问题了,但是以前都是在JSP页面中连接access数据库,无论是以下的那种方式都进行了连接的练习,但是现在我想让我的项目中的访问access数据库的java代码,封装到DAO中,在DAO中连接数据库,没有和Servlet API有任何的关系.对于大多数人都会优先选择使用ODBC数据源的方式或者是使用绝对路径的方式连接access数据库,但是我个人认为,这样做不太好,如果采用这样的方式,项目做好后,放到他人的服务器上是无法运

Java Web 项目 自定义的配置文件存放位置

问题描述 现在手头上在开发一个java web项目,服务器为tomcat,目前在进行代码重构,需要把所有设计到的配置文件都归到conf文件夹中,项目负责人将项目结构如下:POinion --src --conf --lib --WebRoot但是如果把配置文件都归在conf文件夹中,源代码访问该如何定位到这个conf文件夹中的文件呢?我尝试用this.getClass().getResourceAsStream(filename)发现访问不到,通过 this.getClass().getReso

java web项目答辩答辩题总结(书本网上语言答辩+自己的语言答辩)

答辩每个人的总分为1.5分.每个人主要问3个问题. 开发流程===>系统架构====>项目模块+功能===>项目得失重定向与转发:?九个隐式对象?get与post的区辨:?jsp有静态包含,动态包含,两者的区辨:?什么是MVC:?web系统架构:? java web项目答辩总结试题 注释:用楷体写的就是用自己组织的话来回答老师的问题. 1 http协议全名和特点 (答辩老师:你对HTTP的是怎么理解的: 答辩同学:首先HTTP是一种超文本传输协议,也是一种无状态的协议.        

整合微信小程序的Web API接口层的架构设计

在我前面有很多篇随笔介绍了Web API 接口层的架构设计,以及对微信公众号.企业号.小程序等模块的分类划分.例如在<C#开发微信门户及应用(43)--微信各个项目模块的定义和相互关系>介绍了相关模块的划分,在<基于微信小程序的系统开发准备工作>介绍了Web API的架构设计思路.本篇随笔对之前介绍的架构内容进行统一的调整更新,以便更加方便实际项目的应用开发,以期达到统一.重用.清晰的目的. 1.公众号.企业号.小程序模块的划分 我们知道,目前微信企业应用,分为公众号.企业号(企业

Java web项目为什么要单独配置环境变量?

问题描述 Java web项目为什么要单独配置环境变量? Spring的配置文件中的代码如下: class=""org.springframework.beans.factory.config.PropertyPlaceholderConfigurer""> 在运行项目的时候需要配置环境变量之后才能运行,这事为什么呢?希望大神们可以帮我解惑一下,谢谢! 解决方案 这不是配置环境变量 写xxx.properties文件 是为了方便以后项目完成后,在不改变源码的情

Java Web项目经常提示错误

Java Web项目经常提示错误"This project needs to migrate WTP metadata",简单的解决方法就是右击项目然后选择Validate,做完validate后错误就消失了. 出处:http://stevex.blog.51cto.com/4300375/941669

eclipse上搭建maven多模块Java Web项目

1.模块化需求及项目模块说明 手头上有个已上线的系统,但因老板的特殊要求,系统需要不断的修改.还有就是公司市场部不定期地在举行一些微信活动,每一个活动都是周期性的,活动完了这个功能就要在系统中移除. 系统中就有三种模块:已经在系统中正常运行不需要再变更的模块.经常性变更的模块.用完就要移除的活动模块. 所以,我们需要把项目分成了下面几个模块. 简单说明一下: timetable-common是常用工具包存放的模块. wechat-api是微信接口模块,此模块用到了timetable-common

Java Web项目中使用Socket通信多线程、长连接的方法_java

很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接如一个硬件设备,通过tcp通信,获取设备传上来的数据,并对数据做回应. 先看一下web的监听代码: import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class

java web项目利用freeMarker导出word

问题描述 java web项目利用freeMarker导出word 在项目中导出word,利用freeMarker有这样几个问题,求解答 1.如果单独用java项目是可以的,但是放到项目中导出的word打开时会说被程序锁定,然后打开什么内容都没有,查看属性是有字节数. 2.导出的word地址是在后台控制的,如何做到在浏览器弹框选择地址? 解决方案 你是导出word还是导出Excel?导出一般都是调用浏览器本身的下载功能,有的浏览器会让你选择路径,比如360浏览器,有的就不会了,你如果要做一个通用