Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JTree и все что с ним связано / 24 сообщений из 24, страница 1 из 1
12.10.2005, 13:52
    #33319998
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Хочу сделать динамическое дерево,т.е. чтобы при нажатии на лист или узел появлялось меню, в котором я могу выбрать "создать подгруппу","создать группу" ну и т.д. Также необходимо,чтобы сразу это все заносилось в базу.Вопрос, как организовать таблички в таком случае.
Узел1, у него подУзел1.1, а у подУзла1.1 есть подУзел3,
как в базе это все хранить,ведь иерархия может быть очень большой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
1
1.1
1.1.1------1.1.1.1
               1.1.1.2-------1.1.1.2.1----
               ..........
               
1.2--------1.2.1
2
2.1
кто как делает такое
...
Рейтинг: 0 / 0
12.10.2005, 14:15
    #33320093
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
А что Грассофт скажет по этому поводу, он у нас много накодил в свое время по JTree
...
Рейтинг: 0 / 0
12.10.2005, 14:16
    #33320097
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
peter6636Хочу сделать динамическое дерево,т.е. чтобы при нажатии на лист или узел появлялось меню, в котором я могу выбрать "создать подгруппу","создать группу" ну и т.д. Также необходимо,чтобы сразу это все заносилось в базу.Вопрос, как организовать таблички в таком случае.
Узел1, у него подУзел1.1, а у подУзла1.1 есть подУзел3,
как в базе это все хранить,ведь иерархия может быть очень большой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
1
1.1
1.1.1------1.1.1.1
               1.1.1.2-------1.1.1.2.1----
               ..........
               
1.2--------1.2.1
2
2.1
кто как делает такое

У каждого узла есть уникальный идентификатор. И каждому узлу известен его родитель. Они в базе и хранятся.
Правда чтобы пробещаться по пути, придется тебе делать рекурсивные хранимые процедуры.
...
Рейтинг: 0 / 0
12.10.2005, 14:18
    #33320105
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Я хотел сказать, что каждому узлу НУЖНО присвоить UID.
...
Рейтинг: 0 / 0
12.10.2005, 14:19
    #33320107
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Кувалдин Роман peter6636Хочу сделать динамическое дерево,т.е. чтобы при нажатии на лист или узел появлялось меню, в котором я могу выбрать "создать подгруппу","создать группу" ну и т.д. Также необходимо,чтобы сразу это все заносилось в базу.Вопрос, как организовать таблички в таком случае.
Узел1, у него подУзел1.1, а у подУзла1.1 есть подУзел3,
как в базе это все хранить,ведь иерархия может быть очень большой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
1
1.1
1.1.1------1.1.1.1
               1.1.1.2-------1.1.1.2.1----
               ..........
               
1.2--------1.2.1
2
2.1
кто как делает такое

У каждого узла есть уникальный идентификатор. И каждому узлу известен его родитель. Они в базе и хранятся.
Правда чтобы пробещаться по пути, придется тебе делать рекурсивные хранимые процедуры.
вот этого то я делать и не умею, что за процедуры такие
...
Рейтинг: 0 / 0
12.10.2005, 14:23
    #33320128
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Обычные. Они же stored procedures. Некоторые базы данных позволяют описать внутри себя необходимую логику. Эффективно в том случае, если тебе нужно получить какую-нибудь нетривиальную выборку из таблиц большого объема.
...
Рейтинг: 0 / 0
12.10.2005, 14:26
    #33320146
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
...
Рейтинг: 0 / 0
12.10.2005, 15:25
    #33320364
Liner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
рекурсия это зло :))
если база на оракле, то там есть уже готовые функции работы с деревом :))
...
Рейтинг: 0 / 0
12.10.2005, 15:27
    #33320378
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Linerрекурсия это зло :))
если база на оракле, то там есть уже готовые функции работы с деревом :))
у меня sql server 7.0
...
Рейтинг: 0 / 0
12.10.2005, 16:54
    #33320743
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
авторрекурсия это зло :))Почему?
авторесли база на оракле, то там есть уже готовые функции работы с деревом :))А они не используют рекурсию?
...
Рейтинг: 0 / 0
12.10.2005, 17:01
    #33320764
KPIIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
а разве не подойдет для этого отношение с такими атрибутами:
ПРЕДОК |ПОТОМОК
UID предка UID потомка

