|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。js|树型布局|算法
完成论坛树型布局的算法良多,我如今的JSP论坛接纳的也是傍边的一种:不必递回完成树型布局的算法,如今我将论坛树型布局的详细算法和人人先容一下,和人人一同交换。
1、演示表的布局:
表名:mybbslist
字段 数据范例 申明
BBSID 主动编号
RootID Int 根帖ID,自己为根帖则RootID=ID
FID Int 父帖ID,上一层帖子的ID,如是根帖则FID=0
DEPTH Int 根帖Level=0,其他根据复兴的深度递增
BBSSubject Char 主题
2。创立表:
createtablemybbslist(
forumIDint(20)notnull,
bbsIDintauto_incrementprimarykey,
rootidint(20)notnull,
fidint(20)notnull,
depthint(20)notnull,
userIDint(20)notnull,
bbsUservarchar(24)notnull,
bbsSubjectvarchar(100)notnull,
bbsContenttext,
bbsTimevarchar(30),
bbsReadint(20),
bbsReplyint(20),
INDEXforumID(forumID))
3、毗连MYSQL数据库的BEAN
packagenetzero;
importjava.sql.*;
publicclassmydb
{
StringdriverName="org.gjt.mm.mysql.Driver";
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
StringconnURL="jdbc:mysql://localhost/mybbs?user=root&password=how&useUnicode=true&characterEncode=8859_1";
//StringconnURL="jdbc:mysql://localhost/netzerobbs?user=root&password=how";
publicmydb()
{
try
{
Class.forName(driverName);
}
catch(java.lang.ClassNotFoundExceptione)
{
System.err.println("netzero(String):"+e.getMessage());
}
}
publicResultSetexecuteQuery(Stringsql)throwsSQLException
{
conn=DriverManager.getConnection(connURL);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
returnrs;
}
publicbooleancloseConn()
{
try
{
if(rs!=null)rs.close();
if(stmt!=null)stmt.close();
if(conn!=null)conn.close();
returntrue;
}
catch(SQLExceptionex)
{
System.err.println("closeConn:"+ex.getMessage());
returnfalse;
}
}
}
4、显现论坛的JSP程序
<jsp:useBeanid="mybbs"scope="session"class="netzero.mydb"/>
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.io.*"%>
<%@pageimport="java.sql.*"%>
<%
intintRowCount;
out.print("显现论坛树形布局");
out.print("<br><br>");
try{
Stringsql="select*frommybbslistorderbyrootiddesc,depth,fid,bbsid";
ResultSetrs=mybbs.executeQuery(sql);
if(rs.next())
{
rs.last();
intRowCount=rs.getRow();
out.print("论坛树中有");
out.print(intRowCount);
out.print("个叶子节点");
rs.first();
intj=0;
intDepth=0;
out.print("<ul>");
while(j<intRowCount)
{
intrsDepth=rs.getInt("Depth");
if(rsDepth<Depth)
{
for(inti=1;i<Depth+1;i=i+1)
{
out.print("</ul>");
}
}
rsDepth=rs.getInt("Depth");
if(rsDepth>Depth)
{
out.print("<ul>");
}
out.print("<li>");
Stringbbssubject=rs.getString("bbssubject");
out.print(bbssubject);
out.print("</li>");
Depth=rs.getInt("Depth");
j=j+1;
rs.next();
}
out.print("</ul>");
}
else
{
out.print("数据库中无纪录");
}
}catch(SQLExceptionE){
out.println("SQLException:"+E.getMessage());
out.println("SQLState:"+E.getSQLState());
out.println("VendorError:"+E.getErrorCode());
}
%>
<%//封闭mysql毗连
try{
if(!mybbs.closeConn());
}catch(Exceptionex){
System.err.println("closeConn:"+ex.getMessage());
}
%>
唉!都是钱闹的1.Swing和.net开发比较------从市场份额看.net开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具 |
|