十分郁闷。我苦恼了两天了,我把增加 删除 改名 都完成了,就最后一个环节如何将
Jtree 整颗树 保存到 数据库里 数据库的表又是如何建的 ?
又怎样把 数据库表里的读出来 , 重新生成一个树` 这个问题苦恼了我很多天,希望
高手门来帮我解决一下,跪求了....
Jtree 整颗树 保存到 数据库里 数据库的表又是如何建的 ?
又怎样把 数据库表里的读出来 , 重新生成一个树` 这个问题苦恼了我很多天,希望
高手门来帮我解决一下,跪求了....
OutputStream output = blob.setBinaryStream(0L);
ObjectOutputStream objOutput = new ObjectOutputStream(output);objOutput.writeObject(jtreeObject);
objOutput.close();
output.close();
从数据库读取JTree对象:Blob blob = rs.getBlob(columnIndex);
InputStream input = blob.getBinaryStream();
ObjectInputStream objInput = new ObjectInputStream(input);
JTree jtreeObject = (JTree) objInput.readObject();注: 以上代码未编译、运行、验证
InputStream input = blob.getBinaryStream();
ObjectInputStream objInput = new ObjectInputStream(input);
JTree jtreeObject = (JTree) objInput.readObject();
二楼四楼都提到
Blob blob = rs.getBlob(columnIndex);
InputStream input = blob.getBinaryStream();
ObjectInputStream objInput = new ObjectInputStream(input);
JTree jtreeObject = (JTree) objInput.readObject();
二进制流? 这我不清楚, 不会。
数据库形成表 tree
3个列 id 标识列 name 节点名称 prentid 父类id
id name prentid
1 全部资产 0
2 办公类 1
3 电脑 2
4 鼠标 3
5 中国 1
6 浙江 5
7 杭州 6这是我的想法`Jtree保存到数据库应该是这样的形式
这颗树的形状应该如下显示:
全部资产
办公类
电脑
鼠标
中国
浙江
杭州我现在知道获取整颗树的方法。
for (int i=0 ; i<tree.getRowCount();i++)
{ //获取每一行展开来树的最后节点
DefaultMutableTreeNode node=(DefaultMutableTreeNode) tree.getPathForRow(i).getLastPathComponent();
//获取每个节点离根节点的距离
int nodeNum=node.getLevel();
}
问大家有办法可以让我达到我思想中那种效果吗?
SQL sql=new SQL();
sql.update("use Scar_capinfo if exists (select * from sysobjects where name = 'catetree')"+
" Drop table catetree"+
" create table catetree(prentid int,name varchar(50),id int identity(1,1))");
for (int i=0 ; i<tree.getRowCount();i++)
{
int k=1;
DefaultMutableTreeNode node=(DefaultMutableTreeNode) tree.getPathForRow(i).getLastPathComponent();
int nodeNum=node.getLevel();
sql.update("insert into catetree(prentid,name) values("+nodeNum+",'"+node+"')");
}
保存时的代码 SQL sql=new SQL();
Vector vtprid=new Vector();
Vector id=new Vector();
Vector name=new Vector();
ResultSet rs=sql.query("select * from catetree where prentid!=0 order by id,prentid");
while (rs.next())
{
vtprid.addElement(""+rs.getString(1));
name.addElement(""+rs.getString(2));
id.addElement(""+rs.getString(3));
}
DefaultMutableTreeNode node=null;
Vector vv=new Vector();
for (int i=0 ; i< vtprid.size() ; i++)
{ boolean bl=false;
for (int l = 0; l < vv.size(); l++) { if(vv.get(l).toString().equals(""+i)){
bl=true;
break;
}
}
if(bl){
continue;
}
node=new DefaultMutableTreeNode(name.get(i));
vv.add(new Integer(i));
root.add(node); for (int j = i; j < id.size(); j++)
{
if (vtprid.get(j).equals(id.get(i)))
{
node.add(new DefaultMutableTreeNode(name.get(j)));
vv.add(new Integer(j));
}
}
}读时的代码
楼主【jinzhoucai】截止到2008-07-04 11:44:44的历史汇总数据(不包括此帖):
发帖的总数量:3 发帖的总分数:120
结贴的总数量:1 结贴的总分数:0
无满意结贴数:1 无满意结贴分:20
未结的帖子数:2 未结的总分数:120
结贴的百分比:33.33 % 结分的百分比:0.00 %
无满意结贴率:100.00% 无满意结分率:---------------------
楼主该结一些帖子了