请问java项目 里的DAO,model,service, IMPL 是啥意思,以及有啥关系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问java项目 里的DAO,model,service, IMPL 是啥意思,以及有啥关系相关的知识,希望对你有一定的参考价值。
是SSH架构的工程吗?代表了三层吧,model是实例,service提供各种方法,dao实现各种方法,impl指implement,即实现,service和dao都需要impl,dao内部的方法一般是实现与数据库交互的,而model一般就是数据库中表的实例 参考技术A 在一般工程中基本上都会出现上述的字眼
首先
DAO
提供了应用程序与数据库之间的操作规范
和操作
用于通常数据库的增删查改
一般如果使用框架
都是由框架自动生成,提高访问效率和便于快速开发。hibernate的DAO中
提供了关于事物
数据读取
修改
删除
添加
这些逻辑
还依赖于下面提到的Model
Model
为了便于理解业务和代码可读
美观
通常将数据库表
作为对象封装,对象封装中提供属性
一般操作DAO类的时候
传入的是Model
通过
hibernate的映射文件
映射到数据库字段也就是通常说的
通过实体类操作数据库
IMPL
以IMPL
结尾的类
一般是实现了某个或多个接口的类
这些类的接口
是定义了一些规范的类通常是数据访问等等
在service
中
会通过spring的注入
注入这些接口来实现逻辑
service
一般在service的实现类
会出现在action中。这些service
提供了包含逻辑的数据访问
举个例子
在
项目中需要将查询出来的所有数据的某个值加1
那么
在service
中
就会做一次循环
从查询出来的Model
集合中
将值取出来
+1
它们的协作关系如下
web页面--->Action---->service---->interface---->IMPL---->DAO---->DATABASE 参考技术B DAO
:
data
access
object
与数据库交互的相关JAVA代码写在这,比如对DATABASE的增删改查;
model:存放模型,通常是实体BEAN,也就是你业务建模分析出来的那些
actor等实物类;
service:是后来网上大多数人经验总结出来,从而增加了这么一个层次,主要是为了降低耦合,面向接口、组件编程,具体的服务类,能产生实际效果和影响的类放于此; 参考技术C DAO层里面一般是数据库的操作
model层里面一般是一些JavaBean,定义一些类对象
impl层定义一些了接口
service层的话一般可以不用
java中bean类,action类,model类,util类,dao等的作用是啥啊?
bean类:是一些实体类,包括viewbean,databean等等。action类:可作为接收显示层的数据,连接显示层和业务逻辑实现层的控制层。
model类:MVC中model层就是到层。在java中无特殊含义就是模块。
util类:工具类
dao:数据库操作类。对数据库进行曾删改查等操作 参考技术A bean 就是基本的JavaBean ,多为实体
action类 是 操作方法,对于页面Form 表单的操作方法,具体操作方法的实现就在Action 类里面。
model类 是模块,这个不清楚你提的是哪一块,是想问MVC 中的M,还是某段代码中的model.
util类,多为工具类,不知道这里你问的JDK中的Util类,还是一般通常程序员自己写Util类?
JDK中util的基本都是容器、集合相关的类。
至于dao ,就是数据库操作类,对于数据库的增删改查的操作都在这里。 参考技术B ButtonCt1这个应该是你自己定义的类
不是系统的
public class ActionEventextends AWTEvent指示发生了组件定义的动作的语义事件。当特定于组件的动作(比如被按下)发生时,由组件(比如 Button)生成此高级别事件。事件被传递给每一个 ActionListener 对象,这些对象是使用组件的 addActionListener 方法注册的,用以接收这类事件。
注:要使用键盘在 Button 上触发 ActionEvent,请使用空格键。
实现 ActionListener 接口的对象在发生事件时获得此 ActionEvent。因此,侦听器不必处理个别鼠标移动和鼠标单击的细节,而是可以处理像“按下按钮”这样的“有意义”(语义)事件。
ActionEvent
public ActionEvent(Object source,
int id,
String command)构造一个 ActionEvent 对象。
注意,传入无效 id 会导致未指定的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。为 null 的 command 字符串是合法的,但不建议使用。
参数:
source - 发起事件的对象
id - 标识事件的整数
command - 一个字符串,它可以用来指定与事件所相关的一条命令(可能是几个中的一个)
抛出:
IllegalArgumentException - 如果 source 为 null
--------------------------------------------------------------------------------
ActionEvent
public ActionEvent(Object source,
int id,
String command,
int modifiers)使用组合键构造一个 ActionEvent 对象。
注意,传入无效 id 会导致未指定的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。为 null 的 command 字符串是合法的,但不建议使用。
参数:
source - 发起事件的对象
id - 标识事件的整数
command - 一个字符串,它可以用来指定与事件所相关的一条命令(可能是几个中的一个)
modifiers - 进行此动作期间按下的组合键
抛出:
IllegalArgumentException - 如果 source 为 null
--------------------------------------------------------------------------------
ActionEvent
public ActionEvent(Object source,
int id,
String command,
long when,
int modifiers)使用指定组合键和时间戳构造一个 ActionEvent 对象。
注意,传入无效 id 会导致未指定的行为。如果 source 为 null,则此方法抛出 IllegalArgumentException。为 null 的 command 字符串是合法的,但不建议使用。
参数:
source - 发起事件的对象
id - 标识事件的整数
command - 一个字符串,它可以用来指定与事件所相关的一条命令(可能是几个中的一个)
when - 发生事件的时间
modifiers - 进行此动作期间按下的组合键
抛出:
IllegalArgumentException - 如果 source 为 null
参考技术C bean一般都是一些实体类,dao通常用于访问数据库。 参考技术D 参照例子仿写一个稍完整的Struts2或者MVC项目,你得到的解释要比二楼的答案更清晰,试试
以上是关于请问java项目 里的DAO,model,service, IMPL 是啥意思,以及有啥关系的主要内容,如果未能解决你的问题,请参考以下文章
web里的action、dao/model、service、util是干啥的?