仓酷云

标题: JAVA网站制作之树形目次的递回完成数据库+jsp+javabea... [打印本页]

作者: 金色的骷髅    时间: 2015-1-18 11:10
标题: JAVA网站制作之树形目次的递回完成数据库+jsp+javabea...
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。js|递回|数据|数据库树形目次的递回完成(一)数据库+jsp+javabean

<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
<!--
数据库布局:
库名:test
表名:tree
CREATETABLE[dbo].[tree](
[id][int]IDENTITY(1,1)NOTNULL,
[parentid][int]NOTNULL,
[message][varchar](50)COLLATEChinese_PRC_CI_ASNULL
)
为了到达对照好的效果,这里筹办了五张小图片
加号:http://www.webjx.com/htmldata/2005-09-27/plus.gif
减号:http://www.webjx.com/htmldata/2005-09-27/minus.gif
翻开的文件夹:http://www.webjx.com/htmldata/2005-09-27/openfold.gif
封闭的文件夹:http://www.webjx.com/htmldata/2005-09-27/closedfold.gif
白板:http://www.webjx.com/htmldata/2005-09-27/white.gif
-->
<%!//便利起见这里就不写成javabean了
classcn{//毗连数据库,这里以MS-SQL为例
StringjdbcDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//jdbc驱动
StringconnectionString="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";//数据库毗连字符串
Stringuser="sa";//数据库用户名
Stringpass="";//数据库暗码
Connectionconn=null;
ResultSetrs=null;
publiccn(){
try{
Class.forName(jdbcDriver);
}catch(ClassNotFoundExceptione){
System.err.println(e.toString());
}
}
publicResultSetexecuteQuery(Stringsql){
rs=null;
try{
conn=DriverManager.getConnection(connectionString,user,pass);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
}
catch(SQLExceptione){
System.err.println(e.toString());
}
returnrs;
}
publicvoidexecuteUpdate(Stringsql){
try{
conn=DriverManager.getConnection(connectionString,user,pass);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt.executeUpdate(sql);
}
catch(SQLExceptione){
System.err.println(e.toString());
}
}
}
classtree{
cnconn=newcn();
publicvoidinit(javax.servlet.jsp.JspWriterout,javax.servlet.http.HttpServletRequestrequest)throwsException{
out.println("<title>用jsp种树</title>");
dowith(request);
buildTree(out,0,0);//初始挪用
}
privatevoiddowith(javax.servlet.http.HttpServletRequestrequest){
if(request.getParameter("parentid")==null||request.getParameter("parentid").equals(""))return;
Stringaction=request.getParameter("action");
if(action.equals("add"))
conn.executeUpdate("insertintotree(parentid,message)values("+request.getParameter("parentid")+","+request.getParameter("message")+")");
elseif(action.equals("delete"))
conn.executeUpdate("deletefromtreewhereid="+request.getParameter("parentid")+"orparentid="+request.getParameter("parentid"));
}
publicvoidbuildTree(javax.servlet.jsp.JspWriterout,intparentid,intlevel)throwsException{
level++;
ResultSetrs=conn.executeQuery("select*fromtreewhereparentid="+parentid+"orderbyid");
while(rs.next()){
out.println("<div>");
for(inti=0;i<level-1;i++)
out.print("");
out.print("<span+rs.getInt("id")+");"style="cursor:default;"id="span"+rs.getInt("id")+"">"+rs.getString("message")+"id="+rs.getInt("id")+"</span>");
out.println("<divstyle="display:none;"id="div"+rs.getInt("id")+"">");
buildTree(out,rs.getInt("id"),level);//递回挪用
out.println("</div>");
}else
out.print("<span+rs.getInt("id")+");"style="cursor:default;"id="span"+rs.getInt("id")+"">"+rs.getString("message")+"id="+rs.getInt("id")+"</span>");
out.println("</div>");
}
rs.close();
rs=null;
}
privatebooleanhas_child(intparentid)throwsException{
ResultSetrs=conn.executeQuery("select*fromtreewhereparentid="+parentid+"orderbyid");
returnrs.next();
}
publicStringgetOption()throwsException{
Stringoption="";
ResultSetrs=conn.executeQuery("select*fromtreeorderbyid");
while(rs.next())
option+="<optionvalue=""+rs.getInt("id")+"">"+rs.getInt("id")+"</option>";
returnoption;
}
}
%>
<!--以上代码能够写成javabean-->
<scriptlanguage="JavaScript"><!--这段js为了完成树的睁开和封闭的效果-->
<!--
functionmyClick(id){
eval("vardiv=div"+id);
eval("varimg=img"+id);
eval("varim=im"+id);
div.style.display=div.style.display!="none"?"none":"block";
img.src=div.style.display!="none"?"http://www.webjx.com/htmldata/2005-09-27/minus.gif":"http://www.webjx.com/htmldata/2005-09-27/plus.gif";
im.src=div.style.display!="none"?"http://www.webjx.com/htmldata/2005-09-27/openfold.gif":"http://www.webjx.com/htmldata/2005-09-27/closedfold.gif";
img.alt=div.style.display!="none"?"封闭":"睁开";
}
functionmyClick1(id){
document.form1.parentid.value=id;
}
//-->
</script>
<table>
<tr><tdheight="300"valign="top">
<%
treemyTree=newtree();
myTree.init(out,request);
%>
</td></tr>
<tr><tdvalign="top">
<%
if(myTree.getOption().equals("")){
%>
<formname="form1"action=""method="get">
parentid:0-暗示根节点
message:<inputtype="text"name="message">
<inputtype="hidden"name="parentid"value="0">
<inputtype="submit"name="action"value="add">
</form>
<%}else{%>
<formname="form1"action=""method="get">
parentid:<selectname="parentid"><%=myTree.getOption()%></select>
message:<inputtype="text"name="message">
<inputtype="submit"name="action"value="add"><inputtype="submit"name="action"value="delete">
</form>
<%}%>
</td></tr></table>

再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。
作者: 只想知道    时间: 2015-1-20 15:55
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 乐观    时间: 2015-1-28 05:23
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: 深爱那片海    时间: 2015-2-1 16:49
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 若天明    时间: 2015-2-2 21:56
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 因胸联盟    时间: 2015-2-3 12:16
是一种语言,用以产生「小应用程序(Applet(s))
作者: 简单生活    时间: 2015-2-4 13:13
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 蒙在股里    时间: 2015-2-6 19:40
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 小妖女    时间: 2015-2-18 11:07
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 第二个灵魂    时间: 2015-3-6 04:36
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 飘灵儿    时间: 2015-3-12 20:39
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者: 飘飘悠悠    时间: 2015-3-20 02:21
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言




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