分享
 
 
 

JSP数据库操作例程

王朝java/jsp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

通过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;

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有