package dao.impl; import dao.RegisterDao; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.HibernateTemplate; import pojo.Register; import java.io.Serializable; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; /** * User: yumingzhe * Date: 5/21/12 * Time: 8:22 PM */ public class RegisterDaoImpl implements RegisterDao { private HibernateTemplate template; private SessionFactory factory; public HibernateTemplate getTemplate() { if (template == null) { template = new HibernateTemplate(factory); } return template; } public void setTemplate(HibernateTemplate template) { this.template = template; } public SessionFactory getFactory() { return factory; } public void setFactory(SessionFactory factory) { this.factory = factory; } @Override public List<Register> getAllRegister() { List registers = this.getTemplate().executeFind(new HibernateCallback<Object>() { @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery("from Register"); return query.list(); } }); return registers; } @Override public Register getRegisterBySequence(final String sequence) { List registers = this.getTemplate().executeFind(new HibernateCallback<Object>() { @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery("from Register as r where r.registerSequence= :secret").setString("secret", sequence); return query.list(); } }); if (registers.size() == 0) { return null; } return (Register) registers.get(0); } @Override public void deleteAllRegisterByUID(final int uid) { List<Register> registers = (ArrayList<Register>) this.getTemplate().executeFind(new HibernateCallback<Object>() { @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery("from Register as r where r.siteUser.uid= :uid").setInteger("uid", uid); return (ArrayList<Register>) query.list(); } }); for (Register register : registers) { this.getTemplate().delete(register); } } @Override public Serializable saveRegister(Register register) { return this.getTemplate().save(register); } }