- 浏览: 264754 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (87)
- Java (6)
- Frameworks (1)
- JavaWeb (3)
- Spring (6)
- Hibernate (26)
- Maven (2)
- Plugin (1)
- Velocity (1)
- Freemarker (1)
- Spring security (18)
- Google (5)
- Guice (5)
- rmi (1)
- Annotation (1)
- Binding (1)
- commons-fileupload (3)
- fileupload (3)
- ehcache (1)
- ApplicationContext (1)
- Resource (1)
- Validator (1)
- PropertyEditor (1)
- one-to-many (5)
- cascade (2)
- MessageSource (1)
- Serialize (1)
- Serializable (1)
- delete (1)
- delete-orphan (1)
- fetch (1)
- one-to-one (1)
- join (4)
- DomainObject (1)
- CRUD (1)
- composite-element (1)
- Hibernate ORM (14)
- dynamic-insert (1)
- dynamic-update (1)
- Search (1)
- DDD (0)
- Job (0)
- element (1)
- Unique (1)
- Group (1)
- tomcat (1)
- https (1)
- mysql (1)
最新评论
-
xurunchengof:
[url][url][url][img][img][img][ ...
Spring Security 3多用户登录实现之三 验证过滤器 -
Wind_ZhongGang:
yo8237233 写道你这样的话如果上传文件超过了50000 ...
Spring集成Commons fileupload,文件上传 -
yo8237233:
你这样的话如果上传文件超过了50000000就会报异常
Spring集成Commons fileupload,文件上传 -
zhuzhiguosnail:
Wind_ZhongGang 写道lianglaiyang 写 ...
Spring Security 3多用户登录实现一 -
曾老师:
?????
Spring Security 3用户登录实现之十 用户切换
基于DomainObject的通用数据库CRUD操作
对于项目中的持久化实体,持久化实体虽然对应着不同的业务对象,拥有不同的属性,在数据库中有不同的数据表与其对应,但是这些不同的持久化实体间却存在着一些共性,如它们都需要id主键标识数据表中的某一条记录,都有可能需要对其进行增删改查的操作,于是,将其共性提取出来进行封装,对于提高代码的可重用性和可读性,显得十分迫切以及必要。
一。DomainObject
package com.dream.model.couple; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 10/17/11 * Time: 1:05 PM */ public class DomainObject { private Integer id; private Integer version; }
id是主键标识,version则可以作为乐观锁控制数据的正确性以及一致性,当然也可以在些添加其它一些项目必要的属性,根据不同的项目需求有所不同,如添加一个全局统一标识符,用以标识全局中的唯一一条数据。
二。DomainDao
package com.dream.dao.standard; import com.dream.model.couple.DomainObject; import java.util.List; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 10/17/11 * Time: 1:10 PM */ public interface DomainDao { void saveOrUpdate(DomainObject domainObject); DomainObject findById(Class clazz, Integer id); void delete(DomainObject domainObject); List<DomainObject> findAll(Class clazz); }
三。DomainDaoImpl
package com.dream.dao; import com.dream.dao.standard.DomainDao; import com.dream.model.couple.DomainObject; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import java.util.List; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 10/17/11 * Time: 1:12 PM */ public class DomainDaoImpl extends HibernateDaoSupport implements DomainDao { @Override public void saveOrUpdate(DomainObject domainObject) { getHibernateTemplate().saveOrUpdate(domainObject); } @Override public DomainObject findById(Class clazz,Integer id) { return (DomainObject) getHibernateTemplate().get(clazz.getName(), id); } @Override public void delete(DomainObject domainObject) { getHibernateTemplate().delete(domainObject); } @Override public List<DomainObject> findAll(Class clazz) { return getHibernateTemplate().find("from " + clazz.getName()); } }
如此一来,当项目中的其它模块需要使用CRUD操作时,只需简单继承DomainDaoImpl类即可,避免重复代码的编写。
发表评论
-
Hibernate unique使用
2011-11-28 22:16 1177在Hibernate中对于一对一的关联关系配置 ... -
Hibernate cascade在不同关联关系中的具体表现
2011-11-22 21:47 3142在Hibernate中,针对持久化实体的配置文件中有 ... -
Hibernate element使用
2011-11-20 20:43 1589一.Person package co ... -
Hibernate 单表实现树结构
2011-11-13 21:10 2842来看看通过单表来实现一个树形结构的方式。这里假设有这样 ... -
Hibernate save persist merge探究
2011-10-27 17:59 4139先来看看hibernate-reference.pd ... -
Hibernate Search配置及简单应用
2011-10-25 16:06 2583Hibernate Search是一款集成Apach ... -
Hibernate的三种配置方式
2011-10-24 16:58 1812对于Hibernate的配置方式,有三种,一种是通过 ... -
dynamic-insert,dynamic-update 我有话要说
2011-10-21 17:39 12999在之前的一个项目中,Team leader说在每一个 ... -
Hibernate one-to-many composite-element实现
2011-10-17 16:55 2652Hibernate中持久化实体间一对多关联关系的compo ... -
Hibernate one-to-many 双方双向连接表关联
2011-10-17 14:24 1740Hibernate中持久化实体间一对多关联,具体关联关 ... -
Hibernate one-to-many 多方单向连接表关联
2011-10-15 23:37 1299Hibernate中持久化实体间一对多 ... -
Hibernate one-to-many 一方单向连接表关联
2011-10-15 23:17 1707Hibernate中对于持久化实体间的关联关系有 ... -
Hibernate one-to-one 两方双向连接表关联
2011-10-15 17:38 2754Hibernate中对于持久化实体间的关联关系有三种分类, ... -
Hibernate fetch 抓取策略
2011-09-27 18:20 1369Hibernate fetch抓取策略定义了当抓 ... -
Hibernate 关联关系解除
2011-09-27 13:46 1548Hibernate对于持久化实体间的关联关系解 ... -
Hibernate one-to-many cascade探究
2011-09-08 13:20 1159对于Hibernate的one-to-many关联关系中, ... -
Hibernate inverse 深度解析
2011-08-09 22:55 1276inverse 英文意思为反向,倒转的。 Hi ... -
Hibernate ORM one-to-one主键关联关系映射
2011-08-01 22:08 1397Hibernate ORM one-to-one映射主要有 ... -
Hibernate ORM Inheritance
2011-07-31 22:56 1374Hibernate ORM提供了三 ... -
Hibernate many-to-many
2011-07-30 17:20 1897对于持久化实体间多对多的关联关系,在数据库中的反映 ...
相关推荐
通过定义通用的CRUD(Create, Read, Update, Delete)操作,可以减少重复代码的编写,同时提高代码的可读性和可测试性。 #### Struts Action与Domain Object转换 Struts框架中的Action类负责处理请求并返回响应,...
通过 Hibernate,开发者可以将 Java 对象映射到数据库表,并执行 CRUD 操作,而无需直接编写 SQL 代码。 #### 为什么选择 Hibernate? - **角色细分**:引入 Hibernate 可以使得开发团队中的角色更为细分,程序员...
在数据访问层,我们创建了一个公共接口`ICommenDao`,定义了通用的CRUD操作,如保存(save)方法,适用于所有需要持久化的实体类。接着,创建`CommenDaoImpl`作为接口的实现类,通过Hibernate的API实现这些操作。 ...
在本项目中,`domain`包下的实体类(如Equipment)代表数据库中的表,`dao`(Data Access Object)层使用Hibernate的Session接口进行数据库操作,如查询、插入、更新和删除。 **Service层**:服务层是业务逻辑的...
在数据库领域,CRUD 操作是最基本的数据管理操作。 #### Daemon 守护进程是一种在后台运行的进程,它通常用于执行特定的任务或提供某种服务。在 Java 中,可以创建守护线程,这些线程在主线程结束后会自动终止。 ...
25. CRUD:创建(Create)、读取(Read)、更新(Update)、删除(Delete),是数据库操作的基本功能。 26. Internet Domain Name System(DNS):域名系统,是将域名和IP地址相互映射的分布式数据库系统。 27. ...
- 支持基本的CRUD操作。 **领域(Domain)建模** - 领域类是GORM的基础,代表数据库中的实体。 - 支持多种关联方式,如多对一、一对多等。 - 支持组合和继承,增加了模型的灵活性。 - 支持集合、列表和映射等数据...
在Java编程中,`IRepository`通常代表“接口仓库”,这是一种设计模式,它定义了对象存储(如数据库)的通用操作接口,使具体的数据库访问细节得以隐藏,提升了代码的可复用性和可测试性。 1. **接口(Interface)*...
CRUD是数据库操作的基本操作,即创建、读取、更新和删除数据记录。 ### Daemon 守护进程是一种在后台运行的进程,通常用于执行长期运行的任务,如日志记录、网络服务等。 ### DAO (Data Access Object) 数据访问...
GORM提供了对关系数据库的便捷操作,允许开发者以Groovy语法进行CRUD(创建、读取、更新、删除)操作,减少了与SQL打交道的繁琐。 在创建控制器时,Grails的拦截器(Filters)机制可以帮助我们实现通用的逻辑,如...