hibernate实现简单的CRUD

2019-03-28 10:43|来源: 领悟书生

抽取出hibernate的工具类:

package org.zttc.itat.util;
 
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
 
public class HibernateUtil {
    private final static SessionFactory FACTORY = buildSessionFactory();
 
    private static SessionFactory buildSessionFactory() {
        Configuration cfg = new Configuration().configure();
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
            .applySettings(cfg.getProperties()).buildServiceRegistry();
        SessionFactory factory = cfg.buildSessionFactory(serviceRegistry);
        return factory;
    }
     
    public static SessionFactory getSessionFactory() {
        return FACTORY;
    }
     
    public static Session openSession() {
        return FACTORY.openSession();
    }
     
    public static void close(Session session) {
        if(session!=null) 
            session.close();
    }
}


具体的增删改查:

package org.zttc.itat.test;
 
import java.text.SimpleDateFormat;
import java.util.List;
 
import org.hibernate.Session;
import org.junit.Test;
import org.zttc.itat.model.User;
import org.zttc.itat.util.HibernateUtil;
 
@SuppressWarnings("unchecked")
public class TestCRUD {
    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    @Test
    public void testAdd() {
        Session session = null;
        try {
            session = HibernateUtil.openSession();
            session.beginTransaction();
             
            User u = new User();
            u.setBorn(sdf.parse("1977-11-22"));
            u.setNickname("张老七");
            u.setPassword("123");
            u.setUsername("zhanglaowu");
            session.save(u);
             
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            if(session!=null) 
                session.getTransaction().rollback();
        } finally {
            HibernateUtil.close(session);
        }
    }
     
    @Test
    public void testLoad() {
        Session session = null;
        try {
            session = HibernateUtil.openSession();
            User u = (User)session.load(User.class,2);
            System.out.println(u);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            HibernateUtil.close(session);
        }
    }
     
    @Test
    public void testUpdate() {
        Session session = null;
        try {
            session = HibernateUtil.openSession();
            session.beginTransaction();
            User u = (User)session.load(User.class, 2);
            u.setNickname("张小四");
            session.update(u);
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            if(session!=null) session.getTransaction().rollback();
        } finally {
            HibernateUtil.close(session);
        }
    }
     
    @Test
    public void testDelete() {
        Session session = null;
        try {
            session = HibernateUtil.openSession();
            session.beginTransaction();
            User u = new User();
            u.setId(2);
            session.delete(u);
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            if(session!=null) session.getTransaction().rollback();
        } finally {
            HibernateUtil.close(session);
        }
    }
     
    @Test
    public void testList() {
        Session session = null;
        try {
            session = HibernateUtil.openSession();
            List<User> users = session.createQuery("from User").list();
            for(User u:users) {
                System.out.println(u);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            HibernateUtil.close(session);
        }
    }
     
    @Test
    public void testPager() {
        Session session = null;
        try {
            session = HibernateUtil.openSession();
            List<User> users = session.createQuery("from User")
                                .setFirstResult(0)
                                .setMaxResults(2).list();
            for(User u:users) {
                System.out.println(u);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            HibernateUtil.close(session);
        }
    }
}


本文链接:hibernate实现简单的CRUD,由领悟书生原创(笔记),转载请注明出处http://www.656463.com/article/393

相关问答

更多