Hibernate查询语言(HQL)是面向对象的查询语言,其结构与SQL查询相似,不同的是,HQL查询的主体是持久化类而不是数据表。
//基本的HQL更新,使用HQL更新和删除记录把李四改成四里
public void testUpdate(){
Configuration cfg =null;
SessionFactory sf=null;
Session session=null;
Transaction ts=null;
try {
sf=HibernateUtil.getSessionFactory();//SessionFactory单态模式
session=sf.openSession();//保证每个读写线程有唯一的session实例
ts=session.beginTransaction();
Query query = session.createQuery("update User u set u.name='老李' where u.name='李四'");
query.executeUpdate();
ts.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(ts !=null) {
ts.rollback();
}
}finally {
}
}
//15、基本的HQL查询,在user.hbm.xml中定义命名查询标签
public void testQueryByQueryTag(){
Configuration cfg =null;
SessionFactory sf=null;
Session session=null;
Transaction ts=null;
try {
sf=HibernateUtil.getSessionFactory();//SessionFactory单态模式
session=sf.getCurrentSession();//保证每个读写线程有唯一的session实例
ts=session.beginTransaction();
Query query=session.getNamedQuery("findUserByName");
query.setParameter("username", "李白");
List<User> users=query.list();
for(int i=0;i<users.size();i++)
{
User u =users.get(i);
System.out.println(u.toString());
}
ts.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(ts !=null) {
ts.rollback();
}
}finally {
}
}
//14、分页查询
public void testQueryByPage() {
QueryPage(3);
}
public void QueryPage(int pageSize){
Configuration cfg =null;
SessionFactory sf=null;
Session session=null;
Transaction ts=null;
try {
sf=HibernateUtil.getSessionFactory();
session=sf.openSession();
ts=session.beginTransaction();
Query query=session.createQuery("select count(*) from User u");
Number cnts = (Number)query.uniqueResult();
int userCount=cnts.intValue();
// Query query=session.createQuery("from User u");
// List<User> users=query.getResultList();
// int userCount=users.size();
int pageCount=0;
pageCount=userCount/pageSize;
if(userCount%pageSize!=0) {
pageCount++;
}
Query query1=session.createQuery("from User u");
for(int i=0;i<pageCount;i++)
{
System.out.println("第"+i+"页");
System.out.println("---------------------------------------------------------------");
query1.setFirstResult(i*pageSize);
query1.setMaxResults(pageSize);
List<User> us=query1.list();
for(User u : us) {
System.out.println(u.toString());
}
}
ts.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(ts !=null) {
ts.rollback();
}
}finally {
}
}
//13、分页查询
public void testQueryPage(){
Configuration cfg =null;
SessionFactory sf=null;
Session session=null;
Transaction ts=null;
try {
sf=HibernateUtil.getSessionFactory();
session=sf.getCurrentSession();
ts=session.beginTransaction();
Query query=session.createQuery("from User u");
query.setFirstResult(0);
query.setMaxResults(5);
List<User> users=query.getResultList();
for(int i=0;i<users.size();i++)
{
User u =(User)users.get(i);
System.out.println(u.toString());
}
ts.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(ts !=null) {
ts.rollback();
}
}finally {
}
}