【发布时间】:2010-10-31 21:17:47
【问题描述】:
在 Servlet 和 JSP 中从数据库 10g 中检索数据
【问题讨论】:
在 Servlet 和 JSP 中从数据库 10g 中检索数据
【问题讨论】:
有无数种方法可以给这只猫剥皮。
一方面,它取决于您使用的 Web 框架(如果有)。就个人而言,无论您选择哪种 Web 框架,我都非常喜欢使用 Spring。它只是让很多事情变得容易得多。轻量级持久性框架包括 Spring JDBC 和我最喜欢的 Ibatis。
其实我写了一个tutorial on using Spring and Ibatis。事实上,它甚至使用了Oracle 10g Express Edition(“Oracle XE”)。
【讨论】:
使用(顺序是我的偏好)
除非你有很多额外的时间,否则不要使用直接 JDBC。
【讨论】:
【讨论】:
其他答案列出了为实现这一目标而绝对应该追求的最佳技术。但要直接回答这个问题,也许最直接的答案是用一个普通的旧 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());
}
}
}
}
【讨论】: