DAO模式是什么?
解决方案 »
- 求高手赐教ajax搜索引擎
- 菜鸟问题
- struts2标签自动换行问题
- 配置HibernateMappingFile的时候出现的错误
- 求助:我用WSDL2java生成了四个客户端java文件后,再怎么编写客户端去访问啊?
- 女汉子迷茫了,求正能量求正能量~~
- 有谁能给个jdbc连接sql数据的例子?
- 如何监听窗口最大化事件
- struts架构中的国际化问题
- 是不是java的BS项目里一个实体类对应的一个表 实体类一般都设置主键 对吗
- log4j 可否在程序不出错的时候不生成 error.log
- weblogic后台抛出大量的java.lang.ArrayIndexOutOfBoundsException
就可以把Driver. URL. username, passpword这一些放在DAO中
以后要更改数据库的类型.比如要把MSSQL换成Oracle的话..只需要更改DAOFacory里面的getConnection()里面的Driver.URL.之类的..
2. DAO也是把对数据库的操作(比如最基本的CRUD操作)全部封装在里面..
比如说你要你要插入一个新的用户..那么.在DAO中我们只需要提供一个insertUser(User user)这一个方法就可以了..具体的操作是在DAO中实现的...
那么对于要调用DAO的时候.我们只要知道insertUser(User)是用来插入一个新的用户...而不需要知道是如何实现的。 一般 DAO是与Abstract Factory模式一起来用的... Factory来建立数据库和定位具体的DAO(比如说是UserDao..CustomerDao..)..一般将getConnection设置为static..也可以把HibernateSessionFactory这一个公共类放在这一AbstractFactory类中去
StockBean .java // 与数据表对应
StockAction.java //定义接口 public void SaveBean();
StockActionDao.java // 做具体的实现 ,创建数据库连接啊,取得bean里的数据拉,insert xx表拉.比如你创建了一个bean 对应一张表(如库存)。
web 页面对应一个表单。表单---保存提交到 actiondo.jsp
------actiondo.jsp----------
StockBean sb = new StockBean();
sb.setAmount(request.getParameter("amount"));
...............收集表单数据StockAction sa = new StockActionDao();
sa.saveBean(sb);
--------------------OK-----------------------
比如你有个用户名密码要存数据库里,封装的用户对象就是DTO,也就是要传输给数据库的数据.DAO是访问层,用来把DTO提交给数据库,并做操作.后来有了Hibernate,出来了持久层什么的,仅仅数据库的DAO和DTO消失了一段时间.不过Hibernate不是很争气,难以解决很多问题,所以DAO又复活了,并且一直活到现在.不过DTO很少有人在提了.
个人赞同最开始的观点,DAO的表述比较无聊,有没有无所谓.围绕这个概念,和不围绕它做出来的东西,没有实质性差别.
其实就是所谓的底层 和持久层
主要是和数据库打交道的 从数据库获取数据
然后在将数据传递给业务逻辑层
在自己写个
可怜的Hibernate,
可怜的EJB3.0