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

利用java 泛型实现BaseDao

阅读更多

package com.dao;

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

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Repository
@Transactional
public class BaseDao<T> {

 @PersistenceContext
 private EntityManager em;

 public void persist(T t) {
  em.persist(t);
 }

 @Transactional(readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 public T save(T t) {
  return em.merge(t);
 }
 
 public void delete(T t){
  em.remove(t);
 }
 
 @Transactional(readOnly=true,isolation=Isolation.READ_COMMITTED)
 public T find(Class<T> clazz,Serializable id){
  return em.getReference(clazz, id);
 }
 
 @SuppressWarnings("unchecked")
 public List<T> find(String jpql){
  return em.createQuery(jpql).getResultList();
 }
 
 @SuppressWarnings("unchecked")
 public List<T> find(String jpql,Object param){
  return em.createQuery(jpql).setParameter(1, param).getResultList();
 }
 
 @SuppressWarnings("unchecked")
 public List<T> find(String jpql,Object[] param){
  Query query=em.createQuery(jpql);
  for(int i=1;i<=param.length;i++){
   query.setParameter(i, param[i-1]);
  }
  return query.getResultList();
 }
 
 public int findTotalCount(String jpql){
  return ((Long)em.createQuery(jpql).getSingleResult()).intValue();
 }
}

分享到:
评论

相关推荐

    java泛型BaseDao与BaseService

    java泛型BaseDao与BaseService

    JAVA泛型加减乘除

    这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...

    java 泛型实现坐标打印

    java 泛型实现坐标打印 java 泛型实现坐标打印 java 泛型实现坐标打印

    Java泛型编程指南.pdf

    Java泛型编程指南.pdf 此文章译自SUN的泛型编程指南

    Java泛型和集合

    Java Generics and Collections 英文版,详细描述java 泛型技术

    java 泛型接口示例

    java 泛型接口示例 java 泛型接口示例 java 泛型接口示例

    java 泛型类的类型识别示例

    java 泛型类的类型识别示例 java 泛型类的类型识别示例 java 泛型类的类型识别示例

    java 泛型方法使用示例

    java 泛型方法使用示例 java 泛型方法使用示例 java 泛型方法使用示例

    1.java泛型定义.zip

    1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1....

    4.java泛型的限制.zip

    4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip...

    java泛型技术之发展

    java泛型技术之发展,学习JAVA 泛型的不错东东

    Java泛型的用法及T.class的获取过程解析

    主要介绍了Java泛型的用法及T.class的获取过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    java泛型总结

    深入理解java泛型,包括类名泛型的定义,方法泛型定义,泛型的返回

    java泛型学习ppt

    java,学习java泛型,java培训之泛型.pptxjava培训之泛型.pptxjava培训之泛型.pptxjava培训之泛型.pptx

    很好的Java泛型的总结

    很好的Java泛型的总结,看完之后你一定会知道java泛型的底层机制,你一定会学会Java泛型!

    Java反射泛型,实现数据库的动态增删改查等功能

    在Java中运用反射+泛型,实现数据库的动态增删改查等功能,可以是Mysql, 也可以是SQL Server,oracle 也行。本代码是支持SQL Server和oracle的。

    java泛型详解.pdf

    java泛型详解.pdf

    JAVA泛型简单排序实例

    JAVA泛型源代码实现以下功能:返回数组元素的最大值/最小值下标;判断数组元素是否按升序排列;T对象数组排序;二分法查找key元素;

    java泛型的内部原理及更深应用

    本课程为传智播客《张孝祥Java高新技术》视频教程,教程采用的AVI方式发布,所以看起来很流畅,大家可以通过本套视频第一集包中附带的CamPlay.exe(拖入即可)观看和学习。

    思维导图之Java泛型详解

    思维导图之Java泛型详解

Global site tag (gtag.js) - Google Analytics