关键词不能为空

当前您在: 主页 > 英语 >

新泛型)

作者:高考题库网
来源: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

新泛型)的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文