можно ли так описать предложенную структуру?
...
Рейтинг: 0 / 0
12.10.2005, 17:17
    #33320814
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
KPIISа разве не подойдет для этого отношение с такими атрибутами:
ПРЕДОК |ПОТОМОК
UID предка UID потомка

можно ли так описать предложенную структуру?

То же что и я предлагал, только вынесенное в отдельную таблицу.
...
Рейтинг: 0 / 0
12.10.2005, 19:24
    #33321145
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Ну вот будет у меня сто групп и сто подгрупп, это ж сколько таблиц будет у меня в базе, о какой нормализации тогда будет ити речь?
...
Рейтинг: 0 / 0
13.10.2005, 06:37
    #33321436
Liner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
GMaxПочему?Зачем ее использовать если можно попробовать обойтись без нее? :)
ИМХО!!! Рекурсивный вызов хранимых процедур на сервере баз данных это круто )
GMaxА они не используют рекурсию? Честно? - не знаю :)

2peter6636
Дерево делаю так:
В базе 1 табличка со структурой: id, id_parent, + необходимые поля
потом запросик, но это для оракла
Код: plaintext
1.
2.
3.
4.
SELECT id, ..., LEVEL lv
FROM table
START WITH id_parent =  0 
CONNECT BY PRIOR id = id_parent
в поле lv получается глубина вложенности узла, и потом просто в цикле начиная с самого маленького lv заполняю дерево. т.е. вначале рутовые узлы, потом к ним их потомков, потом к ним их и т.д. до последнего уровня
в sql server 7, нет функций работы с деревом, можешь попробовать сам формировать и хранить поле LEVEL - глубину вложенности текущего узла.

Можешь еще попробовать динамически подгружать дерево из базы, когда пользователь раскрывает какой-нить узел - там вообще все просто, один селект с id_parent узла, который ткнул пользователь, это хорошо например, когда дерево большое а навигация по нему маленькая. Смысл грузить все дерево тогда (в несколько сотен элементов например), если пользователь ткнет 3-4 узла и успокоится?
...
Рейтинг: 0 / 0
13.10.2005, 07:14
    #33321455
shiko_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Насколько я представляю себе, для создания дерева и его сохранения в базе достаточно одной таблицы. Есть несколько вариантов как это оганизовать.

Например, можно хранить в базе

1. id узла
2. id родителя
3. уровень вложения

Из этих трёх атрибутов можно получть исчерпывающую информацию о построении дерева.
...
Рейтинг: 0 / 0
13.10.2005, 09:25
    #33321585
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
shiko_1
3. уровень вложения

зачем?

допустим, есть продукты типа компакт-дисков. они объединяются в группы.
компакт-диск:
- может не входить ни в одну из групп
- может входить в одну группу
- может входить в несколько групп

для такой схемы нужно три таблицы:

compact_disc (PK = primary key)
field_namefield_typeidint (PK)namevarchar

cd_group (если parent_id = null, то группа является корневой)
field_namefield_typeidint (PK)parent_idint (null)namevarchar

cd_group_rels (PK на оба поля)
field_namefield_typegroup_idintcd_idint

при старте программы и показе дерева совсем не обязательно читать
все группы в дерево сразу. читаются только с parent_id = null.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 class  CDGroup {
   int  id;
   int  parentId;
  String name;
}

List getGroups(CDGroup parentGroup) {
  ...
}

// на старте программы:
List groups = getGroups( null );
...
далее список отображаем в ноды дерева. как это сделать более эффективно
я писал тут: http://www.sql.ru/forum/actualthread.aspx?tid=195134#1651201
...
Рейтинг: 0 / 0
13.10.2005, 09:51
    #33321648
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Ок, а для чего добавлять фиктивный элемент, чтобы узел отображался именно как узел,а не лист, или как?
...
Рейтинг: 0 / 0
13.10.2005, 09:52
    #33321652
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
peter6636Ок, а для чего добавлять фиктивный элемент, чтобы узел отображался именно как узел,а не лист, или как?да, чтобы рядом
с узлом "плюсик" был для раскрытия узла.
...
Рейтинг: 0 / 0
13.10.2005, 09:59
    #33321676
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
А.Грасоff™ peter6636Ок, а для чего добавлять фиктивный элемент, чтобы узел отображался именно как узел,а не лист, или как?да, чтобы рядом
с узлом "плюсик" был для раскрытия узла.
Ясно,спасибо,если что я еще спрошу кое-что
...
Рейтинг: 0 / 0
13.10.2005, 10:15
    #33321735
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Еще вопрос, как мне отследить раскрыт узел или нет, нужно для того чтобы если раскрыт удалять фиктивный нод, если закрыт, добавить
...
Рейтинг: 0 / 0
13.10.2005, 10:17
    #33321744
