Eclipse下生成HibernateDAO中的几个方法

* save()方法提供了向数据库中添加数据的功能,但只能添加,这个DAO没有生成Update()的方法
* 但你可以简单的把save()方法改称具有Update功能:将getSession().save * (transientInstance);这句改成
* getSession().merge(transientInstance);或者getSession().saveOrUpdate
*   (transientInstance);

创新互联建站专业成都网站制作、网站设计,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文发稿等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。

 
 
 
  1. public void save(User transientInstance) {  
  2.    log.debug("saving User instance");  
  3.    try {  
  4.     Session session=getSession();  
  5.     Transaction tx=session.beginTransaction();  
  6.     session.save(transientInstance);  
  7.     tx.commit();  
  8.     session.close();  
  9.     log.debug("save successful");  
  10.    } catch (RuntimeException re) {  
  11.     log.error("save failed", re);  
  12.     throw re;  
  13.    }  

delete()方法用来删除的 实际上我们会用下边的这个方法进行删除

 
 
 
  1. public void delete(Integer id){  
  2.    log.debug("deleting User instance...");  
  3.    User user=findById(id);  
  4.    delete(user);  
  5. }  
  6.  
  7. public void delete(User persistentInstance) {  
  8.    log.debug("deleting User instance");  
  9.    try {  
  10.     Session session=getSession();  
  11.     Transaction tx=session.beginTransaction();  
  12.     session.delete(persistentInstance);  
  13.     tx.commit();  
  14.     session.close();  
  15.     log.debug("delete successful");  
  16.    } catch (RuntimeException re) {  
  17.     log.error("delete failed", re);  
  18.     throw re;  
  19.    }  
  20. }  

根据编号进行查找

 
 
 
  1. public User findById(java.lang.Integer id) {  
  2.    log.debug("getting User instance with id: " + id);  
  3.    try {  
  4.     User instance = (User) getSession().get("hbm.User", id);  
  5.     return instance;  
  6.    } catch (RuntimeException re) {  
  7.     log.error("get failed", re);  
  8.     throw re;  
  9.    }  

findByExample()方法实现的功能相当于"select * from Usertable"实现的功能就是查询所有 数据.

 
 
 
  1. public List findByExample(User instance) {  
  2.    log.debug("finding User instance by example");  
  3.    try {  
  4.     List results = getSession().createCriteria("hbm.User").add(  
  5.       Example.create(instance)).list();  
  6.     log.debug("find by example successful, result size: " 
  7.       + results.size());  
  8.     return results;  
  9.    } catch (RuntimeException re) {  
  10.     log.error("find by example failed", re);  
  11.     throw re;  
  12.    }  

findByProperty()方法用来灵活的提供一种按条件查询的方法,你可以自己定义要按什么样的方 式查询.

 
 
 
  1. public List findByProperty(String propertyName, Object value) {  
  2.    log.debug("finding User instance with property: " + propertyName  
  3.      + ", value: " + value);  
  4.    try {  
  5.     String queryString = "from User as model where model." 
  6.       + propertyName + "= ?";  
  7.     Query queryObject = getSession().createQuery(queryString);  
  8.     queryObject.setParameter(0, value);  
  9.     return queryObject.list();  
  10.    } catch (RuntimeException re) {  
  11.     log.error("find by property name failed", re);  
  12.     throw re;  
  13.    }  
  14. }  
  15.  
  16.  
  17. public List findByName(Object name) {  
  18.    return findByProperty(NAME, name);  
  19. }  
  20.  
  21. public List findBySex(Object sex) {  
  22.    return findByProperty(SEX, sex);  
  23. }  
  24.  
  25. public List findByAge(Object age) {  
  26.    return findByProperty(AGE, age);  
  27. }  
  28.  
  29. public List findAll() {  
  30.    log.debug("finding all User instances");  
  31.    try {  
  32.     String queryString = "from User";  
  33.     Query queryObject = getSession().createQuery(queryString);  
  34.     return queryObject.list();  
  35.    } catch (RuntimeException re) {  
  36.     log.error("find all failed", re);  
  37.     throw re;  
  38.    }  
  39. }  

将传入的detached状态的对象的属性复制到持久化对象中,并返回该持久化对象   如果该session中没有关联的持久化对象,加载一个,如果传入对象未保存,保存一个副本并作为持久对象返回,传入对象依然保持detached状态。

可以用作更新数据

 
 
 
  1. public User merge(User detachedInstance) {  
  2.    log.debug("merging User instance");  
  3.    try {  
  4.  
  5.     Session session=getSession();  
  6.     Transaction tx=session.beginTransaction();  
  7.      
  8.     User result = (User) session.merge(detachedInstance);  
  9.     tx.commit();  
  10.     session.close();  
  11.     log.debug("merge successful");  
  12.     return result;  
  13.    } catch (RuntimeException re) {  
  14.     log.error("merge failed", re);  
  15.     throw re;  
  16.    }  
  17. }  

将传入的对象持久化并保存。 如果对象未保存(Transient状态),调用save方法保存。如果对象已保存(Detached状态),调用update方法将对象与Session重新关联。

 
 
 
  1. public void attachDirty(User instance) {  
  2.    log.debug("attaching dirty User instance");  
  3.    try {  
  4.     getSession().saveOrUpdate(instance);  
  5.     log.debug("attach successful");  
  6.    } catch (RuntimeException re) {  
  7.     log.error("attach failed", re);  
  8.     throw re;  
  9.    }  

将传入的对象状态设置为Transient状态

 
 
 
  1. public void attachClean(User instance) {  
  2.    log.debug("attaching clean User instance");  
  3.    try {  
  4.     getSession().lock(instance, LockMode.NONE);  
  5.     log.debug("attach successful");  
  6.    } catch (RuntimeException re) {  
  7.     log.error("attach failed", re);  
  8.     throw re;  
  9.    }  

【编辑推荐】

  1. Hibernate对各数据库的连接方言
  2. Hibernate支持Access方言源代码
  3. Hibernate不同数据库的连接及SQL方言
  4. hibernate中update与saveOrUpdate的区别
  5. HIBERNATE方言

当前题目:Eclipse下生成HibernateDAO中的几个方法
标题网址:http://www.stwzsj.com/qtweb/news24/17474.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联