精华内容
下载资源
问答
  • java里dao是什么意思
    2022-04-03 20:47:53

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

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

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

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

    更多相关内容
  • 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什么意思

    千次阅读 2022-03-31 08:50:43
    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什么意思

    千次阅读 2021-08-04 09:34:44
    数据访问对象模式(Data Access Object Pattern)或 DAO 模式。是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。 需要对数据库操作的时候,先创建一个对象,对它...

    如有错误欢迎指正

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

            需要对数据库操作的时候,先创建一个对象,对它进行数据的操作,操作之后再把它存到数据库中

            详解如下

           以下是数据访问对象模式的三个参与者:

    • 数据访问对象接口(Data Access Object Interface) - 该接口定义了在一个模型对象上要执行的标准操作。(就是下方的StudentDao)
    • 数据访问对象实体类(Data Access Object concrete class) - 该类实现了上述的接口。该类负责从数据源获取数据,数据源可以是数据库,也可以是 xml,或者是其他的存储机制。(就是下方的StudentDaoImpl)
    • 模型对象/数值对象(Model Object/Value Object) - 该对象是简单的 POJO,包含了 get/set 方法来存储通过使用 DAO 类检索到的数据。(就是下方的Student)

     他们之间的关系如下

    数据访问对象模式的 UML 图

             完成上述三个步骤之后,DAO模式就算基本完成了,然后就可以在使用过程中用到这个模式来操作数据库了。

             上面的例子中,用list来代替数据库,所以少了SQL语句的使用,下面展示实战项目中的DAO是如何使用的。

            1、entity层

    2、mapper层,接口

    3、mapper层,接口实现,这一步就是真实的对数据库进行操作的SQL语句,写在xml文件中,需要在配置文件中,通过MyBatis将接口类和xml文件做映射,这样,用接口类的时候就可以执行xml文件中的SQL语句了。

    到此为止,DAO模式就完成了

     4、然后在service层进行业务逻辑的代码

     如有错误欢迎指正

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

    千次阅读 2021-02-12 10:48:25
    展开全部DAO(Data Access Object)数据访问对象是一个面向对象的数据库接口,它显露了 Microsoft Jet数据库引擎(由62616964757a686964616fe58685e5aeb931333366303062 Microsoft Access 所使用),并允许 Visual Basic...
  • DAO层:DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO...
  • javadao层和service层的区别是什么

    千次阅读 2021-03-23 21:49:44
    呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道,业务才是工作...
  • Java中VO , PO , BO, DAO ,POJO是什么意思最近在项目中,遇到VO,我的天。。。那就一起学习回忆一下首先简单说明下:O/R Mapping是Object Relational Mapping(对象关系映射)的缩写。简单来说,就是将对象和...
  • 利用Java的反射机制实现的万能DAO工具类,包含对应的测试代码。具体功能包括:单表查询,多表查询,模糊查询,添加,修改,删除等。利用万能DAO可以对数据库中任意表进行操作,只需一个DAO类即可完成。阅读本代码...
  • Java - 什么DAO模式?

    万次阅读 2019-03-16 12:15:09
    DAO(Data Access Object)顾名思义是一个为数据库或其他持久化机制提供了抽象接口的对象,在不暴露底层持久化方案实现细节的前提下提供了各种数据访问操作。在实际的开发中,应该将所有对数据源的访问操作进行抽象...
  • java学习中,特别是接触到web开发的时候,我们会经常遇到DAO这个家伙。中文名:数据访问对象,英文名:Data Access Object,我们简称DAO。在这一类的java后缀文件中,主要是用来访问数据库的,从数据库中选取需要...
  • javadaodao.impl 问题

    千次阅读 2021-03-15 15:29:38
    dao中存在是接口(interface)dao.impl中存在的是接口的具体实现(class)至于好处,去查查接口的定义。更新。。。。举个例子dao中有public interface UserDAO {public List getUser();}dao.imple中public class ...
  • 这是mvc结构,web主要是客户端网页,是表层的东西,可接收和返回数据给用户domain主控制层,是用户与数据库交互的核心中转站,控制用户数据收集,控制请求转向service是业务逻辑层,处理数据逻辑,验证数据,dao是...
  • java里的@param什么意思

    千次阅读 2021-02-27 08:12:37
    展开全部@Param:用来在DAO层中声明参数。例:List selectByUserIdAndOffset(@Param("userId") int userId, @Param("offset") int offset, @Param("limit") int limit);java中@表示注解,解释一个方法,类,属性的...
  • 什么DAO

    千次阅读 2022-02-22 17:45:48
    :DAO 是去中心化自治组织(Decentralized Autonomous Organization )的缩写。 本质上,DAO 就是一个通过智能合约保持运转的组织。它围绕着一个共同目标,进行创造、获取并分配价值,价值尺度常常是某种自定义的代币...
  • Dao.javaDao.xml相互关联

    千次阅读 2020-02-23 07:26:57
    Dao.java package com.imooc.oa.dao; import com.imooc.oa.entity.Department; import org.springframework.stereotype.Repository; import java.util.List; @Repository("departmentDao") public interface Departm...
  • 最近在看Spring Boot中数据库相关的操作经常会有DAO类,虽然大概DAO类的一直意思及其作用,但这篇文章很好的对DAO类做了详细具体的解释,并举了很具体的例子。
  • Dao层——数据访问层 Dao层是具体到每个操作,每个表的增...import java.io.Serializable; public interface IBean extends Serializable { //继承序列化接口 } IDao接口 IDao接口是为了具体操作而设立的接口,继承
  • java中 service层和DAO层的区别

    千次阅读 多人点赞 2020-09-10 17:22:55
    service层叫服务层,被称为服务,肯定是相比之下比较高层次的一层结构,相当于将几种操作封装起来,至于为什么service层要使用接口来定义有以下几点好处: 在java中接口是多继承的,而类是单继承的,如果你需要一个...
  • java里VO是什么

    万次阅读 多人点赞 2019-05-23 01:30:28
    可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。 二、VO:value object值对象。 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象 可以和表...
  • java中entity层、dao层、service层、mapper层、util层、controller层具体含义以及表现
  • service在后端中,web,service,Dao三层中,用于service调用Dao层。 Servlet返回的数据比较简单; Web Service返回的可以是复杂对象,甚至使用附件或者mutidata的二进制文件。 Servlet依赖于Java平台;Web Service是...
  • Dao层 · java开发规范 · 看云

    千次阅读 2021-03-14 15:14:34
    XXMapper.java对应xml文件命名为XXMapper.xml##文件文件应与数据库中表一一对应,有特殊要求的可以一个表对应多个文件,但严禁一个业务一个文件##参数为方便aop控数据级权限,dao层参数统一使用Map``` javapublic ...
  • Java DAO是啥?

    千次阅读 2017-02-15 14:21:48
    DAO是啥?
  • DAO层:(持久层)主要与数据库进行交互 DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,主要是做数据持久层的工作,主要与数据库进行交互。具体到对于某个表的增删改查,也就是...
  • DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 442,432
精华内容 176,972
关键字:

java里dao是什么意思