JSPとサーブレットを使ってWebアプリケーションを開発しています(データベース:Oracle10、コンテナ:Glassfish)。
接続を作成するためのクラスを開発しました。
(Conn.java) :
public class Conn
{
private Connection con = null;
public Connection getCon()
{
String home = System.getProperty("user.home");
home = home+"\\dbFile.properties";
//Read properties of Connection String from that file and Create Connection
return con;
}
}
Conn.java
次に、接続を取得するために上記のクラスを使用している SELECT、INSERT、UPDATE、DELETE トランザクション用の 4 つの他のクラスがあります。
(Select.java)
public class Select
{
private Conn connection = new Conn();
private Connection con = null;
private PreparedStatement pstmt = null;
private ResultSet rs=null;
public String[][] selectData(String query)
{
String[][] data=null;
if(con==null)
{
con = connection.getCon();
}
//execute query put data in two dimensional array and then return it
return data;
}
}
INSERT、UPDATE、および DELETE は、上記と同様の方法Select.java
でコーディングされます。
したがって、すべてのサーブレットで、これらの 4 つの (SELECT、INSERT、UPDATE、DELETE) クラスを使用し、それらにクエリを渡して結果を取得しています。
サンプルサーブレット
public class SampleServ extends HttpServlet
{
Select select = new Select();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String data[][];
data = select.selectData(QUERY_GOES_HERE);
//AND OTHER CODE
}
}
それは完全に機能しますがDatabase String
、ユーザーがログインした後に変更する必要があります。User specific
そのため、プロパティ ファイル名をConn.java
クラスに渡したいと思います。そのため、プロパティ ファイル名を に保存していますcookie
。
私はこれを行う1つの方法を考えています:
- すべてのサーブレットで Cookie 値を取得する
selectData()
cookie 値をクラスのメソッドに渡し、Select.java
そのクラスから- クラスの
getConn()
メソッドにクッキーの値を渡すConn.java
Conn.java
この接続文字列ファイル名をクラスに渡すより良い方法があるかどうか知りたいですか?
前もって感謝します。