本文示範如何編寫一個簡單的 JavaBean(faq),分別在獨立 Java 應用程式與 JSP 頁面中調用,實現資料庫查詢與結果顯示。
import java.sql.*;
public class faq {
private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
private String url = "jdbc:odbc:faq";
private Connection conn = null;
private ResultSet rs = null;
public faq() {
try { Class.forName(driver); }
catch (ClassNotFoundException e) { System.err.println("faq(): " + e.getMessage()); }
}
public ResultSet executeQuery(String sql) {
try {
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException ex) { System.err.println("executeQuery: " + ex.getMessage()); }
return rs;
}
}
import java.sql.*;
class GetRs {
public GetRs() {
try {
faq bean = new faq();
ResultSet rs = bean.executeQuery("SELECT * FROM faq");
while (rs.next()) {
System.out.println(rs.getString("Answer"));
System.out.println(rs.getString("Subject"));
}
} catch (SQLException ex) { System.out.println("error: " + ex); }
}
}
public class testfaq {
public static void main(String[] args) { new GetRs(); }
}
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.sql.*" %>
<html><body>
<b>這是我的 FAQ!</b><br/>
<%
faq bean = new faq();
ResultSet rs = bean.executeQuery("SELECT * FROM faq");
while (rs.next()) {
String ans = rs.getString("Answer");
out.print("<li>" + rs.getString("Subject") + "</li>");
out.print("<pre>" + ans + "</pre>");
}
rs.close();
%>
</body></html>
sun.jdbc.odbc.JdbcOdbcDriver)已在 JDK 8 移除,實務上請改用對應資料庫的原生驅動(MySQL Connector/J、Oracle JDBC 等)。try-with-resources 或 finally 確保 Connection/Statement/ResultSet 正確關閉,避免連線洩漏。