在我们需要处理数据量比较大的时候,如果依旧单个修改则会造成效率低下
所以,在这个时候,我们需要用到的就是批量修改,也就是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("");
}
}