精华内容
下载资源
问答
  • javadao什么意思

    千次阅读 2020-12-22 18:05:36
    DAO 模式 DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。 对外提供相应的接口 在面向对象设计过程中,有一些"套路”...

    DAO 模式

    DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。

    对外提供相应的接口

    在面向对象设计过程中,有一些"套路”用于解决特定问题称为模式。

    DAO 模式提供了访问关系型数据库系统所需操作的接口,将数据访问和业务逻辑分离对上层提供面向对象的数据访问接口。

    从以上 DAO 模式使用可以看出,DAO 模式的优势就在于它实现了两次隔离。

    • 1、隔离了数据访问代码和业务逻辑代码。业务逻辑代码直接调用DAO方法即可,完全感觉不到数据库表的存在。分工明确,数据访问层代码变化不影响业务逻辑代码,这符合单一职能原则,降低了藕合性,提高了可复用性。
    • 2、隔离了不同数据库实现。采用面向接口编程,如果底层数据库变化,如由 MySQL 变成 Oracle 只要增加 DAO 接口的新实现类即可,原有 MySQ 实现不用修改。这符合 "开-闭" 原则。该原则降低了代码的藕合性,提高了代码扩展性和系统的可移植性。

    一个典型的DAO 模式主要由以下几部分组成。

    • 1、DAO接口: 把对数据库的所有操作定义成抽象方法,可以提供多种实现。

    • 2、DAO 实现类: 针对不同数据库给出DAO接口定义方法的具体实现。
    • 3、实体类:用于存放与传输对象数据。
    • 4、数据库连接和关闭工具类: 避免了数据库连接和关闭代码的重复使用,方便修改。
    • DAO 接口:

      public interface PetDao {
          /**
           * 查询所有宠物
           */
          List<Pet> findAllPets() throws Exception;
      }

      DAO 实现类:

      public class PetDaoImpl extends BaseDao implements PetDao {
          /**
           * 查询所有宠物
           */
          public List<Pet> findAllPets() throws Exception {
              Connection conn=BaseDao.getConnection();
              String sql="select * from pet";
              PreparedStatement stmt= conn.prepareStatement(sql);
              ResultSet rs=    stmt.executeQuery();
              List<Pet> petList=new ArrayList<Pet>();
              while(rs.next()) {
                  Pet pet=new Pet(
                          rs.getInt("id"),
                          rs.getInt("owner_id"),
                          rs.getInt("store_id"),
                          rs.getString("name"),
                          rs.getString("type_name"),
                          rs.getInt("health"),
                          rs.getInt("love"),
                          rs.getDate("birthday")
                          );
                      petList.add(pet);
              }
              BaseDao.closeAll(conn, stmt, rs);
              return petList;
          }
      }

      宠物实体类(里面get/set方法就不列出了)

      public class Pet {
          private Integer id;    
          private Integer ownerId;    //主人ID
          private Integer storeId;    //商店ID
          private String name;    //姓名
          private String typeName;    //类型
          private int health;    //健康值
          private int love;    //爱心值
          private Date birthday;    //生日

      连接数据库

      public class BaseDao {
          private static String driver="com.mysql.jdbc.Driver";
          private static String url="jdbc:mysql://127.0.0.1:3306/epet";
          private static String user="root";
          private static String password="root";
              static {
                  try {
                      Class.forName(driver);
                  } catch (ClassNotFoundException e) {
                      e.printStackTrace();
                  }
              }
              
          public static Connection getConnection() throws SQLException {
              return DriverManager.getConnection(url, user, password);    
          }
          
          public static void closeAll(Connection conn,Statement stmt,ResultSet rs) throws SQLException {
              if(rs!=null) {
                  rs.close();
              }
              if(stmt!=null) {
                  stmt.close();
              }
              if(conn!=null) {
                  conn.close();
              }
          }
          
      
          public int executeSQL(String preparedSql, Object[] param) throws ClassNotFoundException {
              Connection conn = null;
              PreparedStatement pstmt = null;
              /* 处理SQL,执行SQL */
              try {
                  conn = getConnection(); // 得到数据库连接
                  pstmt = conn.prepareStatement(preparedSql); // 得到PreparedStatement对象
                  if (param != null) {
                      for (int i = 0; i < param.length; i++) {
                          pstmt.setObject(i + 1, param[i]); // 为预编译sql设置参数
                      }
                  }
              ResultSet num = pstmt.executeQuery(); // 执行SQL语句
              } catch (SQLException e) {
                  e.printStackTrace(); // 处理SQLException异常
              } finally {
                  try {
                      BaseDao.closeAll(conn, pstmt, null);
                  } catch (SQLException e) {    
                      e.printStackTrace();
                  }
              }
              return 0;
          }
          
      }

       

    展开全文
  • java中的Dao类是什么意思

    万次阅读 多人点赞 2019-06-23 00:38:42
    DAO类都是进行数据操作的类, 是对于数据库中的数据做增删改查等操作的代码。 DAO(Data Access Object) 数据访问对象是一个面向对象的数据库接口,它显露了 Microsoft Jet 数据库引擎(由 Microsoft Access 所使用...

    DAO类都是进行数据操作的类,

    是对于数据库中的数据做增删改查等操作的代码。

    DAO(Data Access Object) 数据访问对象是一个面向对象的数据库接口,它显露了 Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并允许 Visual Basic 开发者通过 ODBC 像直接连接到其他数据库一样,直接连接到 Access 表。DAO 最适用于单系统应用程序或小范围本地分布使用。

    DAO层一般有接口和该接口的实现类,接口用于规范实现类,实现类一般用于用于操作数据库! 一般操作修改,添加,删除数据库操作的步骤很相似,就写了一个公共类DAO类 ,修改,添加,删除数据库操作时直接调用公共类DAO类。

    展开全文
  • java学习中,特别是接触到web开发的时候,我们会经常遇到DAO这个家伙。中文名:数据访问对象,英文名:Data Access Object,我们简称DAO。在这一类的java后缀文件中,主要是用来访问数据库的,从数据库中选取需要...

    在java学习中,特别是接触到web开发的时候,我们会经常遇到DAO这个家伙。中文名:数据访问对象,英文名:Data Access Object,我们简称DAO。在这一类的java后缀文件中,主要是用来访问数据库的,从数据库中选取需要分析或是处理的数据


    上面是记录自己在java学习中遇到的新词

    DAO与Mapper结尾命名的区别

    在Mybatis中,根据其官方习惯,一般用Mapper结尾命名作为接口类的命名,而DAO这个结尾命名也是与Mapper结尾命名类似

    它们两个可以互换,看个人怎样去命名,根据需求,还可以用其他的名字命名。

    展开全文
  • Java - 什么DAO模式?

    万次阅读 2019-03-16 12:15:09
    DAO(Data Access Object)顾名思义是一个为数据库或其他持久化机制提供了抽象接口的对象,在不暴露底层持久化方案实现细节的前提下提供了各种数据访问操作。在实际的开发中,应该将所有对数据源的访问操作进行抽象...

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

    DAO(Data Access Object)顾名思义是一个为数据库或其他持久化机制提供了抽象接口的对象,在不暴露底层持久化方案实现细节的前提下提供了各种数据访问操作。在实际的开发中,应该将所有对数据源的访问操作进行抽象化后封装在一个公共API中。用程序设计语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口,在逻辑上该类对应一个特定的数据存储。DAO模式实际上包含了两个模式,一是Data Accessor(数据访问器),二是Data Object(数据对象),前者要解决如何访问数据的问题,而后者要解决的是如何用对象封装数据。

    展开全文
  • Java DAO是啥?

    千次阅读 2017-02-15 14:21:48
    DAO是啥?
  • JavaDAO的实现

    万次阅读 2018-11-10 17:24:14
    JavaDAO的实现
  • javadao层和service层的区别是什么

    千次阅读 2015-10-12 11:29:42
    呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道,业务才是工作...
  • JSP:全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统...
  • javaDao模式

    千次阅读 2018-05-15 18:10:40
    什么DAO 1.Data Access Object(数据存取对象)2.位于业务逻辑和持久化数据之间3.实现对持久化数据的访问DAO模式的作用1隔离业务逻辑代码和数据访问代码2.隔离不同数据库的实现业务逻辑层,数据访问层(Oracle,...
  • MVC结构: web主要是客户端网页,是表层的东西,可接收和返回数据给用户 ...web发出请求–>domain接收控制数据转向(可以返回也可以进入service)–>service验证数据正确性或者是否符合业务要求–>dao存入,
  • Java-DAO模式

    千次阅读 2017-05-04 08:50:30
    什么DAO 1.Data Access Object(数据存取对象) 2.位于业务逻辑和持久化数据之间 3.实现对持久化数据的访问 DAO模式的作用 1隔离业务逻辑代码和数据访问代码 2.隔离不同数据库的实现 业务...
  • java的spring dao层service层和web各自负责什么? @Override这些@的详解,就是哪些情况下用哪种@? spring注入两种方式给个实例,说明下区别,谢谢
  • 这是mvc结构,web主要是客户端网页,是表层的东西,可接收和返回数据给用户domain主控制层,是用户与数据库交互的核心中转站,控制用户数据收集,控制请求转向service是业务逻辑层,处理数据逻辑,验证数据,dao是...
  • javadao层和service层的区别,为什么要用service?

    万次阅读 多人点赞 2016-05-20 11:28:47
    读了下面的文章 让我...呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以
  • JavaDAO层、Service层和Controller层的区别

    万次阅读 多人点赞 2018-09-03 09:47:07
    DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做...
  • Java Dao模式

    千次阅读 2008-04-20 15:51:00
    http://www.yeqiangwei.com/club/f4b0l0fp1t8347p1.htmlJAVA DAO编程模式原文来自:野蔷薇 http://www.yeqiangwei.com/club/f4b0l0fp1t8347p1.html J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问...
  • userDao dao; @Before public void setUp() throws Exception { dao = new UserDaoImpl(); } //运行结束执行 @After public void tearDown() throws Exception { } @Test public void testLogin() { ...
  • Dao模式是Java面向设计时的一种模式。而Dao中的BaseDao无非是对数据进行CURD(增删改查),下面是最常用的连接,增删改查的方法。 package dao;import java.sql.*;/** * 数据库访问类 */public class BaseDao { ...
  • dao 与数据库的操作,增删改查等方法 model 一般都是javabean对象,例如与数据库的某个表相关联。 service 供外部调用,等于对dao,model等进行了包装。 impl 定义的接口 util 通常都是工具类,如字符串处理、...
  • PO: persistantobject持久对象 BO: businessobject业务对象 VO: valueobject值对象,ViewObject表现层...plainordinaryjavaobject简单java对象 DTO: DataTransferObject数据传输对象 DAO: dataaccesso...
  • java dao设计模式

    万次阅读 2012-04-21 14:04:40
    JAVA开发中,随 着软件分层设计的流行及广泛的应用,对于DAO设 计模式大家已经不再陌生了,DAO层 已经在软件系统的开发中成为必不可少的一层,将后台的数据层和前台的VO进行分离。前段时间也针对于DAO设计模式...
  • Javadao层和service层的区别

    万次阅读 2019-03-06 09:54:48
    记得以前刚学编程的时候,都是在service直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道,业务才是工作中的重中之重。 我们都知道,...
  • JAVADAO类的作用

    千次阅读 2011-07-28 09:44:16
    DAO是Data Access Object数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。 在核心J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作...
  • JAVA hibernate DAO —— save 方法

    千次阅读 2011-08-04 14:25:28
    用 MyEclipse 自带的Hibernate 反向工程生成的 DAO 文件,使用里面的 save 方法,数据不能插入数据库。   注意 hbm.xml 文件里面的主键的自增问题。   nativ
  • javaDAO模式学习总结

    万次阅读 多人点赞 2017-11-02 09:38:13
    javaDAO模式学习总结-戚爱斌 DAO模式入门 1.什么是DAO模式 DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的业务逻辑分开,此模式的主要作用是封装对数据库的各种操作; 2.DAO...
  • Dao模式是Java面向设计时的一种模式。而Dao中的BaseDao无非是对数据进行CURD(增删改查),下面列出两种常用的连接,增删改的方法。 情况一:mport java.sql.Connection; import java.sql.DriverManager; import ...
  • Java web Dao层的作用简介

    千次阅读 2015-11-03 16:48:26
    Dao : Date Access Object通常用于操作数据库的在MVC...看 个 小 小 的 实 例:dao 层ArticleMapper.javapackage com.sooware.med.dao; import java.util.List; public interface ArticleMapper { int deleteByP
  • JAVA通用Dao接口和hibernate的实现

    千次阅读 2009-11-02 14:40:00
    基于泛型的通用Dao接口:(主要是在使用hibernate或JPA时... import java.io.Serializable; import java.util.List; /** * 基于泛型的通用Dao接口 */ public interface GenericDao { void create(T entity); vo

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 356,796
精华内容 142,718
关键字:

java里dao是什么意思

java 订阅