关键词不能为空

当前您在: 主页 > 英语 >

新泛型)

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-13 16:06
tags:

-

2021年2月13日发(作者:phd)



基于泛型


DAO


的< /p>


spring



hibernate


的集成


(



) < /p>


编写


Spring+Hibernate


框架下的应用,


总是离不了编写一个通用的泛型


Generic HibernateDao



查阅了网上不少的


GenericHibernateDao


实现,归纳整理为如下实现,供后续 编码参考。




首先定义接口泛型


DAO


接口



GenericDao



package



import izable;


import tion;


import or;


import


import ia;


import de;


import edCriteria;




public interface GenericDao {



// --------------------


基本检索、增加、修改、删除操作



--------------------




//


根据主键获取实体。如果没有相应的实体,返回



null





public T get(PK id);




//


根据主键获取实体并加锁。如果没有相应的实体,返回



null





public T getWithLock(PK id, LockMode lock);




//


根据主键获取实体。如果没有相应的实体,抛出异常。




public T load(PK id);




//


根据主键获取实体并加锁。如果没有相应的实体,抛出异常。




public T loadWithLock(PK id, LockMode lock);




//


获取全部实体。




public List loadAll();




// loadAllWithLock() ?




//


更新实体




public void update(T entity);




//


更新实体并加锁




public void updateWithLock(T entity, LockMode lock);




//


存储实体到数据库






public void save(T entity);




// saveWithLock()




//


增加或更新实体




public void saveOrUpdate(T entity);




//


增加或更新集合中的全部实体




public void saveOrUpdateAll(Collection entities);




//


删除指定的实体




public void delete(T entity);




//


加锁并删除指定的实体




public void deleteWithLock(T entity, LockMode lock);




//


根据主键删除指定实体




public void deleteByKey(PK id);




//


根据主键加锁并删除指定的实体




public void deleteByKeyWithLock(PK id, LockMode lock);




//


删除集合中的全部实体




public void deleteAll(Collection entities);




// -------------------- HSQL ----------------------------------------------




//

使用


HSQL


语句直接增加、更新、删除实体




public int bulkUpdate(String queryString);




//


使用带参数的


HSQL


语句增加、更新、删除实体




public int bulkUpdate(String queryString, Object[] values);




//

使用


HSQL


语句检索数据




public List find(String queryString);




//


使用带参数的


HSQL


语句检索数据




public List find(String queryString, Object[] values);




//


使用带命名的参数的


HSQL< /p>


语句检索数据




public List findByNamedParam(String queryString, String[] paramNames,



Object[] values);




//


使用命名的

< p>
HSQL


语句检索数据






public List findByNamedQuery(String queryName);




//


使用带参数的命名


HSQL


语句检索数据




public List findByNamedQuery(String queryName, Object[] values);




//


使用带命名参数的命名


HSQL


语句检 索数据




public List findByNamedQueryAndNamedParam(String queryName,



String[] paramNames, Object[] values);




//

使用


HSQL


语句检索数据,返回



Iterator



public Iterator iterate(String queryString);




//


使用带参数


HSQL

< p>
语句检索数据,返回



Iterator



public Iterator iterate(String queryString, Object[] values);




//


关闭检索返回的



Iterator



public void closeIterator(Iterator it);




// -------------------------------- Criteria ------------------------------




//


创建与会话无关的检索标准对象




public DetachedCriteria createDetachedCriteria();




//


创建与会话绑定的检索标准对象




public Criteria createCriteria();




//


使用指定的检索标准检索数据




public List findByCriteria(DetachedCriteria criteria);




//


使用指定的检索标准检索数据,返回部分记录




public List findByCriteria(DetachedCriteria criteria, int firstResult,



int maxResults);




//


使用指定的实体及属性检索(满足除主键外属性=实体值)数据




public List findEqualByEntity(T entity, String[] propertyNames);




//


使用指定的实体及属性


(


非主键


)


检索(满足属性


like


串实体值)数据




public List findLikeByEntity(T entity, String[] propertyNames);




//


使用指定的检索标准检索数据,返回指定范围的记录




public Integer getRowCount(DetachedCriteria criteria);




//


使用指定的检索标准检索数据,返回指定统计值




public Object getStatValue(DetachedCriteria criteria, String propertyName,





String StatName);




// -------------------------------- Others --------------------------------




//


加锁指定的实体




public void lock(T entity, LockMode lockMode);




//


强制初始化指定的实体




public void initialize(Object proxy);




//


强制立即更新缓冲数据到数据库(否则仅在事务提交时才更新)




public void flush();



}



实现


GenericDao


接口的


Hibe rnate


的实现类



GenericHibernateDao



package



import izable;


import terizedType;


import


import tion;


import or;


import


import tyUtils;


import ia;


import de;


import edCriteria;


import e;


import ode;


import


import tions;


import ctions;


import ateDaoSupport;




@SuppressWarnings(


public class GenericHibernateDao



extends HibernateDaoSupport implements GenericDao {



// < /p>


实体类类型


(


由构造方法自动赋值


)



private Class entityClass;




//


构造方法,根据实例类自动获取实体类类型






public GenericHibernateDao() {



Class = null;



Class c = getClass();



Type t = ericSuperclass();



if (t instanceof ParameterizedType) {



Type[] p = ((ParameterizedType) t).getActualTypeArguments();



Class = (Class) p[0];



}



}




// --------------------


基本检索、增加、修改、删除操作



--------------------




//


根据主键获取实体。如果没有相应的实体,返回



null





public T get(PK id) {



return (T) getHibernateTemplate().get(entityClass, id);



}




//


根据主键获取实体并加锁。如果没有相应的实体,返回



null





public T getWithLock(PK id, LockMode lock) {



T t = (T) getHibernateTemplate().get(entityClass, id, lock);



if (t != null) {



(); //


立即刷新,否则锁不会生效。




}



return t;



}




//


根据主键获取实体。如果没有相应的实体,抛出异常。




public T load(PK id) {



return (T) getHibernateTemplate().load(entityClass, id);



}




//


根据主键获取实体并加锁。如果没有相应的实体,抛出异常。




public T loadWithLock(PK id, LockMode lock) {



T t = (T) getHibernateTemplate().load(entityClass, id, lock);



if (t != null) {



(); //


立即刷新,否则锁不会生效。




}



return t;



}




//


获取全部实体。




public List loadAll() {



return (List) getHibernateTemplate().loadAll(entityClass);



}


-


-


-


-


-


-


-


-



本文更新与2021-02-13 16:06,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/651198.html

新泛型)的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文