Liner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
А.Грасоff™зачем?
Если хочешь сразу все дерево заполнить и с рекурсией не заморачиваться, это поле поможет
...
Рейтинг: 0 / 0
13.10.2005, 10:30
    #33321785
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
1) Еще вопрос, как мне отследить раскрыт узел или нет, нужно для того чтобы если раскрыт удалять фиктивный нод, если закрыт, добавить
2) А что делать, если пользователь хахочет добавить новую группу.В таком случае нужно будет автоматически создавать таблицу в базе с определенным именем?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
15.04.2014, 23:42
    #38615945
RRNDEONISIUSEZH
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
Доброго времени суток!
Подскажите пож-ста, на данный момент я наполняю JTree из таблицы следующим кодом:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
class MyModelTree extends DefaultMutableTreeNode {
 
public DefaultTreeModel model(String[][] vot){
 
DefaultMutableTreeNode osnova;
osnova = null;
DefaultMutableTreeNode osnova1;
osnova1 = null;
DefaultMutableTreeNode ср1;
ср1=null;
DefaultMutableTreeNode ср2;
ср2=null;
DefaultMutableTreeNode ср3;
ср3=null;
DefaultMutableTreeNode ср4;
ср4=null;
DefaultMutableTreeNode ср5;
ср5=null;
                osnova =new DefaultMutableTreeNode("ГК");
 
for(int i = 0; i<vot.length;i++){
switch(Integer.parseInt(vot[i][2])){
                case 0:
                osnova1 = new DefaultMutableTreeNode(vot[i][1]);
                osnova.add(osnova1);
                break;
                case 1:
                ср1 = new DefaultMutableTreeNode(vot[i][1]);
                osnova.add(ср1);
                break;
                case 2:
                ср2 = new DefaultMutableTreeNode(vot[i][1]);
                ср1.add(ср2);
                break;
                case 3:
                ср3 = new DefaultMutableTreeNode(vot[i][1]);
                ср2.add(ср3);
                break;
                case 4:
                ср4 = new DefaultMutableTreeNode(vot[i][1]);
                ср3.add(ср4);
                break;
                case 5:
                ср5 = new DefaultMutableTreeNode(vot[i][1]);
                ср4.add(ср5);
                break;
}
 
}
return new javax.swing.tree.DefaultTreeModel(osnova);
}
}



где i - это уровень, то есть для формирования моего дерева мне необходимы следующее расположение данных:

Столбец сортировки;Название;Уровень
1 А 0
2 б 1
3 В 0
4 г 1

То есть "А" и "В" - это корневые каталоги, а "б" и "г " - это подкаталоги "б"->"А", "г"->"В".

В моем подходе существует как минимум несколько для меня минусов:
1. Не понимаю, как в режиме реального времени добавлять потомка к конкретному узлу
2. Невозможность соотнести потомка и корень, если они следуют не попорядку.


Теперь сам вопрос:
Как перестроить код наполнения дерева, чтоб получить вид:
Уникальный идентификатор; Название; Уникальный идентификатор родителя
1 А 0
2 б 1
3 В 0
4 г 3
5 д 3

То есть здесь "А" и "В" - корневые каталоги, "б" потомок "А", "г" и "д" потомки "В".


Заранее спасибо хоть за каккую нить подсказку!
...
Рейтинг: 0 / 0
16.04.2014, 12:19
    #38616318
RRNDEONISIUSEZH
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTree и все что с ним связано
И так для создания динамически формируемого и редактируемого дерева, нам понадобится:

1.
Таблица со следующими данными:

Create Table MyTable..TreeTable (
id int identity not null, //Уникальный идентификатор строки
nameEvent varchar(1000) not null, //Отображаемое название
parent int null, //Уникальный идентификатор родителя
fullname varchar(4000) not null, //Полный путь дерева к элементу
lvl int not null //Уровень элемента

)
2. Вносим наш корневой каталог (Это тот каталог, который будет виден вседа)
INSERT INTO MyTable..TreeTable(nameEvent,fullname,lvl) values('Ваше название','Ваше название',0);


3. Затем идет раяд классов и методов для работы с получаемыми данными:





new SetVisibleJTree().show(forma.jTreeEvents); //Основной запуск построения дерева


/*
*Добавляет лист в выбранный каталог
*/

package OnlyTree;

import PublicClass.CONNECT;
import PublicClass.MyException;
import java.sql.SQLException;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;

/**
*
* @author ezhov_da
*/
public class AddRoot {
private JTree jTree;
private JTextField jTextField;

public AddRoot(JTree jtree,JTextField jtextfield){
jTree = jtree;
jTextField=jtextfield;
}

public void AddRoot() throws MyException, SQLException{
try{
//**********************************************************************
//Получаем выделенный узел
TreeSelectionModel TSM = jTree.getSelectionModel();
TreePath TP = TSM.getSelectionPath();
DefaultMutableTreeNode TC = (DefaultMutableTreeNode)TP.getLastPathComponent();
TreeClass TCC = (TreeClass)TC.getUserObject();

//**********************************************************************
//Здесь получим полный путь к событию
String fullPath;
fullPath="";

for(TreeNode path : TC.getPath()){
fullPath = fullPath +"*"+ path.toString(); //Разделители могут быть свои
}
//А здесь мы обрежем первый символ, так как он решетка
fullPath = ((String)fullPath+"*"+jTextField.getText()).substring(1
, ((String)fullPath+"*"+jTextField.getText()).length());
//**********************************************************************

//**********************************************************************
//Вносим данные
new CONNECT().insert(
"INSERT INTO MyTable..TreeTable(nameEvent,parent,fullname,lvl) values('"+
jTextField.getText()+"'"
+ ","+TCC.getId()+",'"
+fullPath+"',"
+(TCC.getLvl()+1)+")"
);

//Пересобираем таблицу
new SetVisibleJTree().show(jTree);

} catch(NullPointerException ex){throw new MyException("Выберите основной узел!");} //Мое исключение
}
}


/*
*Строим дерево, обратите внимание, что в моем примере дерево допускает 11 уровней вложенности,
*Вы можете установить их количество по своему вкусу.
*/

package OnlyTree;

import java.util.Enumeration;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.MutableTreeNode;
import javax.swing.tree.TreeNode;

/**
*
* @author ezhov_da
*/
public class CreateJTree extends DefaultMutableTreeNode {

public DefaultTreeModel model(LinkedHashSet<TreeClass> maIntoMass,String nameRootEvent){

DefaultMutableTreeNode osnova;
osnova = null;
DefaultMutableTreeNode ср0;
ср0 = null;
DefaultMutableTreeNode ср1;
ср1=null;
DefaultMutableTreeNode ср2;
ср2=null;
DefaultMutableTreeNode ср3;
ср3=null;
DefaultMutableTreeNode ср4;
ср4=null;
DefaultMutableTreeNode ср5;
ср5=null;
DefaultMutableTreeNode ср6;
ср6=null;
DefaultMutableTreeNode ср7;
ср7=null;
DefaultMutableTreeNode ср8;
ср8=null;
DefaultMutableTreeNode ср9;
ср9=null;
DefaultMutableTreeNode ср10;
ср10=null;
DefaultMutableTreeNode ср11;
ср11=null;


for(TreeClass me : maIntoMass){
switch(me.getLvl()){
case 0:
ср0 = new DefaultMutableTreeNode(me);
break;
case 1:
ср1 = new DefaultMutableTreeNode(me);
ср0.add(ср1);
break;
case 2:
ср2 = new DefaultMutableTreeNode(me);
ср1.add(ср2);
break;
case 3:
ср3 = new DefaultMutableTreeNode(me);
ср2.add(ср3);
break;
case 4:
ср4 = new DefaultMutableTreeNode(me);
ср3.add(ср4);
break;
case 5:
ср5 = new DefaultMutableTreeNode(me);
ср4.add(ср5);
case 6:
break;
case 7:
ср6 = new DefaultMutableTreeNode(me);
ср5.add(ср6);
break;
case 8:
ср7 = new DefaultMutableTreeNode(me);
ср6.add(ср7);
break;
case 9:
ср8 = new DefaultMutableTreeNode(me);
ср7.add(ср8);
break;
case 10:
ср9 = new DefaultMutableTreeNode(me);
ср8.add(ср9);
break;
case 11:
ср10 = new DefaultMutableTreeNode(me);
ср9.add(ср10);
break;
}

}
return new javax.swing.tree.DefaultTreeModel(ср0);
}
}



