- 浏览: 5433 次
- 性别:
- 来自: 上海
最近访客 更多访客>>
最新评论
-
595415454:
sarin 写道分页还是做成工具类比较好,可以参考
我还是新手 ...
struts2.0 + hibernate + oracle 分页问题 -
sarin:
分页还是做成工具类比较好,可以参考
struts2.0 + hibernate + oracle 分页问题
最近弄了下 struts2.0 + hibernate + oracle 分页问题的
从网上搜了些资料。总觉得不是很合心意。自己做了例子。
ueser.sql
DROP TABLE "SCOTT"."T_USER" cascade constraints; DROP SEQUENCE "SCOTT"."Q_USER"; CREATE TABLE "SCOTT"."T_USER" ( "ID" CHAR(4 BYTE) NOT NULL ENABLE, "USERNAME" VARCHAR2(20 BYTE) NOT NULL ENABLE, "PASSWORD" VARCHAR2(20 BYTE) NOT NULL ENABLE, CONSTRAINT "T_USER_PK" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM" ENABLE ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE ( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT ) TABLESPACE "SYSTEM" ; CREATE SEQUENCE "SCOTT"."Q_USER" MINVALUE 1 MAXVALUE 9999 INCREMENT BY 1 START WITH 121 CACHE 20 NOORDER NOCYCLE ; Insert into T_USER (ID,USERNAME,PASSWORD) values (Q_USER.nextval,'222','222');
HibernateUtil.java
package hibernate; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; /** * Hibernate的工具类. * @author AmigoXie */ public class HibernateUtil { private static SessionFactory sessionFactory; /** 持有一个单态的Session实例. */ private static final ThreadLocal threadLocal = new ThreadLocal(); /** 持有一个单态的configuration实例. */ private static final Configuration cfg = new Configuration(); private static String CONFIG_FILE_LOCATION = "hibernate/hibernate.cfg.xml"; static { try { sessionFactory = new Configuration().configure(CONFIG_FILE_LOCATION) .buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } /** * 获得当前的Session实例. * @return Session * @throws HibernateException */ public static Session currentSession() throws HibernateException { Session session = (Session) threadLocal.get(); //if (session == null) { if(session==null||session.isOpen()==false){ if (sessionFactory == null) { try { cfg.configure(CONFIG_FILE_LOCATION); sessionFactory = cfg.buildSessionFactory(); } catch (Exception e) { System.err.println("%%%% Error Creating SessionFactory %%%%" + e.getMessage()); } } session = sessionFactory.openSession(); threadLocal.set(session); } return session; } }
User.java
package hibernate; public class User { private String id ; private String userName; private String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
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"> <hibernate-configuration> <session-factory> <!-- properties --> <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:JIM</property> <property name="connection.username">scott</property> <property name="connection.password">tiger</property> <property name="dialect">org.hibernate.dialect.OracleDialect</property> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="show_sql">true</property> <property name="format_sql">false</property> <!-- mapping files --> <mapping resource="hibernate/user.hbm.xml"/> </session-factory> </hibernate-configuration>
user.hbm.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="hibernate"> <class name="User" table="T_USER"> <id name="id" column="ID" type="string"> <generator class="assigned"/> </id> <property name="userName" column="USERNAME" type="string" not-null="true" /> <property name="password" column="PASSWORD" type="string" not-null="true" /> </class> </hibernate-mapping>
IuserDao.java接口
package page; import hibernate.User; import java.util.List; public interface IuserDao { public List<User> displayUser(int offset,int max); public int count(); }
UserDao.java
package page; import hibernate.HibernateUtil; import hibernate.User; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; public class UserDao implements IuserDao { @Override public List<User> displayUser(int offset, int max) { // TODO Auto-generated method stub //PagerModel<User> pm = null; List<User> list =null; String hsql = "from User "; Session session = HibernateUtil.currentSession(); Transaction ts = null; try { ts = session.beginTransaction(); Query query = session.createQuery(hsql); query.setFirstResult(offset); query.setMaxResults(max); list = query.list(); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); if (ts != null) { ts.rollback(); } }finally{ session.close(); } return list; } @Override public int count() { // TODO Auto-generated method stub int i = 0 ; Session session = HibernateUtil.currentSession(); Transaction ts = null; try { ts = session.beginTransaction(); Query query = session.createQuery("select count(*) from User"); i = (Integer) query.uniqueResult(); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); if (ts != null) { ts.rollback(); } }finally{ session.close(); } return i; } }
pageAction.java
package page; import java.util.List; import hibernate.User; import com.opensymphony.xwork2.ActionSupport; public class PageAction extends ActionSupport { int i=1;//中间变量 private int k;//储存最大页面数 private int pageNow=1; //页码数,初始为1 private int pageSize = 5 ; //页面行数 private int intRowCount = 0;//总行数 private int intPageCount = 1;//总页数 // private Admin admin; // private List<Admin> Adminss; private User user; private List<User> users; private int id; private int aid; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public List<User> getUsers() { return users; } public void setUsers(List<User> users) { this.users = users; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAid() { return aid; } public void setAid(int aid) { this.aid = aid; } public int getPageNow() { return pageNow; } public void setPageNow(int pageNow) { this.pageNow = pageNow; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getIntRowCount() { return intRowCount; } public void setIntRowCount(int intRowCount) { this.intRowCount = intRowCount; } public int getIntPageCount() { return intPageCount; } public void setIntPageCount(int intPageCount) { this.intPageCount = intPageCount; } public int getK() { return k; } public void setK(int k) { this.k = k; } @SuppressWarnings("unchecked") @Override //显示列表 public String execute() throws Exception { IuserDao npage=new UserDao(); intRowCount=npage.count(); k=(intRowCount + pageSize - 1) / pageSize; intPageCount = (intRowCount + pageSize - 1) / pageSize;//计算出总页数 if(pageNow<1){ pageNow=1; } if(pageNow > intPageCount) pageNow=intPageCount; i = (pageNow -1)*pageSize; IuserDao nlist=new UserDao(); if(null!=nlist.displayUser(i,pageSize)){ users = nlist.displayUser(i,pageSize); return SUCCESS; }else{ return "failure"; } } }
struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="users" extends="struts-default"> <action name="list" class="page.PageAction" > <result>/listUsers.jsp</result> <result name="failure">/Showfailure.jsp</result> </action> </package> </struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>bornToPage</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
listUser.jsp
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> </head> <body> <center><table border = "1"> <tr> <td>id</td> <td>name</td> <td>pass</td> </tr> <s:iterator value="users" id = "user"> <tr> <td><s:property value = "#user.id"/></td> <td><s:property value = "#user.userName"/></td> <td><s:property value = "#user.password"/></td> </tr> </s:iterator> </table> </center> <center> 共<s:property value="intRowCount"/>记录 第<s:property value="pageNow"/>页 <s:url id="url_pre" value="list.action"> <s:param name="pageNow" value="pageNow-1"></s:param> </s:url> <s:url id="url_next" value="list.action"> <s:param name="pageNow" value="pageNow+1"></s:param> </s:url> <s:if test="intPageCount!=null"> <s:bean name="org.apache.struts2.util.Counter" id="counter"> <s:param name="first" value="1" /> <s:param name="last" ><s:property value="intPageCount"/></s:param> <s:iterator> <s:url id="url" value="list.action"> <s:param name="pageNow" ><s:property /></s:param> </s:url> <s:a href="%{url}"><s:property /></s:a> </s:iterator> </s:bean> </s:if> <s:if test="pageNow==1"> <s:a href="%{url_pre}">最前一页</s:a> </s:if> <s:else> <s:a href="%{url_pre}">上一页</s:a> </s:else> <s:if test="pageNow==k"> <s:a href="%{url_next}">最后一页</s:a> </s:if> <s:else> <s:a href="%{url_next}">下一页</s:a> </s:else> </center> </body> </html>
直接jsp运行后 不显示分页 需在地址栏里写上http://localhost:8080/bornToPage/list.action才能正常显示(提前子在数据库多插入几条数据)
- bornToPage.rar (9.1 MB)
- 描述: Eclipse导入即可
- 下载次数: 120
相关推荐
在这个"ssh Struts2.2+Hibernate3.6+Spring3.1+oracle 分页示例.zip"压缩包中,开发者提供了一个使用这些技术实现的分页功能示例。下面将详细介绍SSH框架以及Oracle数据库的分页技术。 **Struts2** 是一个基于MVC...
4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate继承 HibernateDaoSupport。 7.Spring+Junit4单元测试,优点:...
标题中的“Hibernate+Struts2+Spring+Oracle分页亲测”揭示了这个项目或教程是关于使用四个关键的Java Web开发技术实现分页功能的。这四个技术分别是Hibernate(一个对象关系映射框架),Struts2(一个MVC框架),...
Struts、Spring 和 Hibernate 是Java Web开发中三个非常重要的开源框架,它们共同构成了所谓的SSH(Struts + Spring + Hibernate)框架。这篇描述提到的是一个基于SSH框架实现的网上购物车系统,下面将详细介绍这三...
在这个"Struts2+Hibernate jsp 增删改查 分页"项目中,开发者利用这两个框架创建了一个新闻发布系统。系统的核心功能包括对新闻数据的基本操作——增(添加新闻)、删(删除新闻)、改(修改新闻内容)和查(查询...
### Struts + Hibernate 的通用分页程序 #### 一、背景与概述 在现代Web开发中,分页是一项常见的功能需求。特别是在展示大量数据时,为了提高用户体验和系统性能,通常会采用分页技术来逐步加载数据。Struts 和 ...
Struts、Hibernate3、Spring2和Oracle10g是经典的Java企业级开发技术栈,用于构建高效、可扩展且易于维护的Web应用程序。这个研究人员查询系统利用这些技术,旨在为研究工作提供强大的数据管理和检索功能。 **...
总的来说,这个"Struts2+Hibernate新闻发布系统"是一个典型的Java Web应用实例,它展示了如何整合两大框架实现CRUD操作和分页功能,并与Oracle数据库进行有效交互。对于初学者来说,这是一个很好的学习项目,能够...
本项目使用了Struts2+Hibernate3框架技术, 同时使用Oracle数据库技术,附带sql执行脚本,多条插入语句技术, 实现了上传并限制格式和大小的功能, 实现了datetimepicker选择日期的功能, 实现了用户注册功能, 实现了...
Struts1、Spring和Hibernate是Java Web开发中的三...这个项目实例可以帮助开发者深入理解Struts1、Spring和Hibernate的整合使用,以及如何实现分页查询。对于学习者而言,通过实际操作和调试,可以更好地掌握这些技术。
jar包:项目中除了使用了struts2,hibernate3.0和spring1.8以外(用spring2.0的包也可以.不能低于1.8的包.)还是用了junit,ajax,第三方的table组件.等等.所以需要下载相对应的包. 为了上传jar.我专门申请了一个网盘.所有...
本篇将详细介绍如何利用Ajax、Hibernate和Struts框架,构建一个在用户界面上实现无刷新的分页系统,同时数据库采用Oracle。 ### 一、Hibernate分页 **1. Hibernate的Criteria查询** Hibernate 提供了 Criteria API...
用SSH做的简易论坛系统,功能算丰富,CRUD,分页,表关联,完全可以做毕业设计,导入即可运行,数据库用的是oracle,前台使用了jquery,登录,注册都是弹出层。开始先要对板块插入数据,表可以用hibernate的自动创建...
采用Oracle数据库" 是一个基于Web的新闻管理系统,它利用了Java Web技术栈中的核心组件,包括JSP(JavaServer Pages)、Struts、Hibernate,以及数据库管理工具Oracle。这个系统的主要功能是实现对新闻数据的添加、...
J2EE三大框架_笔记 共分三块: J2EE框架_笔记_a: 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库...53使用Struts + Spring + Hibernate完成分页笔记 54留言管理程序_Struts + Spring + Hibernate笔记
J2EE三大框架_笔记 共分三块: J2EE框架_笔记_a: 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库...53使用Struts + Spring + Hibernate完成分页笔记 54留言管理程序_Struts + Spring + Hibernate笔记
综上所述,"Hibernate+Spring+Struts2分页Oracle数据库"这一技术组合,为Java Web开发者提供了一套完整的解决方案,从数据持久化到用户界面展示,涵盖了整个应用程序的生命周期。通过熟练掌握这些工具和技术,开发者...
J2EE三大框架_笔记 共分三块: J2EE框架_笔记_a: 1-JSP+JDBC_假分页笔记 2-JSP+JDBC_真分页(基于Oracle数据库...53使用Struts + Spring + Hibernate完成分页笔记 54留言管理程序_Struts + Spring + Hibernate笔记