仓酷云

标题: JAVA教程之JSP数据库操纵例程 [打印本页]

作者: 若相依    时间: 2015-1-18 11:21
标题: JAVA教程之JSP数据库操纵例程
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。js|数据|数据库经由过程jdbc:odbc能够完成Jsp对数据库的操纵,在这个例子中我将数据库的毗连写在了一个JavaBean中,能够完成反复利用
pagetest.jsp文件:
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<%@pagecontentType="text/html;charset=gb2312"%>
<jsp:useBeanid="Htool"scope="session"class="zbean.HtmlTool"/>
<jsp:useBeanid="Jodb"scope="session"class="zbean.Jodb"/>
<html>
<head>
<title>数据库分页测试</title>
</head>
<%
//界说ResultSet类
java.sql.ResultSetrst;
//设定Odbc数据源
Jodb.setConnStr("jdbc:odbc:jtest","","");
//设定Jdbc驱动程序
Jodb.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver");
//实行Sql语句,挪用Jodb类的execute办法
rst=Jodb.execute("select*fromgbook");
%>

<%
intstartRowNum;
intpageSize=10;
rst.last();
introwCount=rst.getRow();
intpageCount=(rowCount+pageSize-1)/pageSize;
intintPage;
StringstrPage=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>

<divalign="center">
<center>
<p>数据库分页测试</p>
<p><%=Htool.getStr(Jodb.pageStr(intPage,pageCount,"pagetest.jsp?","en"))%></p>
<tableborder="1"width="600"bordercolorlight="#000000"cellspacing="0"cellpadding="2"bordercolordark="#FFFFFF">
<tr>
<tdwidth="49"><fontsize="2">编号</font></td>
<tdwidth="91"><fontsize="2">姓名</font></td>
<tdwidth="174"><fontsize="2">电子邮箱</font></td>
<tdwidth="250"><fontsize="2">留言</font></td>
</tr>
<%
for(inti=0;i<pageSize;i++){
rst.absolute(startRowNum+i);
if(rst.isAfterLast())
{
break;
}
%>
<tr>
<tdwidth="49"><%=rst.getLong("id")%> </td>
<tdwidth="91"><%=rst.getString("name")%> </td>
<tdwidth="174"><%=rst.getString("email")%> </td>
<tdwidth="250"><%=rst.getString("pnote")%> <%=rst.getRow()%></td>
</tr>
<%
}
%>
</table>
</center>
</div>
</body>
</html>
Jodb.java文件以下:
packagezbean;
importjava.sql.*;
//importzbean.*;
publicclassJodb
{
publicStringsdbdriver="sun.jdbc.odbc.JdbcOdbcDriver";
publicStringsConnStr;
publiclongcount;
Stringuid;
Stringpwd;
Connectionconn=null;
ResultSetrs=null;
publicJodb()
{
try
{
Class.forName(sdbdriver);
}
catch(java.lang.ClassNotFoundExceptione)
{
System.err.println("Jodb():"+e.getMessage());
}
}

publicvoidsetDbDriver(Stringy)
{
sdbdriver=y;
}
publicvoidsetConnStr(Stringx,Stringz,Stringa)
{
sConnStr=x;
uid=z;
pwd=a;
}
publicResultSetexecute(Stringsql)
{
rs=null;

try
{
conn=DriverManager.getConnection(sConnStr,uid,pwd);
Statementstmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
catch(SQLExceptionex)
{
System.err.println("Jodb.execute():"+ex.getMessage());
}
returnrs;
}
publiclongupdate(Stringsql)
{
longx=0;
try
{
conn=DriverManager.getConnection(sConnStr);
Statementstmt=conn.createStatement();
x=stmt.executeUpdate(sql);
}
catch(SQLExceptioney)
{
System.err.println("Jodb.update():"+ey.getMessage());
}
returnx;
}
publicStringpageStr(intpage,intpageCount,Stringurl,StringshowStr)
{
//Stringstr="Page:("+page+"/"+pageCount+")";
Stringstr="";
Stringfstr;
Stringpstr;
Stringnstr;
Stringlstr;
//intpage=currPage;
//intpageCount=pageCt;
if(showStr=="cn")
{
fstr="第一页";
pstr="上一页";
nstr="下一页";
lstr="最末页";
}
elseif(showStr=="en")
{
fstr="First";
pstr="Previous";
nstr="Next";
lstr="Last";
}
else
{
String[]temp_array=split(showStr,",");
if(temp_array==null)
{
str="PleaseinputStringlike:"First,Previous,Next,Last"";
returnstr;
}
fstr=temp_array[0];
pstr=temp_array[1];
nstr=temp_array[2];
lstr=temp_array[3];
}
/*
intnpage;
npgae=page+1;
intppage;
ppage=page-1;
if(npage>pageCount)
{npae=pageCount;}
if(ppgae<1)
{ppage=1;}
*/
if(page==1){
str=str+"<ahref="+url+"page="+(page+1)+">"+nstr+"</a>";
str=str+"<ahref="+url+"page="+pageCount+">"+lstr+"</a>";
}
if(page==pageCount){
str=str+"<ahref="+url+"page=1>"+fstr+"</a>";
str=str+"<ahref="+url+"page="+(page-1)+">"+pstr+"</a>";
}
if(page>1&&page<pageCount){
str=str+"<ahref="+url+"page=1>"+fstr+"</a>";
str=str+"<ahref="+url+"page="+(page-1)+">"+pstr+"</a>";
str=str+"<ahref="+url+"page="+(page+1)+">"+nstr+"</a>";
str=str+"<ahref="+url+"page="+pageCount+">"+lstr+"</a>";
}
returnstr;
}
publicString[]split(Stringstr,StringstrIn)
{
char[]temp_array;
temp_array=str.toCharArray();
intstrLength=str.length();
intstrInLength=strIn.length();
intstrInTimes=0;
intstrIndex[]=newint[strLength];
inti=0;
intii=0;
while(i<=strLength-strInLength)
{
Stringtemp_str="";
for(intj=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;
returnback_str;
}
else
{
Stringback_str[]=newString[strInTimes+1];
back_str[0]=str.substring(0,strIndex[0]);
for(intk=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());
returnback_str;
}
}
}


但是对于JAVA技术类的学习,我觉得大课堂反而会影响自身独立思考的过程,因为上课的时候,老师讲课的速度很快为了不遗漏要点,通常会仔细的听,
作者: 兰色精灵    时间: 2015-1-20 20:53
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 只想知道    时间: 2015-1-24 10:09
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 柔情似水    时间: 2015-1-24 16:30
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 愤怒的大鸟    时间: 2015-1-25 22:54
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 简单生活    时间: 2015-1-28 22:38
是一种为 Internet发展的计算机语言
作者: 莫相离    时间: 2015-2-5 17:09
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 飘灵儿    时间: 2015-2-7 18:13
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 再现理想    时间: 2015-2-10 02:09
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 深爱那片海    时间: 2015-2-28 14:49
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 小妖女    时间: 2015-3-9 09:40
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者: 活着的死人    时间: 2015-3-10 13:02
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者: 第二个灵魂    时间: 2015-3-12 07:15
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 再见西城    时间: 2015-3-12 22:49
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 小魔女    时间: 2015-3-20 04:43
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 爱飞    时间: 2015-4-12 20:37
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2