dao层怎么写

1. Dao层方法怎么写

dao完成连接数据库修改删除添加等的实现细节,例如sql语句是怎么写的,怎么把对象放入数据库的

service层是面向功能的,一个个功能模块比如说银行登记并完成一次存款,UI要把请求给service层,然后service曾将这一个case分解成许多步骤调用底层的实现完成这次存款,dao就是下面那层

dao就是把数据存起来,之所以service的方法会有雷同只不过是因为service得需求不是很复杂不用再service里面完成太多包装或者处理过程可以直接调用dao的方法就完成的请求处理例如就要save一个对象,而这个对象是封装好的,dao里面有个方法专门save封装好的对象于是service的方法就仅仅调用一下就o了,函数签名自然很像了

service不能直接接触持久层,而dao是持久层或者直接访问持久层

有的时候只是为了分层清楚,为了将来scale up的时候方便我们才把service和dao分开,其实没必要分开的

2. 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(。

);dao.save()dao.delete。.-------------------------------------------------------------------------1.有一个dao接口,里面有平时的增删查该的方法2.有一个具体的实体类3.有一个dao的实现类,有对实体操作的方法,继承1的接口4.如果有需要,还可以有一个工厂类,负责生产dao实现类---------------------------------------------------------------------------DAO层一般有接口和该接口的实现类! 接口用于规范实现类! 实现类一般用于用于操作数据库! 一般操作修改,添加,删除数据库操作的步骤很相似,就写了一个公共类DAO类 ,修改,添加,删除数据库操作时 直接调用公共类DAO类!-----------------------------------------------------------------------------com.公司名.系统名.模块名 代码目录结构Action : 负责页面逻辑,将调用service的结果返回到页面中Service : 接口定义---impl 接口的实现,负责业务逻辑Domain 对应数据库表的pojoDao : 只负责连接数据库,从数据库中查询结果,包装成对象后返回util :工具类。

3. dao层的父接口ibasedao怎么写

接口是为了屏蔽不同数据库的JDBC实现差异而出现的。

以常见的系统组织结构为例,管理系统里有一个部门department表用于存放部门信息,因为部门下面可能有子部门所以表中的字段要定义成类似树形结构的方式(parentId呀什么的)。这时我们想在java中用sql去查询指定部门下的数据,你就要考虑不同数据库的SQL语句的问题了:Oracle sql提供了树查询的方法,你只需要发一句sql就能查询出该部门下的所有子部门信息;但是mysql就不行,mysql就只能通过java递归一条一条查询。那么假如我们的系统即要支持Oracle又要支持mysql,这时我们查询部门怎么办呢?这时就要考虑接口,看下面的代码:

首先定义一个部门接口,该接口有一个findDept方法用于查询部门下的所有子部门

Interface DepartmentDao{

//根据父部门ID查询部门下的所有子部门

public List findDept(int deptId);

}

有了接口,我们就需要有实现类了,这时我们为了考虑兼容性就需要编写两套接口类,一个是用mysql语句实现的类,另一个是用Oracle实现的类:

class MySqlDepartmentDaoImpl implement DepartmentDao{

//根据父部门ID查询部门下的所有子部门

public List findDept(int deptId){String sql="mysql的sql语句"。..}

}

class OracleDepartmentDaoImpl implement DepartmentDao{

//根据父部门ID查询部门下的所有子部门

public List findDept(int deptId){String sql="Oracle的sql语句"。..}

}

一个Dao工厂,这个工厂返回部门Dao接口的实例

class DaoFactory{

public DepartmentDao getDepartmentDao(){

if(使用的是Mysql数据库){

return new MySqlDepartmentDaoImpl ();

}else{

return new OracleDepartmentDaoImpl ();

}

}

}

上面的编码DaoFactory是关键,通过这个这个工厂只返回给我们接口实例,这样就屏蔽了不同数据库的差异性(如果用户使用的是mysql数据库就会返回new MySqlDepartmentDaoImpl ()反之为new OracleDepartmentDaoImpl ())。我们在编码中只需要通过DepartmentDao deptDao = DaoFactory.getDepartmentDao();deptDao.findDept就可以查询我们需要的数据了。

