package ConnectionPool;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
import java.io.*;
import java.util.*;
public class getDbConnection {
Connection conn;
Statement stmt;
ResultSet rs = null;
String foo = "Not Connected";
int bar = -1;
public getDbConnection() {
try {
Context ctx = new InitialContext();
if (ctx == null) throw new Exception("Boom - No Context");
DataSource ds = (DataSource) ctx.lookup("java:comp/env/JDBC/TestDB");
if (ds != null) {
conn = ds.getConnection();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public Connection getCon() {
return conn;
}
public void d_close() throws SQLException {
if (rs != null) { try { rs.close(); } catch (SQLException e) {}; rs = null; }
if (stmt != null) { try { stmt.close(); } catch (SQLException e) {}; stmt = null; }
if (conn != null) { try { conn.close(); } catch (SQLException e) {}; conn = null; }
}
protected void finalize() throws Throwable {
try { d_close(); } catch (SQLException e) {}
}
}
從 JNDI java:comp/env/JDBC/TestDB 取得 DataSource,封裝連線取得與關閉邏輯。
mystrutsmydep:dep_id, dep_name (測試資料 1~4 筆)myuser:user_id, user_name, dep, tel (測試資料 2 筆)package mystruts;
import org.apache.struts.action.*;
import javax.servlet.http.*;
public class userActionForm extends ActionForm {
private String action = "add";
private String dep;
private String tel;
private String user_id;
private String user_name;
// Getter/Setter 略...
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
return null; // 本範例不做驗證
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
// 重置邏輯
}
}
表單屬性對應頁面欄位:action (區分新增/編輯)、dep、tel、user_id、user_name。
下一步將建立 DAO 類別實作資料庫操作。