首页 > 代码库 > Hibernate反向工程生成DAO
Hibernate反向工程生成DAO
通过Hibernate反向工程生成个DAO:
package dao;import java.util.List;import org.hibernate.LockMode;import org.hibernate.Query;import org.hibernate.criterion.Example;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * A data access object (DAO) providing persistence and search support for * Student entities. Transaction control of the save(), update() and delete() * operations can directly support Spring container-managed transactions or they * can be augmented to handle user-managed Spring transactions. Each of these * methods provides additional information for how to configure it for the * desired type of transaction control. * * @see dao.Student * @author MyEclipse Persistence Tools */public class StudentDAO extends BaseHibernateDAO { private static final Logger log = LoggerFactory.getLogger(StudentDAO.class); // property constants public static final String SNAME = "sname"; public static final String EMAIL = "email"; public void save(Student transientInstance) { log.debug("saving Student instance"); try { getSession().save(transientInstance); log.debug("save successful"); } catch (RuntimeException re) { log.error("save failed", re); throw re; } } public void delete(Student persistentInstance) { log.debug("deleting Student instance"); try { getSession().delete(persistentInstance); log.debug("delete successful"); } catch (RuntimeException re) { log.error("delete failed", re); throw re; } } public Student findById(java.lang.Integer id) { log.debug("getting Student instance with id: " + id); try { Student instance = (Student) getSession().get("dao.Student", id); return instance; } catch (RuntimeException re) { log.error("get failed", re); throw re; } } public List findByExample(Student instance) { log.debug("finding Student instance by example"); try { List results = getSession().createCriteria("dao.Student") .add(Example.create(instance)).list(); log.debug("find by example successful, result size: " + results.size()); return results; } catch (RuntimeException re) { log.error("find by example failed", re); throw re; } } public List findByProperty(String propertyName, Object value) { log.debug("finding Student instance with property: " + propertyName + ", value: " + value); try { String queryString = "from Student as model where model." + propertyName + "= ?"; Query queryObject = getSession().createQuery(queryString); queryObject.setParameter(0, value); return queryObject.list(); } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } } public List findBySname(Object sname) { return findByProperty(SNAME, sname); } public List findByEmail(Object email) { return findByProperty(EMAIL, email); } public List findAll() { log.debug("finding all Student instances"); try { String queryString = "from Student"; Query queryObject = getSession().createQuery(queryString); return queryObject.list(); } catch (RuntimeException re) { log.error("find all failed", re); throw re; } } public Student merge(Student detachedInstance) { log.debug("merging Student instance"); try { Student result = (Student) getSession().merge(detachedInstance); log.debug("merge successful"); return result; } catch (RuntimeException re) { log.error("merge failed", re); throw re; } } public void attachDirty(Student instance) { log.debug("attaching dirty Student instance"); try { getSession().saveOrUpdate(instance); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } } public void attachClean(Student instance) { log.debug("attaching clean Student instance"); try { getSession().lock(instance, LockMode.NONE); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } }}
以及相应的studentPO.java
package dao;/** * Student entity. @author MyEclipse Persistence Tools */public class Student extends AbstractStudent implements java.io.Serializable { // Constructors /** default constructor */ public Student() { } /** full constructor */ public Student(String sname, String email) { super(sname, email); }}
package dao;/** * AbstractStudent entity provides the base persistence definition of the * Student entity. @author MyEclipse Persistence Tools */public abstract class AbstractStudent implements java.io.Serializable { // Fields private Integer sid; private String sname; private String email; // Constructors /** default constructor */ public AbstractStudent() { } /** full constructor */ public AbstractStudent(String sname, String email) { this.sname = sname; this.email = email; } // Property accessors public Integer getSid() { return this.sid; } public void setSid(Integer sid) { this.sid = sid; } public String getSname() { return this.sname; } public void setSname(String sname) { this.sname = sname; } public String getEmail() { return this.email; } public void setEmail(String email) { this.email = email; }}
package dao;import org.hibernate.Session;/** * Data access interface for domain model * @author MyEclipse Persistence Tools */public interface IBaseHibernateDAO { public Session getSession();}
package dao;import hibernate.HibernateSessionFactory;import org.hibernate.Session;/** * Data access object (DAO) for domain model * @author MyEclipse Persistence Tools */public class BaseHibernateDAO implements IBaseHibernateDAO { public Session getSession() { return HibernateSessionFactory.getSession(); } }
Hibernate反向工程生成DAO
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。