当前位置:编程学习 > JAVA >>

Hibernate入门BLOG [四、Hibernate的CRUD简单总结]

[java] 
在上面几篇BLOG中我们分别简单的讲述了hibernate是如何进行CRUD的。 
这篇我们将这些综合起来分别操作一下:目的是将他们总结备份一下、请看代码: 
一、  设计拿到session的类HibernateUtils 
public class HibernateUtils { 
    private static SessionFactory sf; 
    private static Session s; 
     
    //静态设计模式在初始化的时候加载 
    static{ 
        Configuration con = new Configuration(); 
        con.configure(); 
        sf = con.buildSessionFactory(); 
    } 
 
    //获取对象的方法 
    public static Session getS() { 
        s = sf.openSession(); 
        return s; 
    } 

二、  利用hibernate提供的接口进行CRUD操作: 
 
private static Session s = HibernateUtils.getS(); 
    private List<User> list; 
     
    //面向对象的查询方法QueryByCriteria 
    public List<User> QueryByCriteria() { 
        Criteria c = s.createCriteria(User.class); 
        c.add(Restrictions.eq("name", "zhanglei")); 
        list = c.list(); 
        return list; 
    } 
 
    //hql的查询方法 
    public List<User> QueryByHql() { 
        String hql = "from User where name=?"; 
        Query q = s.createQuery(hql); 
        q.setString(0,"zhanglei"); 
        list = q.list(); 
        return list; 
    } 
 
    //通配符的查询方法 
    public List<User> QueryByTongPei() { 
        String tongpei = "from User where name=:m"; 
        Query q = s.createQuery(tongpei); 
        q.setString("m", "zhanglei"); 
        list = q.list(); 
        return list; 
    } 
      www.zzzyk.com
    //添加用户的方法 
    public void UserAdd() { 
        Transaction tx = s.beginTransaction(); 
        User user = new User(); 
        user.setName("zhanglei"); 
        user.setPass("pass"); 
         
        s.save(user); 
        tx.commit(); 
    } 
 
    //删除用户的方法 
    public void UserDelete() { 
        Transaction tx = s.beginTransaction(); 
        User user = (User) s.get(User.class, 1); 
        s.delete(user); 
        tx.commit(); 
    } 
 
    //更新用户的方法 
    public void UserUpdate() { 
        Transaction tx = s.beginTransaction(); 
        User user = (User) s.get(User.class, 12); 
        user.setName("zhanglong"); 
        s.update(user); 
        tx.commit(); 
    } 
 
补充: 
分页的set方法: 
q.setFirstResult(currentPage); 
q.setMaxResults(pagesize); 
作者:zhang6622056
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,