读书人

分层的有关问题

发布时间: 2012-01-30 21:15:58 作者: rapoo

分层的问题
我先在用 myeclipse做web方面的练习,看到网上说的分层我大概也知道些但是总是不那么理解的透彻。比如我用struts框架和jdbc方式做一个用户登陆验证的小程序,如果数据库里有这个用户的话登陆成功就转向成功页面,失败了提示用户不存在就这么简单的功能。我能简单的完成这个功能像这样,比如我在com.dao包下建了一个DB.java这个类里面写了一个与数据库连接,根据穿过来的参数查询函数结果返回一个boolean类型。


然后我在:LoginAction里完成这个函数的调用例如DB.hasUser(username);

但是这样我觉得分层分的不好,我看别人的程序是把数据库的操作放在一个DAO里,然后有建了一个什么manager的东西来掉用DAO里的东西,还有在actionForm的基础上有建了一个和它对应的类,这个我就不明白是为什么?

还有什么是pojo,vo,dal,bo都对应什么啊?谢谢明白的人给我好好讲讲,谢谢了各位

[解决办法]
把数据库的操作放在一个DAO里,这个是别人用了spring和hibernate框架,actionForm是采用了struts框架,它和jsp页面上的表单数据是对应的,
其实别人采用的就是spring+hibernate+struts框架的整合,因为该框架采用的是MVC模式,就是把model(模型层)、view(表示层)、control(控制层)
分隔开来,模型层就是所谓的javabean,表示层就是jsp页面和actionForm,控制层就是action等。
楼主去了解一下spring+hibernate+struts框架,自然就会明白了。
[解决办法]
个人感觉,你说的那个manager应该是业务逻辑层,你用struts其实是实现了一个控制的功能,也就是MVC中的C,当一个请求过来的时候由struts来控制调用那些业务逻辑来处理这个请求,也就是action调用manager,struts本身或者说action中不应该涉及到业务逻辑。具体到你说的这个登陆我觉得你应该写一个LoginManager,在这里面写登陆验证的逻辑,然后用action调用这个manager,这个manager再调用你的dao层来完成这个操作。dao层主要封装数据库操作,也不应该涉及业务逻辑。
[解决办法]
分层一般按照MVC来分,我的项目的分层:
com.yourcompany.bo 和数据库表对应的对象包,比如有user表,那么有User类,类中属性对应表的字段
com.yourcompany.dao 访问数据库的类,类中写访问数据库的方法,比如你从数据库中得到所有记录
com.yourcompany.service 实现业务逻辑,比如你例子中的验证用户名密码,他调用dao的方法得到数据库数据
com.yourcompany.action 控制功能不用说了啊
com.yourcompany.form 和表单对应得类,也不用说了

pojo 最原始最古老的Java类
vo 值对象

读书人网 >J2EE开发

热点推荐