powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как перевести программу на JPA с минимальными усилиями
54 сообщений из 54, показаны все 3 страниц
как перевести программу на JPA с минимальными усилиями
    #37813146
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
История такая - есть прога которую писали тупые студенты, щас хочу немного переписать.

Работа с БД там такая - в 5 классах при старте создавались свои подключения к БД, причем настройки соединения дублировались во всех 5, потом в каждом классе делался запрос к БД и помещал все данные в ОДИН глобальный объект "контекст".
А все формы обращаются к этому объекту и читают из него, т.е. там все поля всех таблиц разделены только комментариями. Запись в базу не реализована пока вообще.

Я хочу перевести работу на JPA , чтобы не писать километровые куски JDBC-кода и обновлять из рекордсета элементы форм вручную. Хочу чтоб были биндинги для контролов, хочу сохранение и чтение всех полей одной строкой.

Пока удалось перевести одну форму на JPA - создал класс сущности, при открытии обращаюсь и получаю данные в List<>. Читает нормально но в полсекунды задержка и в лог пишется это:
автор
Код: plaintext
1.
[EL Info]: 2012-05-27 01:40:38.529--ServerSession(19955448)--EclipseLink, version: Eclipse Persistence Services - 2.3.0.v20110604-r9504
[EL Info]: 2012-05-27 01:40:38.966--ServerSession(19955448)--file:*путь к проекту*/JavaApplication1/build/classes/_MyPU login successful
Что это за коннект и логин, он отдельно от ранее созданного соединения будет постоянно коннектиться что ли?? Или можно ему передать соединение?

Само соединение с базой я переделал и вывел в отдельный класс-синглтон. Пока получаю данные так:
Код: java
1.
2.
3.
emf = Persistence.createEntityManagerFactory("MyPU");
em = emf.createEntityManager();
data = em.createNamedQuery("OperObrabotki.findAll").getResultList();



Второй вопрос - как теперь повесить биндинг к элементу полученных данных? В уроках нетбинса все мастером делают, у меня нет в меню этого объекта куда я получаю данные.

И третье - надо ли углубляться в ТопЛинк/Хибер , или можно как то попроще сделать? Мне не надо всякие межтабличные связи, кучу аннотаций...

Пока гуглю на каждый мелкий вопрос, вроде понемногу получается )
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813186
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychik,
у тебя нет практически ничего из стека БД ---> ГУИ.
Вот и начинай с низу - Модель данных или Структура БД и маппинг классов на неё.
Предметная область \ выделение сущностей ЗНАЧИМЫХ для бизнеса.
ЗЫ. Как ты без связей обойдёшься - под вопросом.
______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813204
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нее, есть модель с маппингом. Я уже сделал класс-сущность для одной таблицы (для теста на ней), добавил на форму бин указывающий на эту сущность.

Сейчас вопрос вот в чем - я указал привязку текстового поля к одному полю этого бина, получаю данные в него, а на форме данные не появляются.
Если без привязки делать тупо txtField.setText(dataitem.getField()); тогда данные видно
Так как полей около 20, как то нерационально писать руками если есть механизм привязок
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813208
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В целом мне надо сделать типичное окно-навигатор с кнопками "вперед", "назад", "новая" по записям таблицы

В яве даже такой примитив выливается в шаманство, охренеть просто.
Если есть готовые примеры или наводки где искать, буду благодарен.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813243
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychik,

А если добавить в модель описание UI полей и генерить форму, не быстрее получится? Там кода не много нужно, а профит ощутимый.

что-то типа такого замутить:

Код: java
1.
2.
@UiLabel("Телефон")
private String phone;



И написать обработку аннотации для генерации формы или просто для связывания компонентов.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813261
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikВ целом мне надо сделать типичное окно-навигатор с кнопками "вперед", "назад", "новая" по записям таблицы
В яве даже такой примитив выливается в шаманство, охренеть просто.
Если есть готовые примеры или наводки где искать, буду благодарен.
чтобы не шаманить для таблиц есть 3 варинта ZK \ SmartGWT \ Vaadin ну и ещё всякие Клик и т.д.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813281
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ZK \ SmartGWT \ Vaadinу меня не веб, а десктоп. на свинге надо
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813345
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приходится сейчас делать так:
В конструкторе формы:
Код: java
1.
2.
3.
4.
         emf = DBConnection.getEMF(); //фабрика создается при старте приложения в модуле DBConnection, тут только получаем
         em = emf.createEntityManager(); // создаем из фабрики менеджер
         data = em.createNamedQuery("OperObrabotki.findAll").getResultList(); // делаем запрос и получаем все строки 
         LoadDataToUI(0);// загружаем в контролы первую запись

процедура LoadDataToUI(int i) помещает во все контролы значения из объекта под номером i в списке всех строк-объектов
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
private void LoadDataToUI(int i) {
      if (!data.isEmpty()) {
         operObrabotki1 = data.get(i);
         //txtMetodVrez.setText(dataitem.getMetodVresaniya());
      }
      else return;
      txtNumPP.setValue(operObrabotki1.getNomExp()); // в свойство текстового поля суем поле объекта
      txtTypeEE.setValue(operObrabotki1.getIdElement());
      txtCodeOperation.setValue(operObrabotki1.getIdOper());
      txtMetodVrez.setValue(operObrabotki1.getMetodVresaniya());
      txtTypePogr.setValue(operObrabotki1.getTypePogruzheniya());
      // ... еще 15 полей... !!!!
}


Затем надо будет сделать процедуру LoadDataFromUI , там сделать все наоборот. Мне одному кажется что это тупо?
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813435
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychik,

JGoodies Binding глянь, там без аннотаций, но само связывание хорошее.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813482
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
черт, теперь проблема с JPA - русские символы не показываются. Если просто через JDBC соединяться то там можно указать
Код: java
1.
dataSource.setCharSet("cp1251");

. А как в конфигурации JPA это указать?
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813490
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кажтся перевод на JPA слишком монструозное предприятие, надо изучать матчасть и книги читать.
Примеры биндинга на сайте нетбинса есть только для таблиц, для отдельных полей показан только биндинг к активной строке таблицы.

Добавил в класс сущности метод getAll и через JDBC заполняю спиоск объектов, потом добавлю методы Update(id) и Delete(id). Лучше тупо но 100% работает чем неделю городить монстра JPA
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813521
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikчерт, теперь проблема с JPA - русские символы не показываются. Если просто через JDBC соединяться то там можно указать
Код: java
1.
dataSource.setCharSet("cp1251");

. А как в конфигурации JPA это указать?
- в настройках JDBC-пула, в соответствии со спецификой используемого JDBC-драйвера
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37813578
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так это и есть команда для JDBC, а в JPA как? Где там JDBC пул? Там в persistence.xml все прописывается и все. Пытался там в проперти добавить "encoding" - нет эффекта
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37814033
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikтак это и есть команда для JDBC, а в JPA как? Где там JDBC пул? Там в persistence.xml все прописывается и все. Пытался там в проперти добавить "encoding" - нет эффекта
- в persistence.xml описываются либо настройки для JDBC-драйвера, либо указывается имя внешнего JDBC-пула. Начнем с простых вопросов:
1) Вы используете JDBC-пул или непосредственное подключение к БД? Судя по вопросу:
badboychikЧто это за коннект и логин, он отдельно от ранее созданного соединения будет постоянно коннектиться что ли?? Или можно ему передать соединение? делаю телепатический вывод, что пул не используется (отсюда и проблемы с производительностью)
2) Какая БД и соответственно JDBC-драйвер используется? (для разных БД настройки разные)
3) Чтобы не играть в вопросы-ответы приведите свой persistence.xml
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37814937
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД фаербёрд, драйвер Jaybird
файл как в примерах
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8" ?> 
- <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
- <persistence-unit name="MyPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <class>database.OperObrabotki</class> 
    <class>database.Instrument</class> 
-   <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:firebirdsql://localhost:3050/i:/CalcRD/5.gdb" /> 
      <property name="javax.persistence.jdbc.password" value="masterkey" /> 
      <property name="javax.persistence.jdbc.driver" value="org.firebirdsql.jdbc.FBDriver" /> 
      <property name="javax.persistence.jdbc.user" value="SYSDBA" /> 
      <property name="encoding" value="Cp1251" /> 
    </properties>
  </persistence-unit>
</persistence>
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37815703
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikЯ хочу перевести работу на JPA , чтобы не писать километровые куски JDBC-кода и обновлять из рекордсета элементы форм вручную.

Не думаю, что имеет смысл затевать шаманство с JPA. Хотя для общего развития полезно.

badboychikХочу чтоб были биндинги для контролов, хочу сохранение и чтение всех полей одной строкой.

JGoodies Bindging. Это единственный биндинг для свинга (если речь про десктоп, конечно).

badboychikЧто это за коннект и логин, он отдельно от ранее созданного соединения будет постоянно коннектиться что ли?? Или можно ему передать соединение?

Нет, EclipseLink будет сам создавать соединения, когда ему нужно. Обычно, как минимум два - на чтение и на запись.

badboychikСамо соединение с базой я переделал и вывел в отдельный класс-синглтон. Пока получаю данные так:
Код: java
1.
2.
3.
emf = Persistence.createEntityManagerFactory("MyPU");
em = emf.createEntityManager();
data = em.createNamedQuery("OperObrabotki.findAll").getResultList();



Это не соединение с базой. Это синглетон работы с JPA EMF. Как правило, каждый EntityManager создает свое соединение с базой.

badboychikВторой вопрос - как теперь повесить биндинг к элементу полученных данных? В уроках нетбинса все мастером делают, у меня нет в меню этого объекта куда я получаю данные.

NetBeans использует Beans Binding, который помер и вряд ли воскреснет.

badboychikВ целом мне надо сделать типичное окно-навигатор с кнопками "вперед", "назад", "новая" по записям таблицы
В яве даже такой примитив выливается в шаманство, охренеть просто.
Если есть готовые примеры или наводки где искать, буду благодарен.

для JGoodies Bindings:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
final List<Data> data = em.createNamedQuery("OperObrabotki.findAll").getResultList();
final SelectionInList<Data> list  = new SelectionInList<Data>(data);
final BeanAdapter<Data>	 adapter = new BeanAdapter<Data>(list, true);
final JTextField edit1	= new JTextField();
Bindings.bind(edit1, adapter.getValueModel(adapter, "dataProperty"), true);
AbstractAction actionFirst = new AbstractAction() {
	@Override
	public void actionPerformed(ActionEvent e)
	{
		if (list.getSize() > 0)
			list.setSelectionIndex(0);
	}
}
JButton buttonFirst = new JButton(actionFirst);


вроде как для начала не очень сложно :)
Проблемы начинаются с выводом форматированных данных (даты, числа с точкой etc). Но это уже совсем другая история.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37815762
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- что-то вроде:
Код: xml
1.
2.
     
<property name="javax.persistence.jdbc.url" value="jdbc:firebirdsql://localhost:3050/i:/CalcRD/5.gdb?charSet=Cp1251" /> 


хотя насчет CP1251 я бы подумал, возможно есть какая-то путаница с кодировками, но тут Вам видней в какой кодировке у Вас что
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817354
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexJmЭто не соединение с базой. Это синглетон работы с JPA EMF
Не, синглтон используется для простого JDBC, сейчас через него работаю, JPA убрал
AlexJmНет, EclipseLink будет сам создавать соединения, когда ему нужно.
Плохо.. если при открытии каждой формы будет создаваться соединение, это будет постоянно задержка открытия формы. Должен быть какой то пул... Я слышал в курсах что EntityManager это легкий объект, можно создавать сколько угодно, а вот EntityManagerFactory лучше при старте один раз создать, он тяжелый.
автор.....?charSet=Cp1251так выдает ошибку при соединении, это способ для MySQL подходит

В итоге - если использовать JDBC это надо для каждой таблицы
1) создать класс
2) создать в нем как минимум методы getAll, findById,update,delete
3) и в них все запросы ручками собирать из полей
4) прописать вручную jgoodies-биндинг контролов к полям классов
так что ли?
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817564
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikAlexJmНет, EclipseLink будет сам создавать соединения, когда ему нужно.
Плохо.. если при открытии каждой формы будет создаваться соединение, это будет постоянно задержка открытия формы. Должен быть какой то пул... Я слышал в курсах что EntityManager это легкий объект, можно создавать сколько угодно, а вот EntityManagerFactory лучше при старте один раз создать, он тяжелый.

Я баловался вот с таким:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
HashMap<String, String> result = new HashMap<String, String>();
...
result.put("eclipselink.jdbc.connections.initial", "1");
result.put("eclipselink.jdbc.connections.min", "1");
result.put("eclipselink.jdbc.connections.max", "1");
result.put("eclipselink.jdbc.read-connections.min", "1");
result.put("eclipselink.jdbc.read-connections.max", "1");
result.put("eclipselink.jdbc.write-connections.min", "1");
result.put("eclipselink.jdbc.write-connections.max", "1");
result.put("eclipselink.jdbc.connection_pool.read.shared", "true");
result.put("eclipselink.jdbc.read-connections.shared", "true");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("application", result);		



badboychikВ итоге - если использовать JDBC это надо для каждой таблицы
1) создать класс
2) создать в нем как минимум методы getAll, findById,update,delete
3) и в них все запросы ручками собирать из полей
4) прописать вручную jgoodies-биндинг контролов к полям классов
так что ли?

видимо да.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817685
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikПлохо.. если при открытии каждой формы будет создаваться соединение, это будет постоянно задержка открытия формы.
ты пробовал? Не будет никакой задержки.
______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817695
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychik,

MS рекомендует открывать соединение на каждое окно-форму.
Но это не для Java-стереотипов и архитектуры.
ЗЫ.
Пиши, как тебе удобнее и ПОД проект.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817781
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123badboychikПлохо.. если при открытии каждой формы будет создаваться соединение, это будет постоянно задержка открытия формы.
ты пробовал? Не будет никакой задержки.

смотря с чем соединяться. С Firebird - да, задержки быть не должно, с Oracle - выглядит смешно, особенно на lookup-формах.

Petro123badboychik,
MS рекомендует открывать соединение на каждое окно-форму.
Но это не для Java-стереотипов и архитектуры.

ну да. И в persistent-layer хранить все объекты по нескольку раз (кто мешает открыть одну и ту же форму дважды)? Да и Refresh без auto-commit будет прикольно смотреться.
Но самое веселое, что в случае с Eclipse/TopLink JPA эта рекомендация становится единственно возможным способом общения с данными. Каждая форма - свой EntityManager. А еще лучше - каждый запрос. Я как это (и замечательную работу ScrollableCursor) увидел, так и забил на сей продукт.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817827
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123badboychikПлохо.. если при открытии каждой формы будет создаваться соединение, это будет постоянно задержка открытия формы.
ты пробовал? Не будет никакой задержки.
пробовал, есть задержка. Видно по консоли нетбинса как EclipseLink открывает соединение, ради 10 строк для заполнения комбобокса происходит задержка 0.5-1 секунда
AlexJmвидимо да.ппц
А ктонибудь использовал ORM "Ebean" ? пишут что легкий и удобный. Язык запросов на дотнетовский LINQ похож 1в1
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817857
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikпробовал, есть задержка. Видно по консоли нетбинса как EclipseLink открывает соединение, ради 10 строк для заполнения комбобокса происходит задержка 0.5-1 секунда
AlexJm
ты перепутал соединенние на форму-окно-view и на контрол?
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817864
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще склоняюсь к использованию nosql баз. Никаких запросов и ORM, вызвал SAVE() и все.

вот читаю http://www.garret.ru/eoodbms.html#compare
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817901
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikвообще склоняюсь к использованию nosql баз. Никаких запросов и ORM, вызвал SAVE() и все.
вот читаю http://www.garret.ru/eoodbms.html#compare
Тип хранилища данных - SQL или NoSQL - никак не влияет на то, будет ли присутствовать слой ОРМ или нет. Вообще никак. Например, в высокоуровневом клиенте Кассандры Hector есть свой простенький ORM :)
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817915
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так это другое дело - для огромной системы на Кассандре - простенький ОРМ.
А мне для простенькой базы из 10 таблиц надо тянуть огромный ОРМ
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817922
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychik ,
Ну так не тяните его, работайте через JDBC. Или через iBatis. Суть в том, что нельзя выбирать базу данных исходя из ... наличия или отсутствия каких-то соответствующих ORMов :) Это абсолютно перпендикулярные понятия.
Сам по себе JPA - это лишь набор интерфейсов. Хотите - берите тяжелое решение вроде Хибера, хотите - ищите что-нибудь попроще. Для той же Кассандры тоже есть реализация JPA, как ни странно.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817930
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще интересная штука - InterSystems Globals. Я работал c Cache , там вообще как сам захочешь так данные и хранишь - ни таблиц ни классов, один глобальный массив
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817934
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читал документацию ebean , там хвастаются что он лучше iBatis-а и других JPA-реализаций
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37817949
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikчитал документацию ebean , там хвастаются что он лучше iBatis-а и других JPA-реализаций
Я вот посмотрел и теперь озаботился - они там что, правда DynamicProxyList организовали и findList() реально только открывает курсор и делает начальную выборку? Врут поди...
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37818097
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikЕще интересная штука - InterSystems Globals. Я работал c Cache , там вообще как сам захочешь так данные и хранишь - ни таблиц ни классов, один глобальный массив
Не говори, зачем люди СУБД придумали. Есть же таблиный процессор - Excell - одна большая простыня.
.......
Хочешь ты или нет, но мы на сайте SQL_RU. Т.е. СУБД имеет огромное значение для _тутошних_ проектов.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37818647
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikпробовал, есть задержка
- на дворе 21-й век, используйте JDBC-пул
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37818889
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Хочешь ты или нет, но мы на сайте SQL_RU. Т.е. СУБД имеет огромное значение для _тутошних_ проектов.
Часто же ты этот веский аргумент приводишь. Хочешь ты или нет, но мы на форуме посвяещенном Java. Т.е. для СУБД часто не имеет огромного значения для _тутошних_ обсуждаемых тем.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37819067
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv,
ну да. Ты один на форуме остался, кто _не придаёт значение_ РСУБД. Или ты про Cache поговорить?
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37819200
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalovbadboychikпробовал, есть задержка
- на дворе 21-й век, используйте JDBC-пул
Как-то для десктопного приложения пул делать некошерно, наверное. Да и у автора проблемы больше с гуем и crud'ом, чем с соединениями.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37820452
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexJmКак-то для десктопного приложения пул делать некошерно, наверное.
- а на каждый запрос открывать соединение это "кошерно"?

badboychikAlexJmНет, EclipseLink будет сам создавать соединения, когда ему нужно.
Плохо.. если при открытии каждой формы будет создаваться соединение, это будет постоянно задержка открытия формы. Должен быть какой то пул...

badboychikPetro123ты пробовал? Не будет никакой задержки.
пробовал, есть задержка. Видно по консоли нетбинса как EclipseLink открывает соединение, ради 10 строк для заполнения комбобокса происходит задержка 0.5-1 секунда


P.S. современная спецификация JDBC определяет поддержку JDBC-пула на уровне JDBC-драйвера (в частности JayBird имеет встроенный пул, подробнее тут )

badboychikавтор.....?charSet=Cp1251так выдает ошибку при соединении, это способ для MySQL подходит

- да, для JayBird другие рекомендации: тынц
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37820765
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KachalovAlexJmКак-то для десктопного приложения пул делать некошерно, наверное.
- а на каждый запрос открывать соединение это "кошерно"?

Это вопрос скорее не ко мне, а к разработчикам чудо-ORM систем.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37820925
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дался вам этот Пул.
Писать можно как с пулом, так и без. Как с ОРМом, так и без
"Без пула 20000 в час"
На чем стоит писать современное высоконагруженное приложение? Выбор/Обсуждение технологий.
IDVsbruck (с)
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37820958
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123дался вам этот Пул.
Писать можно как с пулом, так и без. Как с ОРМом, так и без
"Без пула 20000 в час"
На чем стоит писать современное высоконагруженное приложение? Выбор/Обсуждение технологий.
IDVsbruck (с)
Ну так расскажи автору, как нужно писАть.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37820964
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexJm,
я ему написал:
- соединение на форму-окно, либо а-ля синглетон если десктоп
- если тормозит, то профлировать ЧТО тормозит, и КОКРЕТНО сколько.
У нас обычно обсуждение заключается в обосновании почему без пула плохо на 30 страниц.
Стереотипы.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821019
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поищу где пул настраивается у jaybird

мне самое главное чтобы CRUD автоматически генерился, в 21 веке как то недостойно программиста конкатенацией лепить запросы на голом JDBC. Для веб-фреймворков скаффолдинг уже стандартная фича, может в яве тоже есть, вот и спрашиваю в недоумении. Надо обязательно хибер прикручивать?

я хотел ebean попробовать, но пока времени нет
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821112
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikДля веб-фреймворков скаффолдинг уже стандартная фича, может в яве тоже есть
если грубо сказать, то нету такого Java.
И, потом, различай, веб и десктоп.
- между JDBC и Хибером достаточно большое пустое пространство
- фреймворки с CRUD в коробке (SmartGWT\...) заточены на веб, а не на десктоп.
______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821164
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для веба характерна генерация веб-форм для CRUD, а сами классы-сущности можно было бы такие же и для дескропа генерить...
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821192
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikдля веба характерна генерация веб-форм для CRUD, а сами классы-сущности можно было бы такие же и для дескропа генерить...
не согласен.
В Питоне, CRUD для админки. Здесь такого термина нету.
Приведи пример веб формы для CRUD.
- во первых, CRUD делает САМ контрол. Например, таблица.
- во вторых, простой CRUD никто не делает в смысле ГУИ. Формы более сложные с бизнес-логикой.
Вот, для простой админки - заполнить данные - Да.
Но это побочный продукт.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821230
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123badboychikдля веба характерна генерация веб-форм для CRUD, а сами классы-сущности можно было бы такие же и для дескропа генерить...
не согласен.
В Питоне, CRUD для админки. Здесь такого термина нету.
ты как обычно путаешься в понятиях. В питоне нет CRUD для админки. Он в django есть и, возможно, в другим фреймворках.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821240
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikдля веба характерна генерация веб-форм для CRUD, а сами классы-сущности можно было бы такие же и для дескропа генерить...
Были такие проекты - подаешь им на вход javabean, а они тебе по нему форму делают. Я сам таким развлекался лет пять назад. Что-то находил тогда уже разработанное. Но видать в силу специфики Java на web такие проекты сейчас мало кому интересны.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821278
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv,
конечно в джанге.
Не надоело, за мною мальчиком бегать? :)
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821290
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Leonidv,
конечно в джанге.
Не надоело, за мною мальчиком бегать? :)
У тебя все "конечно" когда тебе ошибку укажут. Форум не только опытные разработчики читают и кто-нибудь менее опытный вполне может твой поток сознания принят за правду.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821291
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikдля веба характерна генерация веб-форм для CRUD, а сами классы-сущности можно было бы такие же и для дескропа генерить...
http://code.google.com/p/swing-formbuilder/wiki/GettingStarted - вот что-то полуживое.
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821304
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvPetro123Leonidv,
конечно в джанге.
Не надоело, за мною мальчиком бегать? :)
У тебя все "конечно" когда тебе ошибку укажут. Форум не только опытные разработчики читают и кто-нибудь менее опытный вполне может твой поток сознания принят за правду.
ага. Борец за правду.
Ты меня уточняешь ещё с детского сада :) Неравнодушен :)
______________________________________________
"Не понял" от Лёни 11906276 и чем всё закончилось 11910058
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37821433
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikмне самое главное чтобы CRUD автоматически генерился, в 21 веке как то недостойно программиста конкатенацией лепить запросы на голом JDBC. Для веб-фреймворков скаффолдинг уже стандартная фича, может в яве тоже есть, вот и спрашиваю в недоумении. Надо обязательно хибер прикручивать?


Не хочешь попробовать альтернативные варианты? :))
Код: 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.
public static void main(String[] args)
{
	QApplication.initialize(args);
	QApplication.setApplicationName("QTestApplication");
	QMainWindow window = new QMainWindow();
	try
	{
		Class.forName("oracle.jdbc.OracleDriver").newInstance();
		QJdbc.initialize();
	} catch (Exception ex)
	{
		System.err.println(ex);
		throw new RuntimeException(ex.getMessage());
	}
	final QSqlDatabase db = QSqlDatabase.addDatabase("QJDBC");
	db.setDatabaseName("jdbc:oracle:thin:@127.0.0.1:1521:TEST");
	db.setHostName("127.0.0.1:1521:TEST");
	db.setUserName("scott");
	db.setPassword("tiger");
	final QSqlTableModel model = new QSqlTableModel(window, db);
	model.setTable("DEPT");
	QTableView table = new QTableView(window);
	table.setModel(model);
	window.setCentralWidget(table);
	window.show();
	QApplication.exec();
}
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37822761
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это QT что ли?
...
Рейтинг: 0 / 0
как перевести программу на JPA с минимальными усилиями
    #37824935
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychikЭто QT что ли?
типа того. Не только же у тебя возникают теплые чувства к связке свинг-orm.
...
Рейтинг: 0 / 0
54 сообщений из 54, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / как перевести программу на JPA с минимальными усилиями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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