·首页 ·asp ·.net ·php ·JSP ·CGI ·数据库 ·网页设计 ·网管专栏 ·XML ·工具软件 ·办公软件 ·操作系统 ·程序设计 ·LINUX 
  当前位置: 普克>>计算机教程>>JSP>>面向对象/设计>>产品目录/论坛 树形结构的实现
flash视频教学

photoshop专题

asp.net专题

office专题

产品目录/论坛 树形结构的实现


面向对象/设计 发表时间:2006-4-8 字体:  返回

本例采用Access做为实例,所有还有很多要改进的地方。
请读者自已改进

package product;
import java.sql.*;
public class ConnectDB{
String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String strConnstr="jdbc:odbc:product";
Connection conn=null;
ResultSet rs=null;
Statement stmt=null;
// Statement stmt=null;
//构造函数
public ConnectDB(){
try{
Class.forName(strDBDriver); conn=DriverManager.getConnection(strConnstr);
stmt=conn.createStatement();
}
catch(Exception e){
System.out.println(e);
}
}

public ResultSet execute(String sql){
rs=null;
try{

rs=stmt.executeQuery(sql);
}
catch(SQLException e){
System.out.println(e.getMessage());
}
return rs;
}

public Connection getConnection(){
return conn;
}

public boolean close(){
try{
if(this.rs!=null){
this.rs.close();
}
if(stmt!=null){
this.stmt.close();
}
if(conn!=null){
this.conn.close();
}
return true;
}catch(Exception err){
return false;
}
}

}
//=======================================
package product;
import java.sql.*;
public class catalog
{
ConnectDB conn=new ConnectDB();
String str=null;
String sql=null;
ResultSet rs=null;
String AncestorID,LinkStr;

public String getCatalog(){

str="<select name=\"FatherID\" class=\"p9\">\n"+
"<option value=\"-1\" selected>请选择父类</option>\n";
String sql=null;
sql="select * from catalog order by AncestorID,Linkstr";
ResultSet rs=conn.execute(sql);
try{
while (rs.next()) {
str=str+"<option value="+rs.getString("Productid")+">";
int nbspCount=rs.getString("LinkStr").length()-1;
for(int i=0;i<nbspCount;i++){
str=str+" ";
}
if(nbspCount>0)
str=str+"┠"+rs.getString("title")+"</option>\n";
else
str=str+rs.getString("title")+"</option>\n";

}
str=str+"</select>";
rs.close();
}
catch(SQLException e){
System.out.println(e.getMessage());
}
return str;
}
public void setCatalog(String CatalogName,String FatherID){
int ChildNum=0;
if(FatherID.compareTo("-1")!=0){
sql="select AncestorID,ChildNum,linkstr from catalog where productid="+FatherID;
//out.println(sql);
try{
rs=conn.execute(sql);
if(rs.next()){
AncestorID=rs.getString("AncestorID");
ChildNum=rs.getInt("ChildNum");
LinkStr=rs.getString("linkstr");
}
else{
AncestorID="";
LinkStr="1";
ChildNum=0;
}
LinkStr=LinkStr+(ChildNum+1);
//out.println(AncestorID+":"+LinkStr+":"+ChildNum);
sql="insert into catalog(title,fatherID,AncestorID,LinkStr) values(''"+CatalogName+"'',''"+FatherID+"'',''"+AncestorID+"'',''"+LinkStr+"'')";
//out.println(sql);
conn.execute(sql);
sql="update catalog set childNum="+(ChildNum+1)+" where productID="+FatherID;
//out.println("<br>"+sql);
conn.execute(sql);
}catch(Exception e){
System.out.println(e);
}

}else{
sql="insert into catalog(title,fatherID,LinkStr) values(''"+CatalogName+"'',''"+FatherID+"'',''1'')";
//out.println(sql);
try{
conn.execute(sql);
sql="select top 1 productID from catalog order by productID desc ";
rs=conn.execute(sql);
if(rs.next()){
AncestorID=rs.getString("productID");
}
else{
AncestorID="";
}
rs.close();
sql="update catalog set AncestorID=''"+AncestorID+"'' where productID="+AncestorID;
//out.println(sql);
conn.execute(sql);
}catch(Exception e){
System.out.println(e);

}

}//end if

if(rs!=null){
try{
rs.close();
}catch(Exception e){
System.out.println(e);
}
}

}

public void deleteCatalog(String FatherID){
int tempData=0;
sql="select fatherID,linkstr,AncestorID from catalog where >rs=conn.execute(sql);
try{
if(rs.next()){
tempData=rs.getInt("fatherID");
LinkStr=rs.getString("linkstr");
AncestorID=rs.getString("AncestorID");
}

try{rs.close();}
catch(Exception e){
System.out.println(e);
}
sql="delete from catalog where ProductID="+FatherID;
// out.println(sql);
try{
conn.execute(sql);
}catch(Exception e){
System.out.println(e);
}
sql="delete from catalog where linkstr like ''"+LinkStr+"%'' and AncestorID="+AncestorID;
//out.println(sql);
try{
conn.execute(sql);
}catch(Exception e){
System.out.println(e);
}
sql="update catalog set ChildNum=ChildNum-1 where productID="+tempData;
//out.println(sql);
try{
conn.execute(sql);
}catch(Exception e){
System.out.println(e);
}
}catch(Exception e){
System.out.println(e);
}
} //end public

public void updateCatalog(int id){

}

public String getCatalog(int id){

str="<select name=\"FatherID\" class=\"p9\">\n"+
"<option value=\"-1\" >请选择父类</option>\n";
String sql=null;
sql="select * from catalog order by AncestorID,Linkstr";
ResultSet rs=conn.execute(sql);
try{
while (rs.next()) {
int ProductID=rs.getInt("productID");
if (ProductID==id) {
str=str+"<option value="+ProductID+" selected>";
}
else{
str=str+"<option value="+ProductID+">";
}
int nbspCount=rs.getString("LinkStr").length()-1;
for(int i=0;i<nbspCount;i++){
str=str+" ";
}
if(nbspCount>0)
str=str+"┠"+rs.getString("title")+"</option>\n";
else
str=str+rs.getString("title")+"</option>\n";

}
str=str+"</select>";
rs.close();
}
catch(SQLException e){
System.out.println(e.getMessage());
}
return str;
}

public String getCatalogList(){

str="<select name=\"FatherID\" class=\"p9\" size=\"20\" onClick=\"MM_jumpMenu(''parent.mainFrame'',this,0)\">\n"+
"<option value=\"-1\" selected>请选择父类</option>\n";
String sql=null;
sql="select * from catalog order by AncestorID,Linkstr";
ResultSet rs=conn.execute(sql);
try{
while (rs.next()) {
str=str+"<option value="+rs.getString("Productid")+">";
int nbspCount=rs.getString("LinkStr").length()-1;
for(int i=0;i<nbspCount;i++){
str=str+" ";
}
if(nbspCount>0)
str=str+"┠"+rs.getString("title").trim()+"</option>\n";
else
str=str+rs.getString("title")+"</option>\n";

}
str=str+"</select>";
rs.close();
}
catch(SQLException e){
System.out.println(e.getMessage());
}
return str;
}
}



上一篇:关于EJB的持久化对象技术分析
下一篇:暂无

普克创业投资网刊载此文不代表同意其说法或描述,仅为提供更多信息。
在百度中搜索产品目录/论坛 树形结构的实现的相关内容]   [在狗狗中搜索产品目录/论坛 树形结构的实现的相关内容]
Copyright @ 2006 PUPK.COM 普克创业投资网 版权所有
 建议使用1024*768以达到最好的浏览效果