`
ynp
  • 浏览: 437892 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

公共dao的结构

阅读更多
-----------》公共dao的结构

-----共用接口和共用实现类------------------
public interface BaseDao<E,ID extends Serializable> {}
public class BaseDaoImpl<E,ID extends Serializable> implements BaseDao<E,ID>{}

-------具体接口和具体实现类------------------
public interface MenuDao extends BaseDao<Menu, Integer> {}
public class MenuDaoImpl extends BaseDaoImpl<Menu, Integer> implements MenuDao {}

----------》具体具体代码(写了部分方法)
BaseDao.java
package com.xj.dao;

import java.io.Serializable;
import java.util.List;

public interface BaseDao<E,ID extends Serializable> {
	/**
	 * 增加实体
	 * @param obj
	 */
	public abstract void addObject(E obj);

	/**
	 * 删除实体
	 * @param obj
	 */
	public abstract void deleteObject(E obj);

	/**
	 * 跟新实体
	 * @param obj
	 */
	public abstract void updateObject(E obj);

//	public abstract Boolean checkObjectExistsWithName(String objName);

	/**
	 * 
	 * 根据id查找实体
	 */
	public abstract E queryObjectById(Class<E>clazz,ID id);

	/**
	 * 根据条件查找所有实体
	 * @param queryStr
	 * @return
	 */
	public abstract List<E> queryObjects(String queryStr);

}


BaseDaoImpl.java
package com.xj.dao.impl;

import java.io.Serializable;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;

import com.xj.dao.BaseDao;
@Component("baseDao")
public class BaseDaoImpl<E,ID extends Serializable> implements BaseDao<E,ID>{
	
	private HibernateTemplate hibernateTemplate; 
	
	public HibernateTemplate getHibernateTemplate() {
		return hibernateTemplate;
	}
	
	@Resource
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}
	
	@Override
	public void addObject(E obj) {
		hibernateTemplate.save(obj);
	}

	@Override
	public void deleteObject(E obj) {
		hibernateTemplate.delete(obj);
	}
	
	@Override
	public void updateObject(E obj) {
		hibernateTemplate.update(obj);
	}	
	

	@Override
	public E queryObjectById(Class<E> clazz,ID id) {
		return hibernateTemplate.get(clazz, id);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<E> queryObjects(String queryStr) {
		return hibernateTemplate.find(queryStr);
	}

}


MenuDao.java
package com.xj.dao;

import com.xj.model.Menu;

public interface MenuDao extends BaseDao<Menu	, Integer> {

}


MenuDaoImpl.java
package com.xj.dao.impl;

import org.springframework.stereotype.Service;

import com.xj.dao.MenuDao;
import com.xj.model.Menu;
@Service("menuDao")
public class MenuDaoImpl extends BaseDaoImpl<Menu, Integer> implements MenuDao {

}




分享到:
评论

相关推荐

    模板设计模式_构建公共通用的Dao

    在"模板设计模式_构建公共通用的Dao"的例子中,`MyJDBC2`可能是实现了通用Dao功能的具体类。这个类可能会包含以下关键部分: - **数据库连接管理**:通过连接池获取和释放数据库连接,这部分代码可以封装在一个模板...

    策略设计模式_构建公共通用的Dao

    标题中的“策略设计模式_构建公共通用的Dao”指出,我们即将探讨的是如何利用策略设计模式来构建一个可复用的、通用的数据访问对象(DAO)层。在软件开发中,DAO层通常负责与数据库进行交互,执行增删改查等操作。...

    C# 抽象工厂 Dao 详解

    在搭建结构时需要建立引用关系,包括 View 层、BLL 层、DAL 层、Model 层、Factory 层和公共工具层。其中,View 层引用 BLL 层,BLL 层引用 DAL 层,DAL 层引用 Model 层,Factory 层引用 DAL 层和 Model 层,公共...

    java的DAO开发

    在多条SQL语句需要一起执行时,我们需要使用try-catch-finally结构来管理事务,确保数据的一致性。 7. **接口与实现** 为了实现更好的解耦,可以定义一个DAO接口,然后为每个数据表或实体类提供一个具体的实现。...

    mongoDB DAO层封装

    MongoDB支持丰富的查询语言,能处理复杂的数据结构,适用于大数据量和高并发的场景。 2. Spring Data Spring Data是Spring框架的一个模块,旨在简化数据访问层的开发工作。它提供了一种统一的方式来处理各种类型的...

    java DAO学习

    2. **DAO结构**: - **接口**:DAO接口定义了对数据库操作的方法,如`insert(User user)`,`update(User user)`,`delete(int id)`,`select(int id)`等。这些方法的参数和返回值通常与业务对象(BO,Business ...

    MVC三层架构+DAO工厂模式进行JAVA WEB开发

    2. **DAO接口**:定义DAO的公共方法,使得业务层可以依赖于接口而非具体的实现。 3. **DAO实现类**:实现DAO接口,提供实际的数据库操作逻辑。 4. **DAO工厂**:根据需求动态地返回DAO实例。工厂类可以根据参数、...

    DAO讲解.doc

    在J2EE模式中,DAO模式强调的是将所有数据源的访问操作抽象成一个公共API,即定义一个接口,该接口包含了应用程序中所有可能用到的数据事务方法。这样,在需要与数据源交互时,应用层只需要调用这个接口,而具体的...

    Dao数据库工具类

    #### 二、类结构与功能实现 1. **包声明**:`package com.book.dao;` - 这条语句指定了当前类所在的包名。在这个例子中,类位于`com.book.dao`包下。 2. **导入必要的库**: - `import java.sql.*;` - `import ...

    如何重构DAO模式源文件

    在本话题中,我们将深入探讨如何对DAO模式的源文件进行重构,以优化代码结构,提高代码的可读性和可维护性。 **1. 重构背景与目的** DAO模式在大型项目中广泛使用,随着项目发展,原始的DAO实现可能会变得复杂,...

    DAOPattern(设计模式).pdf

    - **DAO接口**:定义了所有DAO实现必须遵循的公共接口,包括连接、断开连接、获取数据和保存数据等方法。 - **具体DAO实现**:每个数据源类型都需要一个具体的DAO实现,如JDBC DAO、Hibernate DAO等。这些实现负责...

    Java之dao模式详解及代码示例

    DAO设计模式的结构通常分为几个类: 1. VO(Value Object):一个用于存放网页的一行数据即一条记录的类,比如网页要显示一个用户的信息,则这个类就是用户的类。 2. DatabaseConnection:用于打开和关闭数据库。 3...

    反射工厂的案例(DAO底层框架)

    反射允许程序在运行时检查和修改自身的结构,而工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,隔离了类实例化过程,并允许代码在不指定具体类的情况下调用对象的方法。 首先,我们来详细探讨反射...

    JAVA项目文件结构与配置文档(干货)

    每个模块都有相应的目录结构,如`dao`、`entity`、`service`等,对应数据访问、实体类和服务层的代码。 资源目录`src/main/resources`是存放配置文件和非Java源码的地方: - `act`:Activiti工作流引擎的相关配置...

    JavaMySQL第八章预习重点总结.txt

    - **公共的getter和setter方法**: 提供公共的getter和setter方法来访问和设置私有属性。 - **无参构造器**: 必须提供一个默认的无参构造器。 - **序列化能力**: 实现`Serializable`接口,使其支持序列化。 例如,...

    JAVA公共资源模块的设计与开发(源代码+论文).zip

    - **数据库模块**:包括数据访问对象(DAO)和实体类,用于与数据库交互。 - **服务模块**:封装业务逻辑,通过接口提供公共服务。 - **测试模块**:单元测试和集成测试,确保公共资源模块的正确性。 5. **论文内容...

    JAVA公共资源模块的设计与开发(源代码+论文)【毕业论文】.zip

    4. **公共资源的分类**:公共资源可能包括工具类库、数据访问对象(DAO)、配置文件、国际化资源、模板引擎等。根据其特性,合理组织模块结构,如将所有数据库操作相关的类放在一个模块,所有国际化相关的资源放在另...

    javaBeanDao设计

    总的来说,JavaBeanDAO设计是Java应用中常见的一种数据访问模式,它结合了JavaBean的面向对象特性与DAO的数据库访问功能,为应用程序提供了一种结构化的数据操作方式。通过合理的设计和实现,可以有效地提升代码的...

    java项目公共资源模块的设计与开发源码.zip

    公共资源模块通常包含一些通用的工具类、常量定义、模板方法、数据访问对象(DAO)以及全局配置等,这些资源可以被项目的不同部分共享,避免了代码重复,降低了维护成本。在Java中,我们可以使用Maven或Gradle等构建...

    java 项目模型 按层次结构划分

    5. **DAO(数据访问对象)层**:数据访问对象层负责与数据库的交互,封装SQL查询和事务管理,使得业务层可以专注于业务逻辑,而不必关心底层数据操作的细节。 6. **实体类和VO(值对象)**:实体类代表数据库中的表...

Global site tag (gtag.js) - Google Analytics