树形结构目录的树形结构目录
发布网友
发布时间:2022-04-12 17:45
我来回答
共2 个回答
懂视网
时间:2022-04-12 22:06
原理请参见www.chinaasp.com/sqlbbs中的ASP 论坛 版精华区 本例采用access做为实例,所有还有很多要改进的地方。 请读者自已改进 package PRodUCt; import java.sql.*; public class ConnectDB{ String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver"; String
原理请参见www.chinaasp.com/sqlbbs中的ASP论坛版精华区
本例采用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="
"+ "请选择父类 "; String sql=null; sql="select * from catalog order by AncestorID,Linkstr"; ResultSet rs=conn.execute(sql); try{ while (rs.next()) { str=str+""; int nbspCount=rs.getString("LinkStr").length()-1; for(int i=0;i str=str+" "; } if(nbspCount>0) str=str+"┠"+rs.getString("title")+" "; else str=str+rs.getString("title")+" "; } str=str+" ";
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("
"+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 productID="+FatherID;
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="
"+ "请选择父类 "; 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+""; } else{ str=str+" "; } int nbspCount=rs.getString("LinkStr").length()-1; for(int i=0;i str=str+" "; } if(nbspCount>0) str=str+"┠"+rs.getString("title")+" "; else str=str+rs.getString("title")+" "; } str=str+" ";
rs.close();
}
catch(SQLException e){
System.out.println(e.getMessage());
}
return str;
}
public String getCatalogList(){
str="
"+ "请选择父类 "; String sql=null; sql="select * from catalog order by AncestorID,Linkstr"; ResultSet rs=conn.execute(sql); try{ while (rs.next()) { str=str+""; int nbspCount=rs.getString("LinkStr").length()-1; for(int i=0;i str=str+" "; } if(nbspCount>0) str=str+"┠"+rs.getString("title").trim()+" "; else str=str+rs.getString("title")+" "; } str=str+" ";
rs.close();
}
catch(SQLException e){
System.out.println(e.getMessage());
}
return str;
}
}
热心网友
时间:2022-04-12 19:14
虽然说树形结构目录适用于企业运作是个不错的选择,但这并非局限了它的应用范围。树形结构目录可以广泛应用于生物演变、历史进程、技术变革等广泛的各个领域的时间、空间甚至于它们之间的联系网络之中。