package com.bbs.daoImpl; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.Example; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.bbs.dao.AdminDao; import com.bbs.hibernate.factory.BaseHibernateDAO; import com.bbs.model.Admin; import com.bbs.model.User; public class AdminDaoImpl extends BaseHibernateDAO implements AdminDao{ private static final Logger log = LoggerFactory.getLogger(AdminDao.class); // property constants public static final String USER_NAME = "userName"; public static final String PASSWORD = "password"; public static final String PHOTO_URL = "photoUrl"; public static final String EMAIL = "email"; public static final String TYPE = "type"; public static final String SEX = "sex"; public Admin findById(java.lang.Integer id) { log.debug("getting Admin instance with id: " + id); try { Session session = getSession(); Admin instance = (Admin) session.get("com.bbs.model.Admin", id); session.close(); return instance; } catch (RuntimeException re) { log.error("get failed", re); throw re; } } public List findByProperty(String propertyName, Object value) { log.debug("finding Admin instance with property: " + propertyName + ", value: " + value); try { String queryString = "from Admin as model where model." + propertyName + "= ?"; Session session = getSession(); Query queryObject = session.createQuery(queryString); queryObject.setParameter(0, value); List list = queryObject.list(); session.close(); return list; } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } } public List findByUserName(Object userName) { return findByProperty(USER_NAME, userName); } public List findByPassword(Object password) { return findByProperty(PASSWORD, password); } public List findByPhotoUrl(Object photoUrl) { return findByProperty(PHOTO_URL, photoUrl); } public List findByEmail(Object email) { return findByProperty(EMAIL, email); } public List findByType(Object type) { return findByProperty(TYPE, type); } public List findBySex(Object sex) { return findByProperty(SEX, sex); } @Override public List<Admin> login(String username) { Session session = getSession(); String sql = "from Admin admin where admin.userName=?"; Query query = session.createQuery(sql); query.setString(0, username); List list = query.list(); session.flush(); session.close(); return list; } @Override public void updateAdmin(Admin admin) { Session session = getSession(); Transaction transaction = session.beginTransaction(); session.update(admin);; transaction.commit(); session.flush(); session.close(); } @Override public boolean changePassword(int userId, int oldpasswod, int newpassword) { // TODO Auto-generated method stub return false; } @Override public Admin getAdminById(Integer adminId) { return findById(adminId); } @Override public int getAdminIdByUsername(String username) { List<Admin>admins = findByUserName(username); if (admins != null && admins.size()>0) return admins.get(0).getId(); return -1; } @Override public int getAdminIdByEmail(String email) { List<Admin>admins = findByEmail(email); if (admins != null && admins.size()>0) return admins.get(0).getId(); return -1; } @Override public int isExist(Admin admin) { if (findByUserName(admin.getUserName()).size()>0) return 1; else if (findByEmail(admin.getEmail()).size()>0) return 2; return -1; } }