Обсуждение: jtree and sql queries

Поиск
Список
Период
Сортировка

jtree and sql queries

От
Luca Ferrari
Дата:
Hi all,
I'm just wondering if someone has already bound a JTree to a set of sql
queries. I explain it better: I've got  a person table, a skill table and a
role table. Each person can play one or more role, and can have one or more
skill. I'd like to show to the user the result of the query as a tree:
person
+- roles
   +- role1
    +- role2
 +skills
    +- skill1
    +- skill2
....

As you can imagine, the difficult is to bind each node tree to its table and
to a specific query. For now I've bound each node to its table and its key
value (with bound I mean that from the node I can know which table and key I
must use to find the row in the database), but my difficult now is to refresh
the tree each time the user makes a changes to the database. Unlike the use
of simple tables, building the tree is more complex, because more queries
must be performed, so I was wondering if someone out there has already
something similar and can suggest me.

Thanks,
Luca

Re: jtree and sql queries

От
Roland Walter
Дата:
Luca Ferrari schrieb:
> Hi all,
> I'm just wondering if someone has already bound a JTree to a set of sql
> queries. I explain it better: I've got  a person table, a skill table and a
> role table. Each person can play one or more role, and can have one or more
> skill. I'd like to show to the user the result of the query as a tree:
> person
> +- roles
>    +- role1
>     +- role2
>  +skills
>     +- skill1
>     +- skill2
> ....
>
> As you can imagine, the difficult is to bind each node tree to its table and
> to a specific query. For now I've bound each node to its table and its key
> value (with bound I mean that from the node I can know which table and key I
> must use to find the row in the database), but my difficult now is to refresh
> the tree each time the user makes a changes to the database. Unlike the use
> of simple tables, building the tree is more complex, because more queries
> must be performed, so I was wondering if someone out there has already
> something similar and can suggest me.
>
> Thanks,
> Luca

I had once similiar problem. I used one statement with left outer joins
that queried all tables connected with the nodes. The values of the row
were inserted into the tree. First checked if the first value exists on
his level, if it did not I created a new node, elsewhile I checked all
subnodes of that node for the second value. The algorithm was recursive.
If the database changed I built the whole tree again. Not very
performant but was sufficient for results with about a few thousand rows.

I would only build the tree once with one query. All changes of the user
on the tree might create insert or update statements but the tree would
not be build again but only modified according to the changes. But this
works only if there are no concurrent changes on the tables. You should
consider putting the modification into a transaction then.

Regards,
Roland.