/*
*Удаляем не нужные узлы
*/

package OnlyTree;

import PublicClass.CONNECT;
import PublicClass.MyException;
import java.sql.SQLException;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;

/**
*
* @author ezhov_da
*/
public class DeleteRoot {
private JTree jTree;

public DeleteRoot(JTree jtree){
jTree = jtree;
}

public void deleteRoot() throws MyException, SQLException{
TreeSelectionModel TSM = jTree.getSelectionModel();
TreePath TP = TSM.getSelectionPath();
DefaultMutableTreeNode TC = (DefaultMutableTreeNode)TP.getLastPathComponent();
TreeClass TCC = (TreeClass)TC.getUserObject();

if (TC.getChildCount()>0) throw new MyException("Вы пытаетесь удалить узел, у которого есть потомок!");

new CONNECT().delete("Delete From MyTable..TreeTable Where id = "+TCC.getId());

new SetVisibleJTree().show(jTree);
}
}


/*
*Отображаем дерево из нашего запроса
*/

package OnlyTree;

import PublicClass.CONNECT;
import java.sql.SQLException;
import javax.swing.JTree;

/**
*
* @author ezhov_da
*/
public class SetVisibleJTree {
public void show(JTree jTree) {
try{
jTree.setModel(
new CreateJTree().model(
new CONNECT().selectCreateTree("SELECT id, [nameEvent],parent,fullname,"
+ " [lvl] FROM [MyTable].[dbo].[TreeTable]"
+ " order by fullname,[lvl],id"), "Событие"));
} catch(SQLException e){System.out.println("Ошибка при построении дерева на стадии отображения!");}
}
}



/*
*Класс, который хранит информацию о нашем элементе в дереве
*/

package OnlyTree;

/**
*
* @author ezhov_da
*/
public class TreeClass {
private int id;
private String name;
private int parent;
private String fullname;
private int lvl;

public TreeClass(int id, String name,int parent, String fullname,int lvl){
this.id = id;
this.name = name;
this.lvl=lvl;
this.parent = parent;
this.fullname=fullname;
}

public String getName(){
return name;
}

public int getLvl(){
return lvl;
}

public int getId(){
return id;
}


public String toString(){
return name;
}

public String detFullname(){
return fullname;
}

public int getParent(){
return parent;
}
}



/*
*Мое собственное исключение, которое я вывожу в
*случае нужной мне ошибки(такой как к примеру удаление узла с потомками)
*/

package PublicClass;

import javax.swing.JOptionPane;

/**
*
* @author ezhov_da
*/
public class MyException extends Exception {
private String alarm;
public MyException(String str){
alarm = str;
}

public void alarm(){
JOptionPane.showMessageDialog(null, alarm, "Важно!", JOptionPane.ERROR_MESSAGE);
}

}




/*
*Методы для получения информации
*/

public LinkedHashSet<TreeClass> selectCreateTree(String zapros) throws SQLException{
LinkedHashSet<TreeClass> mass = new LinkedHashSet<TreeClass>();

Statement st = myConnection.createStatement(); //Запрос хранится в объекте, реализующем интерфейс Statement

ResultSet result = st.executeQuery(zapros); //Выполняем запрос

ResultSetMetaData rmd = result.getMetaData();

while(result.next()){
mass.add(new TreeClass(
result.getInt(1)
,result.getString(2)
,result.getInt(3)
,result.getString(4)
,result.getInt(5)
));
}
result.close();

return mass;
}


public void delete(String zapros) throws SQLException{
Statement st = myConnection.createStatement(); //Запрос хранится в объекте, реализующем интерфейс Statement
st.execute(zapros); //Выполняем запрос
}

public void insert(String zapros) throws SQLException{
Statement st = myConnection.createStatement(); //Запрос хранится в объекте, реализующем интерфейс Statement
st.execute(zapros); //Выполняем запрос
}






...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JTree и все что с ним связано / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]