JSP数据库操作例程(Use Bean)

- 数据分页显示 - JDBC 2.0:ODBC
通过jdbc:odbc可以实现Jsp对数据库的操作,在这个例子中我将数据库的连接写在了一个JavaBean中,可以实现重复使用
pagetest.jsp文件:

1@page contentType="text/html;charset=gb2312" 
1<jsp:usebean class="zbean.HtmlTool" id="Htool" scope="session"></jsp:usebean>
1<jsp:usebean class="zbean.Jodb" id="Jodb" scope="session"></jsp:usebean>
1<html>
2<head>
3<title>数据库分页测试</title>
4</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");

1  
2  

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&lt;1)intPage=1;
if(intPage&gt;pageCount)intPage=pageCount;
}
startRowNum=(intPage-1)*pageSize+1;

 1<body>
 2<div align="center">
 3<center>
 4<p>数据库分页测试</p>
 5<p>```
 6= Htool.getStr(Jodb.pageStr(intPage,pageCount,"pagetest.jsp?","en")) 
 7```</p>
 8<table border="1" bordercolordark="#FFFFFF" bordercolorlight="#000000" cellpadding="2" cellspacing="0" width="600">
 9<tr>
10<td width="49"><font size="2">编号</font></td>
11<td width="91"><font size="2">姓 名</font></td>
12<td width="174"><font size="2">电子邮箱</font></td>
13<td width="250"><font size="2">留言</font></td>
14</tr>   
15  

for(int i=0;i<pagesize;i++){ <tr="" ```="" break;="" if(rst.isafterlast())="" rst.absolute(startrownum+i);="" {="" }="">

``` = rst.getLong("id") `````` = rst.getString("name") `````` = rst.getString("email") `````` = rst.getString("pnote") ``` ``` = rst.getRow() ```
1   
2}   

</pagesize;i++){>

``` 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+"

1<a href="+url+" page="+(page+1)+">"+nstr+"</a>

";
str=str+"

1<a href="+url+" page="+pageCount+">"+lstr+"</a>

";
}
if(page==pageCount){
str=str+"

1<a href="+url+" page="1">"+fstr+"</a>

";
str=str+"

1<a href="+url+" page="+(page-1)+">"+pstr+"</a>

";
}
if(page>1&&page

 1<pagecount){ href="+url+" page="1" str='str+"&lt;a'>"+fstr+" ";   
 2str=str+"<a href="+url+" page="+(page-1)+">"+pstr+"</a> ";   
 3str=str+"<a href="+url+" page="+(page+1)+">"+nstr+"</a> ";   
 4str=str+"<a href="+url+" page="+pageCount+">"+lstr+"</a> ";   
 5}   
 6  
 7return str;   
 8}   
 9  
10public String[] split(String str,String strIn)   
11{   
12char[] temp_array;   
13temp_array=str.toCharArray();   
14int strLength=str.length();   
15int strInLength=strIn.length();   
16int strInTimes=0;   
17int strIndex[]=new int[strLength];   
18  
19int i=0;   
20int ii=0;   
21while(i&lt;=strLength-strInLength)   
22{   
23String temp_str="";   
24for(int j=i;j&lt;i+strInLength;j++)   
25{   
26temp_str=temp_str+temp_array[j];   
27}   
28if(temp_str.equals(strIn))   
29{   
30strInTimes++;   
31strIndex[ii]=i;   
32i=i+strInLength;   
33ii++;   
34}   
35else   
36{   
37i++;   
38}   
39  
40}   
41  
42if(strInTimes&lt;1)   
43{   
44String[] back_str=null;   
45return back_str;   
46}   
47else   
48{   
49String back_str[]=new String[strInTimes+1];   
50back_str[0]=str.substring(0,strIndex[0]);   
51for(int k=1;k&lt;strInTimes;k++)   
52{   
53back_str[k]=str.substring(strIndex[k-1]+strInLength,strIndex[k]);   
54}   
55back_str[strInTimes]=str.substring(strIndex[strInTimes-1]+strInLength,str.length());   
56return back_str;   
57}   
58  
59}   
60  
61}</pagecount){>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus