【问题标题】:How to retrieve data from 10g in java servlet & JSP如何在 java servlet 和 JSP 中从 10g 中检索数据
【发布时间】:2010-10-31 21:17:47
【问题描述】:

在 Servlet 和 JSP 中从数据库 10g 中检索数据

【问题讨论】:

    标签: java oracle jsp servlets


    【解决方案1】:

    有无数种方法可以给这只猫剥皮。

    一方面,它取决于您使用的 Web 框架(如果有)。就个人而言,无论您选择哪种 Web 框架,我都非常喜欢使用 Spring。它只是让很多事情变得容易得多。轻量级持久性框架包括 Spring JDBC 和我最喜欢的 Ibatis

    其实我写了一个tutorial on using Spring and Ibatis。事实上,它甚至使用了Oracle 10g Express Edition(“Oracle XE”)。

    【讨论】:

      【解决方案2】:

      我假设您的意思是 Oracle 10g 数据库,如果是 JDBC 是答案,请启动 here(通用)和 here(Oracle JDBC 驱动程序)。

      【讨论】:

        【解决方案3】:

        使用(顺序是我的偏好)

        除非你有很多额外的时间,否则不要使用直接 JDBC。

        【讨论】:

          【解决方案4】:
          • 不要在 JSP 中检索数据,使用 MVC 架构或至少在 servlet 中检索数据
          • 使用 Spring
          • 编写一些 DAO 类,或者如果您更喜欢 ORM,请使用 iBatis 或 Hibernate
          • 如果您需要更具体的信息,请完善您的问题,因为它对于您需要了解的具体内容有点模糊

          【讨论】:

            【解决方案5】:

            其他答案列出了为实现这一目标而绝对应该追求的最佳技术。但要直接回答这个问题,也许最直接的答案是用一个普通的旧 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());
                        }
                    }
                }
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-08-18
              • 1970-01-01
              • 2012-01-14
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多