struts实现数据库分页的代码及实现步骤.docx
- 文档编号:24517337
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:14
- 大小:77.46KB
struts实现数据库分页的代码及实现步骤.docx
《struts实现数据库分页的代码及实现步骤.docx》由会员分享,可在线阅读,更多相关《struts实现数据库分页的代码及实现步骤.docx(14页珍藏版)》请在冰豆网上搜索。
struts实现数据库分页的代码及实现步骤
Struts2.1实现数据分页
第一步:
先建数据库
数据库中的数据:
第二步:
先建立数据库的连接
数据库连接用的是数据库连接池
packageorg;
importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjavax.naming.Context;
importjavax.naming.InitialContext;
importjavax.naming.NamingException;
importjavax.sql.DataSource;
publicclassDbPool{
privateConnectionconn;
publicvoidcreateConn()throwsException{
try{
ContextinitContext=newInitialContext();
ContextenvContext=(Context)initContext.lookup("java:
/comp/env");
DataSourceds=(DataSource)envContext.lookup("jdbc/mysql");
conn=ds.getConnection();
System.out.println("数据库连接成功");
}catch(Exceptione){
System.out.println("数据库连接失败");
e.printStackTrace();
}
}
publicConnectiongetConn()throwsException{
if(conn==null){
createConn();
}
returnconn;
}
publicResultSetexecuteQuery(Stringsql)throwsException{
ResultSetrs=null;
if(conn==null){
createConn();
}
try{
Statementst=(Statement)this.conn.createStatement();
rs=st.executeQuery(sql);
}catch(Exceptione){
e.printStackTrace();
}
returnrs;
}
}
然后在
下建一个context.xml用来读取配置信息
xmlversion='1.0'encoding='utf-8'?
>
auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc: mysql: //localhost/user1" username="root" password="516146194" maxActive="50" maxIdle="20" maxWait="10000"/> 第三步: 建web工程及文件部署 第四步: 建立相应显示数据库分页显示的jsp页面 Show.jsp <%@pagelanguage="java"import="java.util.*"pageEncoding="gbk"%> <%@tagliburi="/struts-tags"prefix="s"%> <% Stringpath=request.getContextPath(); StringbasePath=request.getScheme()+": //"+request.getServerName()+": "+request.getServerPort()+path+"/"; %> DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
--
-->
405px"text-align="center">
全部用户
iteratorvalue="persons"> propertyvalue="personId"/> propertyvalue="personName"/> propertyvalue="personAge"/> propertyvalue="personInfo"/>
iterator>
第 propertyvalue="pageNumber"/>页|总共 propertyvalue="totalPage"/>页 urlid="firstPage"value="allPersons.action"> paramname="pageNumber">1 param> url> ahref="%{firstPage}">首页 a> urlid="prePage"value="allPersons.action"> paramname="pageNumber">1 param> url> ahref="%{prePage}">上一页 a> urlid="nextPage"value="allPersons.action"> paramname="pageNumber"value="pageNumber+1"> param> url> ahref="%{nextPage}">下一页 a> urlid="lastPage"value="allPersons.action"> paramname="pageNumber"value="totalPage"> param> url> ahref="%{lastPage}">末页 a>
第五步:
struts2.0的相关配置
1.xml的配置
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http:
//struts.apache.org/dtds/struts-2.0.dtd">
2.需要的jar包
3.allPersons的action类
packageaction;
importjava.util.List;
importmodel.Person;
importcom.opensymphony.xwork2.ActionSupport;
importdao.PageDao;
publicclassAllPersonsextendsActionSupport{
privateList
privateintpageNumber=1;//当前页数
privateintpageSize=4;//每页显示的记录数
privateinttotalPage;
//所有的用户对象
publicList
returnpersons;
}
publicvoidsetPersons(List
this.persons=persons;
}
privatePageDaopageDao=newPageDao();
publicintgetPageNumber(){
returnpageNumber;
}
publicvoidsetPageNumber(intpageNumber){
this.pageNumber=pageNumber;
}
publicintgetPageSize(){
returnpageSize;
}
publicvoidsetPageSize(intpageSize){
this.pageSize=pageSize;
}
publicintgetTotalPage(){
returntotalPage;
}
publicvoidsetTotalPage(inttotalPage){
this.totalPage=totalPage;
}
publicStringexecute(){
persons=pageDao.allPersons(pageSize,pageNumber);
totalPage=pageDao.getPersonAmount()/pageSize;
returnSUCCESS;
}
}
4.pageDao的代码:
packagedao;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.util.ArrayList;
importjava.util.List;
importjavax.xml.registry.infomodel.PersonName;
importorg.DbPool;
importmodel.Person;
publicclassPageDao{
DbPooldbPool=newDbPool();
privatePersonperson;
PreparedStatementps;
ResultSetrs;
publicList
List
//Stringsql="select*frompersonlimit?
?
";
try{
//pstmt=this.getConnection().prepareStatement(
//"select*fromstudentorderbystu_idlimit"+(pageNow*pageSize-pageSize)+","+pageSize
//);
if(pageSize>0&&pageNumber>0){
ps=dbPool.getConn().prepareStatement("select*frompersonorderbypersonIdlimit"+(pageNumber*pageSize-pageSize)+","+pageSize);
}
//ps=dbPool.getConn().prepareStatement(
//"select*frompersonorderbypersonIdlimit"+(pageNumber*pageSize-pageSize)+","+pageSize
//);
rs=ps.executeQuery();
while(rs.next()){
person=newPerson();
person.setPersonId(rs.getInt
(1));
person.setPersonName(rs.getString
(2));
person.setPersonAge(rs.getInt(3));
person.setPersonInfo(rs.getString(4));
list.add(person);
}
}catch(Exceptione){
e.printStackTrace();
}
returnlist;
}
publicintgetPersonAmount(){
inti=0;
Stringsql="selectcount(*)fromperson";
PreparedStatementps=null;
try{
ps=dbPool.getConn().prepareStatement(sql);
ResultSetrs=ps.executeQuery();
if(rs.next()){
i=rs.getInt
(1);
}
}catch(Exceptione){
e.printStackTrace();
}
returni;
}
}
5.model包中的person代码:
packagemodel;
publicclassPerson{
privateintpersonId;
privateStringpersonName;
privateStringpersonInfo;
privateintpersonAge;
publicintgetPersonId(){
returnpersonId;
}
publicvoidsetPersonId(intpersonId){
this.personId=personId;
}
publicStringgetPersonName(){
returnpersonName;
}
publicvoidsetPersonName(StringpersonName){
this.personName=personName;
}
publicStringgetPersonInfo(){
returnpersonInfo;
}
publicvoidsetPersonInfo(StringpersonInfo){
this.personInfo=personInfo;
}
publicintgetPersonAge(){
returnpersonAge;
}
publicvoidsetPersonAge(intpersonAge){
this.personAge=personAge;
}
}
最后:
项目运行的效果图:
在ie中输入http:
//localhost:
8080/showPerson/allPersons.action,则显示如下图所示的效果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts 实现 数据库 分页 代码 步骤
![提示](https://static.bdocx.com/images/bang_tan.gif)