建站极客
网络编程 JSP编程 正文
JSP数据库操作例程(Use Bean)
所属分类:
网络编程 / JSP编程
阅读数:
901
收藏 0
赞 0
分享
- 数据分页显示 - JDBC 2.0:ODBC 通过jdbc:odbc可以实现Jsp对数据库的操作,在这个例子中我将数据库的连接写在了一个JavaBean中,可以实现重复使用 pagetest.jsp文件: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <%@page contentType="text/html;charset=gb2312" %> <jsp:useBean id="Htool" scope="session" class="zbean.HtmlTool"/> <jsp:useBean id="Jodb" scope="session" class="zbean.Jodb"/> <html> <head> <title>数据库分页测试</title> </head> <% //定义ResultSet类 java.sql.ResultSet rst; //设定Odbc数据源 Jodb.setConnStr("jdbc:odbc:jtest","",""); //设定Jdbc驱动程序 Jodb.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver"); //执行Sql语句,调用Jodb类的execute方法 rst=Jodb.execute("select * from gbook"); %> <% int startRowNum; int pageSize=10; rst.last(); int rowCount=rst.getRow(); int pageCount=(rowCount+pageSize-1)/pageSize; int intPage; String strPage=request.getParameter("page"); if(strPage==null) { intPage=1; } else { intPage=java.lang.Integer.parseInt(strPage); if(intPage<1)intPage=1; if(intPage>pageCount)intPage=pageCount; } startRowNum=(intPage-1)*pageSize+1; %> <body> <div align="center"> <center> <p>数据库分页测试</p> <p><%= Htool.getStr(Jodb.pageStr(intPage,pageCount,"pagetest.jsp?","en")) %></p> <table border="1" width="600" bordercolorlight="#000000" cellspacing="0" cellpadding="2" bordercolordark="#FFFFFF"> <tr> <td width="49"><font size="2">编号</font></td> <td width="91"><font size="2">姓 名</font></td> <td width="174"><font size="2">电子邮箱</font></td> <td width="250"><font size="2">留言</font></td> </tr> <% for(int i=0;i<pageSize;i++){ rst.absolute(startRowNum+i); if(rst.isAfterLast()) { break; } %> <tr> <td width="49"><%= rst.getLong("id") %> </td> <td width="91"><%= rst.getString("name") %> </td> <td width="174"><%= rst.getString("email") %> </td> <td width="250"><%= rst.getString("pnote") %> <%= rst.getRow() %></td> </tr> <% } %> </table> </center> </div> </body> </html> Jodb.java文件如下: package zbean; import java.sql.*; //import zbean.*; public class Jodb { public String sdbdriver="sun.jdbc.odbc.JdbcOdbcDriver"; public String sConnStr; public long count; String uid; String pwd; Connection conn=null; ResultSet rs=null; public Jodb() { try { Class.forName(sdbdriver); } catch(java.lang.ClassNotFoundException e) { System.err.println("Jodb():"+e.getMessage()); } } public void setDbDriver(String y) { sdbdriver=y; } public void setConnStr(String x,String z,String a) { sConnStr=x; uid=z; pwd=a; } public ResultSet execute(String sql) { rs=null; try { conn=DriverManager.getConnection(sConnStr,uid,pwd); Statement stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); } catch(SQLException ex) { System.err.println("Jodb.execute():"+ex.getMessage()); } return rs; } public long update(String sql) { long x=0; try { conn=DriverManager.getConnection(sConnStr); Statement stmt=conn.createStatement(); x=stmt.executeUpdate(sql); } catch(SQLException ey) { System.err.println("Jodb.update():"+ey.getMessage()); } return x; } public String pageStr(int page,int pageCount,String url,String showStr) { //String str="Page:("+page+"/"+pageCount+") "; String str=""; String fstr; String pstr; String nstr; String lstr; //int page=currPage; //int pageCount=pageCt; if(showStr=="cn") { fstr="第一页"; pstr="上一页"; nstr="下一页"; lstr="最末页"; } else if(showStr=="en") { fstr="First"; pstr="Previous"; nstr="Next"; lstr="Last"; } else { String[] temp_array=split(showStr,","); if(temp_array==null) { str="Please input String like: "First,Previous,Next,Last""; return str; } fstr=temp_array[0]; pstr=temp_array[1]; nstr=temp_array[2]; lstr=temp_array[3]; } /* int npage; npgae=page+1; int ppage; ppage=page-1; if(npage>pageCount) {npae=pageCount;} if(ppgae<1) {ppage=1;} */ if(page==1){ str=str+"<a href="+url+"page="+(page+1)+">"+nstr+"</a> "; str=str+"<a href="+url+"page="+pageCount+">"+lstr+"</a> "; } if(page==pageCount){ str=str+"<a href="+url+"page=1>"+fstr+"</a> "; str=str+"<a href="+url+"page="+(page-1)+">"+pstr+"</a> "; } if(page>1&&page<pageCount){ str=str+"<a href="+url+"page=1>"+fstr+"</a> "; str=str+"<a href="+url+"page="+(page-1)+">"+pstr+"</a> "; str=str+"<a href="+url+"page="+(page+1)+">"+nstr+"</a> "; str=str+"<a href="+url+"page="+pageCount+">"+lstr+"</a> "; } return str; } public String[] split(String str,String strIn) { char[] temp_array; temp_array=str.toCharArray(); int strLength=str.length(); int strInLength=strIn.length(); int strInTimes=0; int strIndex[]=new int[strLength]; int i=0; int ii=0; while(i<=strLength-strInLength) { String temp_str=""; for(int j=i;j<i+strInLength;j++) { temp_str=temp_str+temp_array[j]; } if(temp_str.equals(strIn)) { strInTimes++; strIndex[ii]=i; i=i+strInLength; ii++; } else { i++; } } if(strInTimes<1) { String[] back_str=null; return back_str; } else { String back_str[]=new String[strInTimes+1]; back_str[0]=str.substring(0,strIndex[0]); for(int k=1;k<strInTimes;k++) { back_str[k]=str.substring(strIndex[k-1]+strInLength,strIndex[k]); } back_str[strInTimes]=str.substring(strIndex[strInTimes-1]+strInLength,str.length()); return back_str; } } }
Java Web实现的基本MVC实例分析 这篇文章主要介绍了Java Web实现的基本MVC,以完整实例形式较为详细的分析了JSP实现MVC架构的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
jsp中调用java代码小结 大多数情况下, jsp 文档的大部分由静态文本(html)构成, 为处理该页面而创建的 servlet 只是将它们原封不动的传递给客户端
评论 0
收藏 0
赞 0
分享
struts2中一个表单中提交多个请求的例子(多个提交按钮) 在很多Web应用中,为了完成不同的工作,一个HTML form标签中可能有两个或多个submit按钮,Struts2中提供了另外一种方法,使得无需要配置可以在同一个action类中执行不同的方法(默认执行的是execute方法)
评论 0
收藏 0
赞 0
分享
servlet中session简介和使用例子 在servlet中,session是封装在javax.servlet.http.HttpSession这个接口中的,这个接口是构建在cookie或者URL重写的基础上,要得到一个HttpSession的实例,就可以通过HttpServletRequest的getSession()
评论 0
收藏 0
赞 0
分享
查看更多