所以面向接口编程是很重要的东西,建议你学习一下spring的IOC,代码写多了你就明白接口的重要性了

4. hibernate的Dao层应该怎么改写

这种东西很常见,只是关于参数的问题的 可以这么实现,

比如你的参数是有1,2,3 那service层就写这3个参数的方法。

然后再dao层进行参数的判断,比如你只要查1,3限制条件的,

那service层上面层的action层里往service层传参数时候2应该是等于null,因为没有选2不是吗

那就在dao层对每个1,2,3参数进行判断

比如 1,3

可以写成

from XXX表

where

if(XXX1!=NULL){写1的限制}else{}

if(XX2!=null){写2的限制}else{}

if(xxx3!=null){写3的限制}else{}

只是在正常的共用语句之前进行了判断

希望对你有所帮助

5. 用 String 注解Dao 层,用main方法测试怎么写

如果Spring管理Dao,则不能使用原有的直接实例化的方式得到Dao对象,而必须是通过创建Spring配置文件对象的方式,从配置文件中提取出dao对象的方式,代码如下:

public static void main(String[] args){

//得到Spring配置文件对象

ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");

//从配置文件中取出id为udao的UserDao的对象

UserDao userDao=(UserDao)context.getBean("udao");

List<User> list=userDao.getUsers();

}

6. hibernate的Dao层应该怎么改写

这种东西很常见,只是关于参数的问题的 可以这么实现,比如你的参数是有1,2,3 那service层就写这3个参数的方法。

然后再dao层进行参数的判断,比如你只要查1,3限制条件的,那service层上面层的action层里往service层传参数时候2应该是等于null,因为没有选2不是吗那就在dao层对每个1,2,3参数进行判断比如 1,3可以写成 from XXX表whereif(XXX1!=NULL){写1的限制}else{}if(XX2!=null){写2的限制}else{}if(xxx3!=null){写3的限制}else{}只是在正常的共用语句之前进行了判断希望对你有所帮助。

7. java中Dao模式怎么分的层 啊

你好,你的问法本身有些不妥,dao就属于应用中的一层。可能你想说的是以下的情况:

初级DAO模式:

例如::写一个类 操作1张表 针对这张表的所有操作都以方法的形式写在这个类中 1个操作对应1个方法要求是外部通过调用这个类的方法达到操作某张表的目的时不需要写任何和数据库以及JDBC相关的代码,这个类的命名就是XXDAO

比如表叫做 t_goods 商品表那么操作它的DAO就叫GoodsDAO

高级DAO模式:

例如:即DAO工厂模式,多个XXDAO实现同一个接口或者继承同一个基类,编写一个工厂类通过工厂模式(简单工厂模式或利用反射动态加载均可)获得接口或基类对象,内部实际上封装返回的是具体的XXDAO类的对象。简单的说即是在1的基础上将创建具体的XXDAO对象的方式由new变为工厂模式实现

例如:UserDAO dao = DAOFactory.create(。);

dao.save()

dao.delete。.

转载请注明出处育才学习网 » dao层怎么写

知识

教程怎么写

阅读(156)

本文主要为您介绍教程怎么写,内容包括谁知道大学老师平面设计的教程怎么写,三步作文法教程怎样,写作教程:怎样写看图作文。看你是教什么内容的啊,要是软件方面得话可以把工具进行分类,配合一些图片实际操作来讲,课后可以布置简单相关的作业,至于

知识

女字旁怎么写

阅读(172)

本文主要为您介绍女字旁怎么写,内容包括字怎么写以及女字旁,要图最好,女字旁的字,女字旁的字书法写法。女字旁的字书法写法:

知识

用楷书怎么写

阅读(177)

本文主要为您介绍用楷书怎么写,内容包括楷体字怎么写,用楷体怎么写,&#39;&#39;条‘’字用楷书怎样写。要想写好楷体字必须掌握好笔法和字法. 执笔苏东坡说:“把笔无定法,要使虚而宽.”五指执笔法:即以拇指和食指的指肚捏住笔杆(适当高度),保

知识

鹰怎么写

阅读(212)

