Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с TomCat, Hibernate, JavaDB 
:(
    Опции темы
Swatch
Дата 16.1.2008, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: 1
Всего: 1



Добрый день.

Помогите, пожалуйста. Надо сделать следующее клиент-серверное приложение: сервер - Tomcat5.5.9, нужна БД  JAvaDB, работа с которой должна вестись через хибернейт. клиент - отображает данные из БД и при изменении их, заносит обратно.

знаю, как создать БД с помощью хибернейт, интерфейс клиента нарисовала... но как положить базу на сервер, как настроить коннект клиента к серверу, как передавать данные из БД клиенту просто не представляю!!!!  smile 

Подскажите, умные люди, где и что можно почитать, пожалуйста!!!

Работаю с клиент-серверными приложениями впервые, так что моя просьба может показаться глупой, но я просто не представляю, с чего начать!!!  smile 
PM MAIL   Вверх
v2v
Дата 16.1.2008, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



клиент веб броузер? тогда jsp + servlet.
если нет (клиент ты пишешь сама как консольное или гуи приложение), то существует два варианта:
1. 
через urlconnection делаешь запрос к сервлету, который живёт на сервере 
сервлет лезет в базу данных , выбирает то, что его "спросили" 
формирует из этого например хмл структуру и передаёт её клиенту
клиент изменяет данные, и опять обращается к сервлету, но теперь в качестве параметра передаёт новую хмл структуру
сервлет проверяет её на правильность, и если всё рулит, то пихает её в базу.
2. веб сервисы.

Это сообщение отредактировал(а) v2v - 17.1.2008, 00:01


--------------------
PM   Вверх
powerOn
Дата 16.1.2008, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Вот неплохая книга по Hibernate: Hibernate in Action. язык, естественно - английский. Для начала должно хватить.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Swatch
Дата 17.1.2008, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: 1
Всего: 1



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

1. клиент обратился к сервлету через urlconnection и попросил данные из базы??
2. сервлет полез в БД и понял, какие данные брать?
3. сервлет полученные данные преобразовал в хмл структуру и передал клиенту и чтобы клиент корректно отобразил данные...
4. клиент при изменении данных формировал хмл структуру???

Пожалуйста, если есть какие-то примеры, поделитесь... пишу в netbeans 6.0, глянула примеры с сервлетами там, если честно - ничего не поняла... что, зачем и где лежит??? куда положить папку со своей БД? 

Вообще, раньше, когда работала с БД через хибернейт, то писала примерно следующий классик для каждой таблицы:
Код

public class author implements IEntity {
    private Long id;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    public void copyTo(Object dest) {
        author obj = (author) dest;
        obj.setId(this.getId());
        obj.setName(this.getName());
    }

    public String toString() {
        return getName();
    }



И такой классик, чтоб можно было со списками работать:
Код

public class authors_list implements IList {

    private List _list;

    /**
     * Creates a new instance of countries_list
     */
    public authors_list() {
    }

    public Criteria createCriteria(Session session) {
        Criteria c = session.createCriteria(author.class);
        return c;
    }

    public void setList(List result) {
        _list = result;
    }

    public List getList() {
        return _list;
    }

    public void copyTo(Object dest) {
    }

}


Сейчас такие же классики получится использовать??? и если да, то как???
PM MAIL   Вверх
v2v
Дата 17.1.2008, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



Запрос типо:
Цитата

localhost:8080/ServletOnServer?WhatData=DataFromTable2&ShowAll=No&SelectOrUpdate=Update

На клиенте будет выглядеть вроде:
Код

    try {
        // Construct data
        String data = URLEncoder.encode("WhatData", "UTF-8") + "=" + URLEncoder.encode("Data1", "UTF-8");
        data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
         // and so on
        // Send data
        URL url = new URL("http://hostname:80/ServletOnServer");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
    
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = rd.readLine()) != null) {
            // Process line...
        }
        wr.close();
        rd.close();
    } catch (Exception e) {
    }


теперь сервлет:
Код

    //по сути нас интересует только эта функция
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        String d=req.getAttribute("WhatData");
        String ShAll=req.getAttribute("ShowAll");
        String SoU=req.getAttribute("SelectOrUpdate");       
        List dataBean=null;
        if (d!=null && SoU!=null){
          if (SoU.equals("Select")){
            if (d.equals("dataFromTable1")){ // берём из табл 1
                dataBean = getData(1);
            }
            if (d.equals("DataFromTable2")){ // берём из табл 2
                   dataBean=(getData(2);
            }   else
              if (SoU.equals("Update")){
            if (d.equals("dataFromTable1")){ // берём из табл 1
                dataBean = setData(1,dataBean);
            }
            if (d.equals("DataFromTable2")){ // берём из табл 2
                   dataBean=(getData(2,dataBean);
            }

        }
        }
    }

вот как то так оно может выглядить smile

Добавлено через 3 минуты и 39 секунд
следующей прослойкой после сервлета до базы данных и будет хибернэйт..... в него ты будешь передаввать чёткие указания что взять или положить.

а вобще если у тебя есть (IT) начальство, спроси как будет лучше. smile

Это сообщение отредактировал(а) v2v - 17.1.2008, 09:20


--------------------
PM   Вверх
Swatch
Дата 17.1.2008, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: 1
Всего: 1



Спасибо огромное... стало гораздо понятнее... осталось только сообразить, как преобразовывать данные в хмл структуру.... smile
PM MAIL   Вверх
v2v
Дата 17.1.2008, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



Код

String xml dataToXml(List data){
xml="<data>";
for (int i=0; i<data.size(); i++){
xml+="<title>"+data.get(i).getTitle()+"</title>";
xml+="<age>"+data.get(i).getAge()+"</age>";
}
xml+="</data>";
}

это если по простому.

Добавлено через 1 минуту и 44 секунды
хотя есть какие то специализированные ммеханизмы.


--------------------
PM   Вверх
batigoal
Дата 17.1.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Нет-нет, собирать XML построчно - это не вариант. Полно библиотек и даже технологий для этого (JAXB, например).


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.