日期:2014-05-19  浏览次数:20781 次

关于数据库与treeview的问题(困扰好多天)
有两个窗体,两个窗体都调用数据库
      对于第一个窗体,如果数据库中有这个数据,则选中,如果没有而且又需要选中的打上勾,然后“下一步”进入第二个窗体  
      在第二个窗体上有个treeview以及一些“增加节点”,“删除节点”,“上移下移节点”等功能按钮。在这二个窗体初始化的时候,如果数据库中有数据则也直接调库生成treeview,如果没有而且第一个窗体又选中的则添加进来生成treeview。
      现在的问题是treeview与数据库的操作。究竟是先数据库中的数据生成映射然后进行操作呢?还是在“完成”按钮的时候重新生成一个数据库?  
      这两种方法我都遇到了一些问题。对于方法一(映射),拖动节点,移动节点,增加删除节点,都需要更新映射,这样操作量很大。   更可怕的是我在生成树的时候在数据库定义了一个“LayerIndex”(就是节点的index),如果移动,拖动,不仅这个节点本身要变动,它的兄弟节点的index也需要更新,这样就会很复杂   。
      对于方法二:把以前已经入库的所有数据删除然后重新生成数据,这样的话我有些记录中其它的字段又需要用户重新设置了。这样对用户很不方便
      谢谢大家的指点,能给点思路吗




------解决方案--------------------
没看懂,友情SF
------解决方案--------------------
我做了一个POJO类
例如
class A
{
...

}
------解决方案--------------------
重写:
class A
{
.....//attribute
ArrayList sublist;//他的所有子节点信息--存放的数据全是A类型

}
A类有对数据库执行SQL语句的功能;
只要让A绑定到TreeNode上就万事ok,以后对TreeView就是对数据库的操作