- 浏览: 155137 次
- 性别:
- 来自: 球面世界
最新评论
-
zhang_yi_yi:
...
Java常用方法使用心得 -
yeshuang:
不错,希望以后多多介绍一些
Java常用方法使用心得 -
tiansong163:
我用这个怎么不行呢?
jsp实现文件下载与中文文件名乱码问题解决 -
lshhjxlj:
Yes,it very good!
Java常用方法使用心得 -
jaja_jaja:
有错误,web.xml里少了servlet-mapping部分 ...
对log4j初始化并设置log文件的存放路径
最近实现了Spring2.0 Hibernate3.2 Hibernate Annotation 3.3 GenericDao 整合实现
用起来还是很顺手的
代码给出如下
java 代码
- package cn.feigme.model;
- /**
- * @author Feigme
- *
- */
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- import javax.persistence.Table;
- /**
- * 用户.带jpa annotation简版配置.
- */
- @Entity
- @Table(name = "User")
- public class User {
- private Integer id;
- private String username;
- private String password;
- private String email;
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
Hibernate Annotation减少了XML文件,配制起来也非常方便
java 代码
- package cn.feigme.dao;
- import java.io.Serializable;
- public interface IGenericDao<T, PK extends Serializable> {
- PK save(T newInstance);
- T find(PK id);
- void update(T transientObject);
- void delete(T persistentObject);
- }
基于jdk5.0特性的 generic dao 可以减少很多dao重复编码
java 代码
- /**
- * GenericDaoHibernateImpl.java
- * cn.feigme.dao.impl
- * @author Feigme
- * 2007-8-26
- */
- package cn.feigme.dao.impl;
- import java.io.Serializable;
- import cn.feigme.dao.IGenericDao;
- /**
- * @author Feigme
- *
- */
- public abstract class GenericDaoHibernateImpl<T, PK extends Serializable> extends BaseDao implements IGenericDao<T,PK> {
- private Class<T> persistentClass;
- /*@SuppressWarnings("unchecked")
- public GenericDaoHibernateImpl(Class<T> t) {
- this.persistentClass = (Class<T>) ((ParameterizedType) getClass()
- .getGenericSuperclass()).getActualTypeArguments()[0];
- }*/
- public GenericDaoHibernateImpl(Class<T> t){
- this.persistentClass = t;
- }
- public Class<T> getPersistentClass() {
- return persistentClass;
- }
- public void delete(T persistentObject) {
- this.getHibernateTemplate().delete(persistentObject);
- }
- @SuppressWarnings("unchecked")
- public T find(PK id) {
- return (T) this.getHibernateTemplate().get(getPersistentClass(), id);
- }
- @SuppressWarnings("unchecked")
- public PK save(T newInstance) {
- return (PK)this.getHibernateTemplate().save(newInstance);
- }
- public void update(T transientObject) {
- this.getHibernateTemplate().update(transientObject);
- }
- }
generic dao的实现类,注意他的构造函数
java 代码
- /**
- * UserDao.java
- * cn.feigme.dao
- * @author Feigme
- * 2007-8-27
- */
- package cn.feigme.dao;
- import cn.feigme.model.User;
- /**
- * @author Feigme
- *
- */
- public interface UserDao extends IGenericDao<User,Long> {
- }
UserDao 就非常简单了,继承GenericDao就可以了,如果多的方法,直接写在这个dao中,
java 代码
- /**
- * UserDaoImpl.java
- * cn.feigme.dao.impl
- * @author Feigme
- * 2007-8-27
- */
- package cn.feigme.dao.impl;
- import cn.feigme.dao.UserDao;
- import cn.feigme.model.User;
- /**
- * @author Feigme
- *
- */
- public class UserDaoImpl extends GenericDaoHibernateImpl<User, Long > implements UserDao {
- /**
- * 必须要有空构造函数
- */
- public UserDaoImpl() {
- super(User.class);
- }
- }
这里有一点也是要特别注意的,至少我测试时出了些问题
java 代码
- package test;
- import org.junit.After;
- import org.junit.Before;
- import org.junit.Test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import cn.feigme.dao.UserDao;
- import cn.feigme.model.User;
- public class Mytest {
- private UserDao dao;
- @Before
- public void setUp() throws Exception {
- String[] config = new String[] {
- "spring/applicationContext.xml",
- "spring/dataAccessContext-hibernate.xml",
- "spring/serviceContext.xml"};
- ApplicationContext ctx = new ClassPathXmlApplicationContext(config);
- dao = (UserDao) ctx.getBean("userDao");
- }
- @After
- public void tearDown() throws Exception {
- }
- @Test
- public void save() {
- User u = new User();
- u.setUsername("feigme is me");
- u.setEmail("feigme@163.com");
- dao.save(u);
- }
- }
这就是简单点的测试类,整合时一定要把 jar包找齐,网上别人提供的很多例子都是不完全的,所以还是要多看看
包中的文档啊!
评论
6 楼
peijunlin2008
2010-02-23
把源代码发出来,学习一下!
5 楼
feigme
2008-01-31
这个是jdk5.0有的特性,泛型要用到的
4 楼
javado
2007-12-29
T 和里面的PK是什么啊?
3 楼
feigme
2007-09-08
全部都是从Eclipse中拷过来的,并且测试过了
当然借鉴了网上的资料
不过代码部分都是自己写的哈
当然借鉴了网上的资料
不过代码部分都是自己写的哈
2 楼
bulargy
2007-09-05
我日,还你以为你代码都是原创的,说几天不见功力大增,搞了半天好多都是贴的。日日日!!!
1 楼
bulargy
2007-09-05
这个好东东!
发表评论
-
Maven2上路
2008-06-24 21:49 2889虽然公司仍然使用ant,但自己还是尝试使用了下Maven2 网 ... -
Properties读取类
2007-12-12 22:44 3434一个properties常用类,以前收藏的 java 代码 ... -
对log4j初始化并设置log文件的存放路径
2007-12-12 22:32 10540利用servlet初始化时配置log的存放位置 java 代码 ... -
Eclipse常用快捷键(收藏)
2007-12-10 14:43 1559Eclipse常用的快捷键 Ctrl+1 快速修复(最经典的快 ... -
Java常用方法使用心得
2007-12-10 14:29 9284不断完善中ing . . . java. ... -
一个通用时间类
2007-12-10 14:14 1399引自:http://www.busfly.cn/post/ja ... -
HashCode 理解测试
2007-11-01 14:15 1707java 代码 public class Has ... -
BIRT之使用历程
2007-10-26 16:13 6301BIRT的易使用性及强大,成为项目的首选 在download. ... -
[转]一个泛型Hibernate DAO实现
2007-10-20 10:03 7489java 代码 package sgf4web. ... -
试刀——DynamicProxy
2007-10-07 00:53 1298Dynamic Proxy是这样一种class:它是在运行时生 ... -
spring_hibernate_annotation的三种实现
2007-08-23 15:21 1739xml 代码 <!--第一种 ====== ... -
一个动态的model
2007-08-10 11:17 1242java 代码 import java.uti ... -
让人迷糊的interface和abstract
2007-08-10 09:57 1304最近在做公司的一个项 ... -
jdk5.0 新用法
2007-08-03 19:40 1468JDK5.0 有SuppressWarnings,De ... -
用jsp写的日历
2007-07-16 14:38 1566觉得日历不应该要那么麻烦 为什么发上来的代码那么难看。。。只能 ... -
分页公用类PaginationSupport
2007-07-11 10:32 3846最近看了 robbin等大侠写 ... -
好文章锦集
2007-07-03 21:56 1100dao + hibernate 设计 http://www.i ... -
解决web开发中的中文问题
2006-08-09 09:41 1231这段时间经常看到有人问到web开发中怎么中文总是?号。原因其实 ... -
jsp实现文件下载与中文文件名乱码问题解决
2006-08-10 16:36 5131之前,写过一个Download.jsp文件,可以解决下载文件乱 ... -
struts 实现文件上传与下载
2007-04-18 19:13 3551/****************************** ...
相关推荐
这个"spring+hibernate annotation 完整示例,带数据库脚本"的项目,旨在提供一个全面的示例,帮助开发者了解如何在实际项目中结合Spring和Hibernate使用注解来实现数据访问。下面我们将深入探讨这些知识点。 1. **...
本文将深入探讨如何将Spring与Hibernate结合,采用注解方式来进行配置和开发,以实现高效的数据访问。 首先,让我们了解Spring框架。Spring是一个开源的Java平台,它简化了企业级应用开发,通过依赖注入(DI)和...
本文将深入探讨如何结合 Spring 的注解配置与 Hibernate 实现数据持久化,通过一个实际的 demo 示例来阐述整个过程。 首先,Spring 框架以其依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented ...
【标题】:“jQuery EasyUI+Struts2+Spring+Hibernate基于注解实现的CRM系统” 在IT领域,CRM(Customer Relationship Management,客户关系管理)系统是企业用来优化与客户交互和管理的重要工具。本项目利用一系列...
Hibernate Annotations与Spring的结合使用,使得开发更高效,例如通过Spring的@Autowired可以自动装配Hibernate的SessionFactory或EntityManager,实现数据访问层的便捷操作。"hibernate_reference"文档则可能包含对...
总结来说,Spring 与 Hibernate 的整合主要涉及 SessionFactory 的配置、DAO 类的实现以及事务管理。通过 Spring 的 IoC 容器管理数据访问资源,可以使应用更加解耦,同时利用 Spring 的事务管理功能,可以简化事务...
在IT行业中,SSH2是一个常见的框架组合,由Struts2、Spring和Hibernate三个组件组成,用于构建企业级的Java Web应用程序。在这个特定的项目中,开发者选择了SSH2的特定版本:Struts2.1.6、Spring2.5.6和Hibernate3.3...
总的来说,"完整版spring hibernate整合采用annotation"是一个涵盖多个知识点的主题,包括Spring注解驱动开发、Hibernate的ORM注解、Spring与Hibernate的整合配置、事务管理以及相关的开发工具使用。通过深入学习和...
在IT领域,Spring和Hibernate是两个非常重要的框架,它们分别在依赖注入和对象关系映射(ORM)方面扮演着核心角色。在这个名为“springAndHibernateAnnotation”的小项目中,我们将探讨如何结合使用Spring的注解驱动...
以下将详细介绍"spring_hibernate_annotation的三种实现"。 1. **基于XML的配置** 在早期的Spring和Hibernate集成中,通常使用XML配置文件来定义Bean和数据源,以及映射信息。Spring的`applicationContext.xml`...
在`Spring_1800_Spring_Hibernate_Transaction_Annotation`这个压缩包文件中,很可能包含了使用注解方式实现Spring整合Hibernate事务处理的相关示例代码和配置文件。通过阅读和理解这些代码,你可以更好地掌握这一...
JSF+Spring+Hibernate(Annotation)的login小实例,建议入门的朋友看看,老鸟就免了,呵呵。环境:SQLSever2000+jdk5.0+spring2.0+hibernate3.2+jsf
总结来说,Spring与Hibernate的整合使得Java开发人员能够更方便地管理数据库操作,并利用Spring的强大功能进行事务管理和组件装配。通过这个简单的示例,我们可以了解到如何配置Spring的环境,定义实体类,创建DAO和...
**Hibernate Annotation 入门** Hibernate 是一款非常流行的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的方式操作数据库。而Hibernate Annotation是Hibernate的一个重要特性,它通过在Java类和字段上...
本文将深入探讨如何将Spring与Hibernate进行集成,并重点介绍声明式事务的配置与使用。 Spring框架是一个全面的企业级应用开发框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,简化了Java应用的复杂性。另...
Hibernate是Java领域最流行的ORM框架之一,它将Java对象与数据库表进行映射,通过对象的方式来操作数据库。Hibernate提供了一套强大的API,包括Session、SessionFactory、Query等,使得开发者可以进行CRUD(创建、...
3. **DAO层的实现**:Spring的`HibernateTemplate`或`HibernateOperations`可以简化DAO层的代码,但更推荐使用`HibernateJpaVendorAdapter`配合JPA的`EntityManager`,因为JPA提供了更丰富的ORM功能,并且与多种持久...
Hibernate本身也支持事务管理,但通常与Spring集成时,我们使用Spring的事务管理。`HibernateTransactionManager`是Spring提供的专门用于管理Hibernate事务的类,它会自动处理Hibernate Session和JDBC Connection的...