天天看点

Hibernate中Hql操作

在我们需要处理数据量比较大的时候,如果依旧单个修改则会造成效率低下

所以,在这个时候,我们需要用到的就是批量修改,也就是Hql

同昨天的是同一个例子,使用user表,因为hibernate中已经将sql语句封装好,所以,我们使用它的createQuery

不多废话,直接上源码

package dao;

import java.util.List;

import javax.management.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

public class TestHql {

       private static SessionFactory sessionFactory=null;

       private Session session=null;

       Transaction transaction=null;

       static {

      try {

sessionFactory=new Configuration().configure().buildSessionFactory();

} catch (Exception e) {

// TODO: handle exception

}

       }

      public List queryUserList(){

     List list=null;

     session=sessionFactory.openSession();

     String qsl="from User ";

     try {

org.hibernate.Query query=session.createQuery(qsl);

list=query.list();

System.out.println(list);

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}finally{

session.close();

}

return list;

      }

        public List queryByName(String keyName){

        List list=null;

     session=sessionFactory.openSession();

     String qsl="from User as user where user.name like:keyName";

     try {

org.hibernate.Query query=session.createQuery(qsl);

query.setString("keyName","%"+keyName+"%");

list=query.list();

System.out.println(list);

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}finally{

session.close();

}

return list;

        }

/*

根据姓名,批量删除用户

        public void delectUserByName(String name){

        session=sessionFactory.openSession();

        session.beginTransaction();

        String sql="delete from User as user where user.name=?";

        session.createQuery(sql).setString(0, name).executeUpdate();

        //session.createQuery(sql).executeUpdate();  

        session.getTransaction().commit();

        session.close();

        }

        public static void main(String[] args) {

TestHql t=new TestHql();

//t.queryByName("zh");

//t.queryUserList();

t.delectUserByName("");

}

}