Query接口主要实现使用HQL或SQL语句查询数据列表.
public void testByQuery() {
Session session = null;
Transaction ts = null;
try {
session = HibernateUtils.getSession();
ts = HibernateUtils.getTransaction(session);
// 创建一个Query,这个参数就是HQL语言.
// form User的意思就是查询User这个对象.
Query query = session.createQuery("form User");
// 获得数据列表.不需要在list中一个个添加数据了.
List userList = query.list();
for(Iterator iterator = userList.iterator(); iterator.hasNext();) {
User user = (User)iterator.next();
System.out.println(user.getId());
System.out.println(user.getName());
}
ts.commit();
}catch(Exception e) {
e.printStackTrace();
ts.rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
使用Query进行分页显示
public void testByQuery() {
Session session = null;
Transaction ts = null;
try {
session = HibernateUtils.getSession();
ts = HibernateUtils.getTransaction(session);
Query query = session.createQuery("form User");
// 起始页.
query.setFirstResult(0);
// 每页显示多少行.
query.setMaxResults(2);
List userList = query.list();
for(Iterator iterator = userList.iterator(); iterator.hasNext();) {
User user = (User)iterator.next();
System.out.println(user.getId());
System.out.println(user.getName());
}
ts.commit();
}catch(Exception e) {
e.printStackTrace();
ts.rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
执行后就会显示数据表中的最前面两条数据.