hibernate-2014-02-04

Criteria查询方式

在hibernate中提供了HQL外,还提供了一种更面向对象的查询方式,就是Criteria查询。它的模式其实与QUERY接口都差不多。

示例如下:(关键代码)

sess = HibernateUtil.getSession();
Criteria cri = sess.createCriteria(User.class);
cri.add(Restrictions.eq("id", num));
//实现分页
/*cri.setFirstResult(0);
cri.setMaxResults(1);*/
List<User> list = cri.list(
);

通过hibernate实现简单的DAO层

示例如下:
HibernateUtil:
public final class HibernateUtil {
private static SessionFactory sessionFactory = null;
private HibernateUtil(){}
static{
Configuration cfg = new Configuration();
cfg.configure();
sessionFactory = cfg.buildSessionFactory();}
public  static  SessionFactory getSessionFactory(){
return sessionFactory;}
public static Session getSession(){
return sessionFactory.openSession();}
public static void add(Object entity){
Session sess = null;
Transaction tx = null;
try {
sess = HibernateUtil.getSession();
tx = sess.beginTransaction();
sess.save(entity);
tx.commit();
} finally{
if(sess != null){
sess.close();}}}
public static void delete(Object entity){
Session sess = null;
Transaction tx = null;
try {
sess = HibernateUtil.getSession();
tx = sess.beginTransaction();
sess.delete(entity);
tx.commit();
} finally{
if(sess != null){
sess.close();}}}
public static void update(Object entity){
Session sess = null;
Transaction tx = null;
try {
sess = HibernateUtil.getSession();
tx = sess.beginTransaction();
sess.update(entity);
tx.commit();
} finally{
if(sess != null){
sess.close();}}}
@SuppressWarnings("unchecked")
public static Object get(Class clazz,Serializable id){
Session sess = null;
try {
sess = HibernateUtil.getSession();
Object obj = sess.get(clazz, id);
return obj;
} finally{
if(sess != null){
sess.close();}}}
}

UserDAO:

public interface UserDAO {
public void saveUser(User user);
public void deleteUser(User user);
public void updateUser(User user);
public  User findUserById(int id);
public  User findUserByName(String name);
}

UserDAOHibernate:

public class UserDAOHibernate implements UserDAO {
public void deleteUser(User user) {
HibernateUtil.delete(user);
}
public User findUserById(int id) {
return (User) HibernateUtil.get(User.class, id);
}
public User findUserByName(String name) {
Session sess = null;
try {
sess = HibernateUtil.getSession();
Criteria cri = sess.createCriteria(User.class);
cri.add(Restrictions.eq("name", name));
return (User) cri.uniqueResult();
} finally{
if(sess != null){
sess.close();}}}
public void saveUser(User user) {
HibernateUtil.add(user);}

public void updateUser(User user) {
HibernateUtil.update(user);
}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值