使用Hibernate在SSH框架中实现分页查询
"SSH实现分页" SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合。本资源主要讲解如何在SSH框架下实现数据的分页显示,这对于大型应用来说是非常重要的,因为能够有效地提高用户体验并减轻服务器压力。 首先,我们看到创建了一个名为`user`的MySQL表,包含`id`(主键)、`username`和`password`三个字段。这是典型的用户信息存储结构。创建表的SQL语句如下: ```sql CREATE TABLE `ding`.`user` ( `id` INT DEFAULT '' NOT NULL, `username` VARCHAR(30), `password` VARCHAR(30), PRIMARY KEY (`id`) ); ``` 接下来,配置了Hibernate的`hibernate.cfg.xml`文件,这是连接数据库的关键。文件中指定了数据库连接的相关属性,如用户名(root)、URL(jdbc:mysql://localhost:3306/ding)、方言(MySQLDialect)以及驱动类(com.mysql.jdbc.Driver)。确保这些配置正确无误,SSH框架才能成功连接到MySQL数据库。 在SSH框架下实现分页,我们需要做以下步骤: 1. 配置Struts2的Action类:创建一个Action类,用于处理用户的请求,并实现分页逻辑。通常会有一个`Pagination`对象来存储当前页数、每页记录数等信息。 2. 编写HQL查询:使用Hibernate的查询语言(HQL)编写获取数据的语句,比如获取第N页的用户数据。HQL允许我们指定分页参数,例如`from User where ... limit start, pageSize`,其中`start`是起始位置(通常为(N-1)* pageSize),`pageSize`是每页大小。 3. 整合Spring:在Spring配置文件中,将Action类注入到Spring容器中,以便于Struts2调用。同时,配置Hibernate的SessionFactory,使其可以通过Spring注入到Action中。 4. 页面展示:在Struts2的JSP页面上,使用Struts2的标签库来展示分页链接和结果。例如,可以使用`s:iterator`标签遍历查询结果,`s:url`和`s:a`标签创建分页链接。 5. 处理请求:当用户点击分页链接时,Struts2会根据URL中的参数(如pageNo)重新调用Action,Action更新`Pagination`对象并重新执行查询,然后返回新的结果页面。 6. 优化和性能:为了提高性能,可以考虑使用缓存策略,如二级缓存,减少对数据库的直接访问。另外,还可以通过优化查询条件、索引等方式进一步提升分页操作的效率。 通过以上步骤,我们可以实现SSH框架下的数据分页功能。这不仅适用于用户列表的展示,还可以应用到其他需要分页的数据查询场景。在实际项目中,分页功能的实现可能还需要考虑其他因素,如国际化、安全性等,但以上步骤提供了一个基本的实现流程。
create table `ding`.`user`(
`id` int default '' not null,
`username` varchar(30),
`password` varchar(30),
primary key (`id`)
);
切换到数据库透视图,新建一个mysql连接(这里就不再多说了)。
新建一个web工程,然后右键选择myeclipse,选择add hibernate........ ,把hibernate的jar加入到工程中,选择的时候注意jar包要放在lib中,可以检查下,其中有一下会选择刚新建的mysql连接,加完以后就会看到SRC下多了一个hibernate.cfg.xml文件,内容包含了配置的连接信息,如下:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/ding
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">mysql</property>
<property name="connection.password">ding</property>
<property name="connection.driver_class">
</property>
</session-factory>
</hibernate-configuration>
切换到数据库透视图,启动那个连接找到建的USER表,右键选择Hibernate Reverse Engineering...,在弹出的框里面点击 Java src folder 一行最右侧的 Browser.. 按钮来选择源码目录,这里我选择自己工程src 目录,并把下面的 Java package 右侧的输入框中输入自己想要的包名,我这里是test,接着选中下面的复选框,我选前面两个:
[x] Hibernate mapping file (*.hbm.xml) for each database table
[x] Java Data Object (POJO <> DB Table)
第2项下面的复选create abstract class我这里不选,点击next,再在ID generator选择increment(自增长),点完成。
返回j2ee透视图,会看到在test包下生成了User.java和User.hbm.xml文件,如下:
public class User implements java.io.Serializable {
private Integer id;
private String username;
private String password;
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
剩余5页未读,继续阅读
- 粉丝: 26
- 资源: 37
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