簡體   English   中英

如何在Java Servlet和JSP中從10g檢索數據

[英]How to retrieve data from 10g in java servlet & JSP

在Servlet和JSP中從數據庫10g檢索數據

有很多方法可以給這只貓剝皮。

一個取決於您使用的Web框架(如果有)。 就個人而言,無論您選擇哪種Web框架,我都是使用Spring的忠實粉絲。 它使很多事情變得容易得多。 輕量級的持久性框架包括Spring JDBC和我最喜歡的Ibatis

實際上,我編寫了有關使用Spring和Ibatis教程 實際上,它甚至使用Oracle 10g Express Edition (“ Oracle XE”)。

我假設你的意思是Oracle 10g數據庫,如果有JDBC為答案,就在這里 (普通)和這里 (Oracle JDBC驅動程序)。

使用(訂購是我的偏愛)

除非您只有一堆額外的時間,否則請不要使用直接JDBC。

  • 不要在JSP中檢索數據,使用MVC架構或至少檢索servlet中的數據
  • 使用Spring
  • 編寫一些DAO類,或者如果您更喜歡ORM,請使用iBatis或Hibernate
  • 如果您需要更具體的信息,請完善您的問題,因為對於您確切需要了解的內容而言,這有點含糊

其他答案也列出了為實現這一目標而應該追求的最佳技術。 但是要直接回答這個問題,也許最直接的答案是一個簡單的舊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());
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM