首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件设计DAO该如何设计

关于Dao设计我现在也还是有点模糊,大大小小的项目也做了五六个了,负责的数据库设计也有三四个了。...在对Dao进行设计时采用过两种方案: 方案一:每一表对应一个Dao类(接口也可),每个Dao将完成对该表的增删改查以及业务上要求的查询操作。...该如何设计的问题,最直接的设计方案就是每一个表对应一个Dao,说是代码重复太多,不过这样设计那些基本的代码是不用写的,都有现成的工具,直接根据表生成对应的增删改查。   ...2.设计一个dao,上面所有的业务都调用这个dao的接口,这样就实现了软件的重用性。 3.dao的存在使得业务逻辑跟访问数据库的代码分开了。...等等 how:通过以上的why的分析,我们在设计dao的时候,要注意: 1.提供丰富的接口供用户调用, 2.在dao中不能涉及业务内容,一个dao接口就对应一次数据库操作(是原子性的)

1.4K30

Dao和Mapper

目录 MapperDAO: 对比 其实用起来二者一样 Mapper: 定义: Mapper 是 MyBatis 中的一个术语,指的是用于描述如何映射数据库中的数据到 Java 对象的接口。...: 定义: DAO 是一个更通用的设计模式,用于封装与数据存储交互的逻辑。...DAO 相对更加抽象,可以在不同的数据访问技术之间切换,提供更大的灵活性。 命名规范: Mapper 接口方法通常直接与 SQL 语句对应,方法名和 SQL 语句之间的映射关系更为直观。...DAO 接口方法可以根据业务逻辑进行更灵活的命名,而不受 SQL 语句的限制。...在实际项目中,Mapper DAO 有时会交替使用或者同时存在,具体的选择会根据项目的需求、技术栈和团队的开发习惯而定。

