📄 userdaoimpl.java
字号:
package org.whatisjava.dang.dao.hibernate;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.whatisjava.dang.dao.UserDao;
import org.whatisjava.dang.domain.User;
import org.whatisjava.dang.util.DaoException;
public class UserDaoImpl implements UserDao {
private static Logger logger = Logger.getLogger(BookDaoImpl.class);
public void addUser(User user) throws DaoException {
Session session = null;
Transaction tx = null;
try {
session = HbSessionFactory.getSession();
tx = session.beginTransaction();
session.save(user);
tx.commit();
} catch (HibernateException e) {
tx.rollback();
logger.error("", e);
throw new DaoException("", e);
} finally {
HbSessionFactory.closeSession();
}
}
public User getUser(Integer id) throws DaoException {
Session session = null;
try {
session = HbSessionFactory.getSession();
User user = (User) session.get(User.class, id);
return user;
} catch (HibernateException e) {
logger.error("", e);
throw new DaoException("", e);
} finally {
HbSessionFactory.closeSession();
}
}
public void updateUser(User user) throws DaoException {
Session session = null;
Transaction tx = null;
try {
session = HbSessionFactory.getSession();
tx = session.beginTransaction();
session.update(user);
tx.commit();
} catch (HibernateException e) {
tx.rollback();
logger.error("", e);
throw new DaoException("", e);
} finally {
HbSessionFactory.closeSession();
}
}
public User findUserByEmail(String email) throws DaoException {
Session session = null;
try {
session = HbSessionFactory.getSession();
Query query = session.createQuery("from User u where u.email=?");
query.setParameter(0, email);
List<?> list = query.list();
if (list.size() == 1) {
return (User) list.get(0);
}
return null;
} catch (HibernateException e) {
logger.error("", e);
throw new DaoException("", e);
} finally {
HbSessionFactory.closeSession();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -