Как получить данные из 10g в сервлете Java и JSP - PullRequest
1 голос
/ 06 июня 2009

Извлечение данных из базы данных 10g в Servlet & JSP

Ответы [ 5 ]

3 голосов
/ 06 июня 2009

Существует множество способов снятия шкуры с этой особой кошки.

Для одного это зависит от того, какой веб-фреймворк (если таковой имеется) вы используете. Лично я большой поклонник использования Spring независимо от того, какой веб-фреймворк вы выберете. Это просто делает так много вещей намного проще. Облегченные персистентные платформы включают Spring JDBC и, мой любимый, Ibatis .

На самом деле я написал учебник по использованию Spring и Ibatis . На самом деле он даже использует Oracle 10g Express Edition («Oracle XE»).

1 голос
/ 06 июня 2009
  • не получает данные в JSP, не использует архитектуру MVC или, по крайней мере, не получает данные в сервлете
  • использовать пружину
  • написать несколько классов DAO или, если вы предпочитаете ORM, использовать iBatis или Hibernate
  • уточните свой вопрос, если вам нужна более конкретная информация, поскольку она немного расплывчата относительно того, что именно вам нужно знать
1 голос
/ 06 июня 2009

Использование (порядок - мои предпочтения)

  • Hibernate - шаблон Spring Hibernate (с аннотациями, hbm.xml - это старая школа),
  • JPA с Toplink
  • Ibatis
  • СДО.

Не используйте прямой JDBC, если только у вас нет лишнего времени.

1 голос
/ 06 июня 2009

Я предполагаю, что вы имеете в виду базу данных Oracle 10g, если да, то ответ JDBC - запустите здесь (общее) и здесь (драйверы Oracle JDBC).

0 голосов
/ 16 июня 2009

В других ответах перечислены лучшие технологии, которые нужно обязательно использовать для достижения этой цели. Но, чтобы прямо ответить на вопрос, возможно, самый прямой ответ на примере простого старого JDBC:

private void getYourData() {
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rset = null;
    try {
        Context initContext = new InitialContext();
        Context envContext = (Context) initContext.lookup("java:/comp/env");
        DataSource ds = (DataSource) envContext.lookup("jdbc/yourDatabase");
        conn = ds.getConnection();
        pstmt = conn.prepareStatement(
                "select yourdata " +
                "  from yourtable " +
                "  where yourkey = ? "
                );

        pstmt.setInt(1, yourKeyValue);
        rset = pstmt.executeQuery();
        while (rset.next()) {
            String yourData = rset.getString("yourdata");
        }

        conn.commit();

    } catch (NamingException ne) {
        log.error(ne.getMessage());
    } catch (SQLException se) {
        log.error(se.getMessage());
    } finally {
        if (rset != null) {
            try {
                rset.close();
            } catch (Exception e) {
                log.error(e.getMessage());
            }
        }
        if (pstmt != null) {
            try {
                pstmt.close();
            } catch (Exception e) {
                log.error(e.getMessage());
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (Exception e) {
                log.error(e.getMessage());
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...