62010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    持久(数据,Dao) MyBatis框架「建议收藏」

    所谓的持久就是把数据可以永久保持的存储到设备中,不像放到内存中那样断电就消失,一般来说,持久为直接的理解就是对数据库的各种操作,如CRUD(增加,删除,修改,查询),更新等操作 持久,就是把持久的动作封装成一个独立的...MyBatis是一个优秀的持久框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数...MyBatis是一个优秀的持久框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数

    1.4K10

    JDBC——DAO设计

    DAO设计 什么是DAO 编写DAO接口 DAO接口实现 编写其他工具类 什么是DAO 里面包含用来操作数据库各种方法,操作数据库时只需要调用其中的方法 编写DAO接口 首先一个表对应一个类,一个对象对应一条记录...); stu.setId(1); stu.setName("张三"); stu.setAge("19"); /* 创建完一个对象 , 然后想把它添加到表中 */ IStudentDao dao...= new StuDaoImp(); dao.add(stu);// 这样就可以完成插入操作了 DAO接口 public interface IStudentDao { /** * 保存一个学生...接口的实现 public class StuDaoImp implements DAO { @Override public void add(Student stu) { String...给这个未知对象设置属性: 怎么知道它这个结果集的列名 只有知道列字段名才能得到这个字段的值re.getObject("字段名") 才能给这个对象对应的属性设值obj.setObject(re.getObject) 在写设计

    59730

    SpringBoot项目中modelDao、Mapper、controller、service、entity作用

    2dao(mapper) 又被成为mapper,叫数据持久,先设计接口,然后在配置文件中进行配置其实现的关联。dao的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。...数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中 3service 业务逻辑,完成功能的设计dao一样都是先设计接口,再创建要实现的类...接下来就可以在service调用dao的接口进行业务逻辑应用的处理。...service的impl是把mapper和service进行整合的文件 封装Service的业务逻辑有利于业务逻辑的独立性和重复利用性。...4controller 控制,控制业务逻辑service,控制请求和响应,负责前后端交互 controller主要调用Service里面的接口控制具体的业务流程,控制的配置也要在配置文件中进行 5

    5.1K20

    java框架中的controllerdao、domain、service、view

    2.daoDAO主要是做数据持久的工作,负责与数据库进行联络的一些任务都封装在此,      DAO设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理...,但是封装的数据是前端的JS脚本,需要使用的数据 4.service:Service主要负责业务模块的逻辑应用设计。      ...同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。...2.对于MVC模式,MVC本身并不属于设计模式的一种,它是一种设计结构,这种结构的最终目的是为了解耦,也就是不同逻辑的代码自身改变的时候,你别影响其他。...那么对于Service,就是 Servlet 和 Dao 之间缓冲的。通过这一来进行解耦,使得 Dao 内的变化不会直接影响到 Servlet

    1.5K20

    java框架中的controllerdao、domain、service、view

    2.daoDAO主要是做数据持久的工作,负责与数据库进行联络的一些任务都封装在此, DAO设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理...,但是封装的数据是前端的JS脚本,需要使用的数据 4.service:Service主要负责业务模块的逻辑应用设计。...同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。...2.对于MVC模式,MVC本身并不属于设计模式的一种,它是一种设计结构,这种结构的最终目的是为了解耦,也就是不同逻辑的代码自身改变的时候,你别影响其他。...那么对于Service,就是 Servlet 和 Dao 之间缓冲的。通过这一来进行解耦,使得 Dao 内的变化不会直接影响到 Servlet

    6.3K32

    JAVA中Action, Service ,modelDao的功能区分

    集成SSH框架的系统从职责上分为四:表示、业务逻辑、数据持久和域模块,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。...Dao主要做数据库的交互工作 Model 是模型 存放你的实体类 Service 做相应的业务逻辑处理 Action是一个控制器 最基本的分层方式,结合了SSH架构。...Dao,一般可以再分为***Dao接口和***DaoImpl实现类,如userDao接口和userDaoImpl实现类,接口负责定义数据库curd的操作方法,实现类负责具体的实现,即实现Dao接口定义的方法...Service,引用对应的Dao层数据库操作,在这里可以编写自己需要的代码(比如简单的判断),也可以再细分为Service接口和ServiceImpl实现类。...对象的调用流程:JSP—Action—Service—DAO—Hibernate—数据库。

    26620

    JAVA中Action, Service ,modleDao的功能区分

    Dao是使用了Hibernate连接数据库、操作数据库(增删改查)。Service:引用对应的Dao数据库操作,在这里可以编写自己需要的代码(比如简单的判断)。...Action是一个控制器 首先解释面上意思,service是业务dao是数据访问。...我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一代码,不会影响我其他代码,如果你会像spring...初期也许都是new对象去调用下一,比如你在业务new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。...,有些不需要与数据库打交道而直接是一些业务处理,这样就需要我们整合起来到service中去,这样可以起到一个更好的开发与维护的作用,同时也是MVC设计模式中model功能的体现 最基本的分层方式,结合了

    95030

    JAVA中Action, Service ,modelDao的功能区分

    集成SSH框架的系统从职责上分为四:表示、业务逻辑、数据持久和域模块,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。...Dao主要做数据库的交互工作 Model 是模型 存放你的实体类 Service 做相应的业务逻辑处理 Action是一个控制器 最基本的分层方式,结合了SSH架构。...Dao,一般可以再分为***Dao接口和***DaoImpl实现类,如userDao接口和userDaoImpl实现类,接口负责定义数据库curd的操作方法,实现类负责具体的实现,即实现Dao接口定义的方法...Service,引用对应的Dao层数据库操作,在这里可以编写自己需要的代码(比如简单的判断),也可以再细分为Service接口和ServiceImpl实现类。...对象的调用流程:JSP—Action—Service—DAO—Hibernate—数据库。

    1.3K30

    DAO设计模式的理解

    为了降低耦合性,提出了DAO封装数据库操作的设计模式。 它可以实现业务逻辑与数据库访问相分离。相对来说,数据库是比较稳定的,其中DAO组件依赖于数据库系统,提供数据库访问的接口。...一般的DAO的封装由以下另个原则:   一个表对应一个表,相应地封装一个DAO类。   对于DAO接口,必须由具体的类型定义。这样可以避免被错误地调用。...----  在DAO模式中,将对数据的持久化抽取到DAO,暴露出Service让程序员使用,这样,一方面避免了业务代码中混杂JDBC调用语句,使得业务落实实现更加清晰。  ...通常我们创建一个包,用于保存DAO接口,再创建一个包,用于保存DAO接口的实现类即可。  ...下面展示一个DAO接口实例Manage: public interface Manage { /*插入(insert)操作--->方法名(插入的数据1,插入的数据2,……)-->返回T|F*/

    92220

    好好编程-物流项目05【Dao整合】

    Dao整合 1.项目结构 ? 2.添加配置文件   spring和mybatis的整合我们有两个配置文件要添加,分别是spring的配置文件和mybatis的配置文件。但是这两个配置文件放在哪儿呢?...我们在applicationContext-dao.xml文件当中配置数据库连接池、SqlSessionFactory(Mybatis的连接工厂)、Mybatis映射文件的包扫描器,配置内容如下 <?...因为数据库的映射文件我们放在了logistics-manager-dao的resource目录下的mapper文件夹下一样会被打包到jar中,所以我们在配置文件中额外添加这行配置 <!...characterEncoding=utf-8 jdbc.username=root jdbc.password=123456 注意:配置文件中千万不要有空格,否则会连不上数据库,请大家一定要仔细检查 到此Dao...配置完成~

    45720
    领券