测试代码HqlPaginationExample.java
package org.test;
import org.vo.UserTable;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import java.util.List;
public class HqlPaginationExample {
public static void main(String[] args) {
// 配置Hibernate
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
// 获取Session
Session session = sessionFactory.openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
// 定义HQL查询语句
String hql = "FROM UserTable";
// 创建查询对象
Query query = session.createQuery(hql);
// 设置分页参数
int pageNumber = 1; // 页码,从1开始
int pageSize = 5; // 每页记录数
query.setFirstResult((pageNumber - 1) * pageSize); // 设置起始位置
query.setMaxResults(pageSize); // 设置每页记录数
// 执行查询并获取结果
List<UserTable> resultList = query.list();
// 处理查询结果
System.out.println("第"+pageNumber+"页"+","+"共"+pageSize+"条数据");
for (UserTable user : resultList) {
System.out.println(user.getId() + ", " + user.getUsername() + ", " + user.getPassword());
}
transaction.commit();
} catch (Exception e) {
if (transaction != null) {
transaction.rollback();
}
e.printStackTrace();
} finally {
session.close();
sessionFactory.close();
}
}
}
POJO类及映射文件
package org.vo;
public abstract class AbstractUserTable implements java.io.Serializable {
private Integer id;
private String username;
private String password;
public AbstractUserTable() {
}
public AbstractUserTable(String username, String password) {
this.username = username;
this.password = password;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
}
UserTable.java文件
package org.vo;
public class UserTable implements java.io.Serializable {
private Integer id;
private String username;
private String password;
public UserTable() {
}
public UserTable(String username, String password) {
this.username = username;
this.password = password;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
}
数据库(SQL server)设计(id属性自增)
完整项目代码
链接: https://pan.baidu.com/s/1jBAjLqkSFot-rLnPmR6HCw
提取码: e9i2
运行后即可查看结果,友情提示:导入代码后需为项目添加Hibernate开发能力