このデータベース接続をサーブレットに取り込む方法を見つけようと一生懸命努力しましたが、失敗したため、ここに投稿しました。
基本的に、私はこのサイトを見つけたこのコードを使用しています-BalusCによって教えられているものです。
public class Config implements ServletContextListener {
private static final String ATTRIBUTE_NAME = "config";
private DataSource dataSource;
@Override
public void contextInitialized(ServletContextEvent event) {
ServletContext servletContext = event.getServletContext();
String databaseName = servletContext.getInitParameter("pract1");
try {
dataSource = (DataSource) new InitialContext().lookup("java:/comp/env/jdbc/TestDB");
} catch (NamingException e) {
throw new RuntimeException("Config failed: datasource not found", e);
}
}
@Override
public void contextDestroyed(ServletContextEvent event) {
System.out.println("contextDestroyed....");
}
public DataSource getDataSource() {
return dataSource;
}
public static Config getInstance(ServletContext servletContext) {
return (Config) servletContext.getAttribute(ATTRIBUTE_NAME);
}
}
彼は、このクラスがあり、すべてのサーブレットに対して接続が 1 回開始されると説明したので、それを実行することをお勧めします。
さて、私の問題は、Config、context.xmlファイルなどで設定されたデータベース接続をサーブレットで動作させる方法がわからないことです。
これが私が試みたものですが、うまくいきません:
Connection con = null;
Config a = new Config();
con = (Connection) a.getDataSource();
DBConnect dbConnect = new DBConnect();
con = dbConnect.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM members");
この接続を doPost サーブレットに組み込む方法を教えていただければ幸いです。