`
suhuanzheng7784877
  • 浏览: 702366 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47704
社区版块
存档分类
最新评论

JSF+Spring+JPA(Hibernate实现)的环境搭建(3)

阅读更多

之后写DAO,无论你是用IDE生成的DAO还是自己写的DAO,代码大致如下:

 

@Transactional

public class PlayerDAO extends JpaDaoSupport implements IPlayerDAO {

    // property constants

    public static final String NAME = "name";

    public static final String MESS = "mess";

    public static final String PIC = "pic";

 

    public void save(PlayersVO entity) {

       logger.info("saving Player instance");

       try {

           getJpaTemplate().persist(entity);

           logger.info("save successful");

       } catch (RuntimeException re) {

           logger.error("save failed", re);

           throw re;

       }

    }

 

    public void delete(PlayersVO entity) {

 

       logger.info("deleting Player instance");

       try {

           entity = getJpaTemplate().getReference(PlayersVO.class,

                  entity.getId());

           getJpaTemplate().remove(entity);

           logger.info("delete successful");

       } catch (RuntimeException re) {

           logger.error("delete failed", re);

           throw re;

       }

    }

    public PlayersVO update(PlayersVO entity) {

       logger.info("updating Player instance");

       try {

           PlayersVO result = getJpaTemplate().merge(entity);

           logger.info("update successful");

           return result;

       } catch (RuntimeException re) {

           logger.error("update failed", re);

           throw re;

       }

    }

 

    public PlayersVO findById(Integer id) {

       logger.info("finding Player instance with id: " + id);

       try {

           PlayersVO instance = getJpaTemplate().find(PlayersVO.class, id);

           return instance;

       } catch (RuntimeException re) {

           logger.error("find failed", re);

           throw re;

       }

    }

 

    @SuppressWarnings("unchecked")

    public List<PlayersVO> findByProperty(String propertyName,

           final Object value, final int... rowStartIdxAndCount) {

       logger.info("finding Player instance with property: " + propertyName

              + ", value: " + value);

       try {

           final String queryString = "select model from PlayersVO model where model."

                  + propertyName + "= :propertyValue";

           return getJpaTemplate().executeFind(new JpaCallback() {

              public Object doInJpa(EntityManager em)

                     throws PersistenceException {

                  Query query = em.createQuery(queryString);

                  query.setParameter("propertyValue", value);

                  if (rowStartIdxAndCount != null

                         && rowStartIdxAndCount.length > 0) {

 

                     // 有分页

                     int rowStartIdx = Math.max(0, rowStartIdxAndCount[0]);

 

                     // 开始页

                     if (rowStartIdx > 0) {

                         query.setFirstResult(rowStartIdx);

                     }

 

                     // 一页最大记录数目

                     if (rowStartIdxAndCount.length > 1) {

                         int rowCount = Math.max(0, rowStartIdxAndCount[1]);

                         if (rowCount > 0) {

                            query.setMaxResults(rowCount);

                         }

                     }

                  }

                  return query.getResultList();

              }

           });

       } catch (RuntimeException re) {

           logger.error("find by property name failed", re);

           throw re;

       }

    }

 

    public List<PlayersVO> findByName(Object name, int... rowStartIdxAndCount) {

       return findByProperty(NAME, name, rowStartIdxAndCount);

    }

 

    public List<PlayersVO> findByMess(Object mess, int... rowStartIdxAndCount) {

       return findByProperty(MESS, mess, rowStartIdxAndCount);

    }

 

    public List<PlayersVO> findByPic(Object pic, int... rowStartIdxAndCount) {

       return findByProperty(PIC, pic, rowStartIdxAndCount);

    }

 

    public List<PlayersVO> findAll(final int... rowStartIdxAndCount) {

       logger.info("finding all Player instances");

       try {

           final String queryString = "select model from PlayersVO model";

           return getJpaTemplate().executeFind(new JpaCallback() {

              public Object doInJpa(EntityManager em)

                     throws PersistenceException {

                  Query query = em.createQuery(queryString);

                  if (rowStartIdxAndCount != null

                         && rowStartIdxAndCount.length > 0) {

                     int rowStartIdx = Math.max(0, rowStartIdxAndCount[0]);

                     if (rowStartIdx > 0) {

                         query.setFirstResult(rowStartIdx);

                      }

 

                     if (rowStartIdxAndCount.length > 1) {

                         int rowCount = Math.max(0, rowStartIdxAndCount[1]);

                         if (rowCount > 0) {

                            query.setMaxResults(rowCount);

                         }

                     }

                  }

                  return query.getResultList();

              }

           });

       } catch (RuntimeException re) {

           logger.error("find all failed", re);

           throw re;

       }

    }

 

         

    public static IPlayerDAO getFromApplicationContext(ApplicationContext ctx) {

       return (IPlayerDAO) ctx.getBean("PlayerDAO");

    }

}

注意:之所以加入注解:@Transactional,是为了AOP进行事务处理。

分享到:
评论

相关推荐

    JSF+Spring+JPA(Hibernate实现)的环境搭建

    ### JSF+Spring+JPA(Hibernate实现)的环境搭建详解 #### 一、概述 在当前企业级应用开发中,技术栈的选择至关重要。本文旨在详细介绍如何构建基于JSF(JavaServer Faces)、Spring以及JPA(Java Persistence API,...

    JSF+Spring+JPA_Hibernate实现_的环境搭建

    这篇文档"JSF+Spring+JPA_Hibernate实现_的环境搭建.pdf"将引导你一步步建立这样的开发环境,让我们深入探讨其中涉及的知识点。 首先,**JavaServer Faces (JSF)** 是一种Java EE标准的MVC(模型-视图-控制器)框架...

    jsf+spring2.5+jpa(hibernate)的jar包

    这是jsf+spring2.5+jpa(hibernate)的jar包,很多人为了jsj环境而配置半天,在此提供jar包共享。注:除了ajax4jsf和tomahawk-1.1.3.jar,因为csdn只让我上传20mb,大家自己可以下一下自己试试。

    图解BEA Workshop Studio 3.3开发JSF+Spring+JPA(Hibernate)Web应用

    - **选择项目框架**:在创建项目的过程中,可以指定使用JSF、Spring、JPA(由Hibernate实现)等技术栈。 - **配置Web模块参数**:设置项目的Context Root和其他相关参数。 - **配置JPA、Hibernate、JSF、JSTL和...

    JSF+Spring+Hibernate(框架整合)详细过程

    4. **数据访问层**:在Spring中定义数据访问接口,使用Hibernate的Template或者JPA的Repository来实现这些接口。这样,业务层可以依赖这些接口,而不是直接依赖Hibernate,实现了数据访问层的解耦。 5. **业务逻辑...

    JSF+Spring+Hibernate的实例讲解.doc

    在 JCatalog 示例中,Spring 可能用于实现业务服务接口,提供对 Hibernate DAO 的封装,而 JSF 的 Managed Beans 作为视图与控制器的结合,负责处理用户请求并调用 Spring 服务。此外,安全控制也应纳入设计考虑,如...

    jsf+spring+jpa

    其中,“JSF + Spring + JPA”作为一种新兴的技术组合,正在逐渐取代传统的“SSH”(Struts + Spring + Hibernate)组合。这一新的技术栈不仅继承了Spring框架的强大功能,还充分利用了JavaServer Faces (JSF) 和 ...

    JSF+Spring+Hibernate 分页显示

    本主题将深入探讨如何使用JavaServer Faces (JSF)、Spring框架和Hibernate ORM工具来实现SQL Server数据库中的数据分页显示。 **JavaServer Faces (JSF)** JSF是一个Java标准,用于构建企业级的Web应用程序。它提供...

    jsf+hibernate+spring集成案例

    在这个"jsf+hibernate+spring集成案例"中,我们将看到: 1. **配置集成**:首先,我们需要在Spring配置文件中定义数据源、SessionFactory(Hibernate的核心组件)以及JSF所需的Managed Beans。这通常涉及到XML配置...

    JSF2.2.6+Spring + Hibernate整合可运行

    在JSF和Spring的环境中,Hibernate常用于管理数据库交互,Spring可以通过其JPA(Java Persistence API)支持轻松地集成Hibernate。 在这个整合项目中,开发者可能已经配置了以下关键组件: 1. **JSF配置**:JSF的...

    jsf+spring+hibernate例子

    在IT行业中,JavaScript Server Faces (JSF)、Spring框架和Hibernate是三个非常重要的技术,它们在构建企业级Java应用程序中发挥着核心作用。本项目是一个综合示例,演示了如何将这三个框架集成在一起以实现一个功能...

    JSF+Spring+Hibernate简单列子

    总的来说,JSF、Spring和Hibernate的结合提供了一个高效且易于维护的Web应用开发环境,适合构建复杂的企业级系统。通过理解这三个框架各自的功能和它们如何协同工作,开发者可以更有效地利用这些工具构建高质量的...

    JSF+Hibernate+Spring整合完整例子

    在"JSF+Hibernate+Spring整合完整例子"中,可能包含了配置文件(如`applicationContext.xml`、`faces-config.xml`)、实体类(对应Hibernate的映射文件)、DAO接口和实现、服务类、JSF页面(`.xhtml`文件)以及相关...

    jsf + spring结合所需jar包

    本资源提供的"jsf + spring结合所需jar包"包含了实现这种结合所需的依赖库,使得开发者无需单独寻找各个组件的jar文件,方便快捷地搭建开发环境。 JSF是一个MVC(Model-View-Controller)架构的Java Web组件框架,...

    JSF2 + Primefaces3 + Spring3 & Hibernate4 Integration Project

    **JSF2 + Primefaces3 + Spring3 & Hibernate4 集成项目详解** JavaScript Framework (JSF) 是Java平台上的一种用于构建用户界面的MVC(Model-View-Controller)框架,而Primefaces是一个基于JSF的开源UI组件库,...

    JSF1.2+Spring2.0+Hibernate3.2的一个登陆实例

    在本实例中,我们探索的是一个基于JSF 1.2、Spring 2.0和Hibernate 3.2的登录应用。这个集成框架是企业级Java应用程序开发的常见选择,因为它提供了模型-视图-控制器(MVC)架构、依赖注入(DI)以及持久化管理的...

    JSF+Hibernate_Spring

    - `lib`: 存放项目依赖的第三方库,如JSF实现库、Hibernate库和Spring库等。 综合以上,"JSF+Hibernate_Spring"项目是一个利用JSF作为前端展示层,Hibernate作为持久层,Spring作为整体架构和业务逻辑控制的Java ...

Global site tag (gtag.js) - Google Analytics