本文主要为您介绍鹰怎么写,内容包括老鹰的鹰怎么写,鹰字怎么写好看,鹰怎么写。【鹰】字想写得好看,可使用行书或者草书。【行书】给人轻松与活泼的感觉。【草书】给人豪放与潇洒的感觉。【鹰字全新硬笔行书简体写法】

知识

考核总结怎么写

阅读(169)

本文主要为您介绍考核总结怎么写,内容包括2019年年度考核个人总结怎么写,年底考核的个人工作总结怎么写好呢,怎么写考试总结。范例如下,可根据自己的职业情况适当增减:本年度,在领导的关心、指导和同事们的帮助、支持下,我严格要求自己,勤奋学习

知识

模特怎么写

阅读(186)

本文主要为您介绍模特怎么写,内容包括应聘模特简历怎么写,(模特)的英文怎么写,试衣模特怎么写简历。■ 内容主题多花心思 注意一:邮件标题要“抓”人试想,招聘企业的邮箱里几乎每天都躺着几百封邮件,一封主题是“求职信”的邮件根本引不起人事

知识

晨字怎么写

阅读(186)

本文主要为您介绍晨字怎么写,内容包括早晨的晨字怎么写,清晨的晨字怎么写,晨字拼音怎么写。

知识

日的拼音怎么写的

阅读(205)

本文主要为您介绍日的拼音怎么写的,内容包括《日》字的拼音怎么写呀,日字的拼音是什么,日的拼音怎么写。天拼音为:tiān释义:在地面以上的高空:天空。天际。天罡(北斗星)。天渊(上天和深渊,喻差别大)。2、在上面:天头(书页上面的空白)。

知识

标书服务方案怎么写

阅读(1198)

本文主要为您介绍标书服务方案怎么写,内容包括做标书服务方案怎么写,政府购买投标服务方案怎么写,投标书商务文件中各阶段设计服务方案怎么写。原发布者:教育教学文库投标服务方案范本 江干区民政局培训服务 投标文件 招标编号:HZTH520XX01投

知识

请款函怎么写

阅读(229)

本文主要为您介绍请款函怎么写,内容包括我想问一下,请款函怎么写啊,我是景观公司,需要管甲方要项目费用,请问请款函怎么写大概内容如下:我司(快递公司)与某客户做月,请款申请怎么写。进度款申请函致: 公司:我司按照贵公司的要求,于 年 月 日已经

知识

客服总结怎么写

阅读(141)

本文主要为您介绍客服总结怎么写,内容包括客服怎么写总结,客服工作总结怎么写,客服的工作总结怎么写。原发布者:uq5gw9斗转星移,进入桂龙堂已四个多月,我一直从事客服咨询专员工作,在这段时间里目睹了也参与了公司的发展和制度的日臻完善,

知识

了笔顺怎么写

阅读(192)

本文主要为您介绍了笔顺怎么写,内容包括大写M手写体先后笔画怎么写,了字的笔顺怎么写呀,了的笔顺怎么写的。写 xiě部首笔画部首:冖 部外笔画:3 总笔画:5五笔86:PGNG 五笔98:PGNG 仓颉:BYSM笔顺编号:45151 四角号码

知识

规律怎么写

阅读(181)

本文主要为您介绍规律怎么写,内容包括规律题,怎么写啊14.观察下列3组数第一组:1,4,9,16,25,.第二组:,规律怎么写呢,不知道怎么写下一个规律。[ guī lǜ ]1.自然界和社会诸现象之间必然、本质、稳定和反复出现的关系2.有节奏的;不是杂乱的规律

知识

概念怎么写

阅读(174)

本文主要为您介绍概念怎么写,内容包括建筑设计概念怎么写,论文的概念设计怎么写,概述怎么写(关于某一个概念的)。设计概念主要是你设计时考虑的最核心的观念。阐述设计概念一般可以从你的设计表达的观念以及通过什么方式表达的两方面进行阐释

知识

DUDAO路由器怎么设置

阅读(259)

方法如下。1.进入主路由器的设置界面,然后在左侧选项条中点击运行状态,在WAN口状态栏可以找到DNS服务器,一共有两个,主DNS和备选DNS服务器,记录下来。2.点击网络参数LAN口设置,把路由器的LAN地址设置为常用用户网保存,此时会重启重启后回到设置

[/e:loop]