アプリ版:「スタンプのみでお礼する」機能のリリースについて

eclipseのMySQLJDBCの外部接続に関して全く分からず手詰まりしているので、ご教授願いたいと思います。
プロジェクトの配下のweb.xmlにMySQLの接続情報を入力しました。一応ソースです。

web.xmlに
<context-param>
<param-name>jdbcDriver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
<description>JDBC Driver</description>
</context-param>

<context-param>
<param-name>jdbcUri</param-name>
<param-value>jdbc:mysql://localhost:3306/airticket?useUnicode=true&amp;
characterEncoding=sjis</param-value>
<description>MySQL URI</description>
</context-param>
<resource-ref>
<res-ref-name>jdbc/MySQL_JDBC</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
を書いて、
会員登録をするクラスに、
try{
try{
//ドライバクラスをロード
Class.forName("com.mysql.jdbc.Driver").newInstance();
}
catch(Exception ex)
{
}
//データベースへ接続
String url = "jdbc:mysql:///airticket?useUnicode=true&characterEncoding=SJIS";
Connection con = DriverManager.getConnection(url);

//ステートメントオブジェクトを生成
Statement stmt=con.createStatement();
String sql="insert into member(member_id,member_pass,family_name,first_name,birth_year,birth_month,birth_day,address,post_code,mail,"+"sex,home_tel,job) values('"+ member_id +"',"+ mempasslong +",'"+ family_name +"','"+ first_name +"',"+ birth_year +","+ birth_month +","+ birth_day +",'"+ address +"',"+ post_code +",'"+ mail +"',"+sexint+","+ home_tel +",'"+ job +"');";
int result=stmt.executeUpdate(sql);

      stmt.executeBatch();

// データベースから切断
stmt.close();
con.close();
} catch (Exception e) {
message = "登録失敗しました。";
request.setAttribute("message", message);
return mapping.findForward("registererror");
}
message = "登録完了しました。";
request.setAttribute("message", message);
return mapping.findForward("success");
}
}
って書いてクラスからweb.xmlを参照してデータベース接続したいんですが、エラーが出ずに困っています。そもそもクラスからweb.xmlの情報を参照するやりかたはあるのですか?教えてください

A 回答 (2件)

>実は上記のサイトにアクセスしてやってみたんですが


あれ?記載してあるコードは全然違いますよね。
DataSourceを使おうとしているわけではなさそうですし。

>どのようにして使うんですか?
記載してあるコードで言えば、
>//データベースへ接続
>String url = "jdbc:mysql:///airticket?useUnicode=true&characterEncoding=SJIS";

String url = getServletContext().getInitParameter("jdbcUri");
にする感じでしょうか。
こうしておけば、DBの接続先が変わったときにweb.xmlを変更するだけで
プログラムを直す必要がなくなりますよね。

だた、何が分からないのかがよく分かっていないので、望む回答と全然違ったらすみません。
    • good
    • 0

web.xmlのcontext-paramの値を取得するにはServletContext.getInitParameterメソッドを使います。


具体的には
getServletContext().getInitParameter("jdbcDriver");
という感じです。サーブレットからしか使えません。

ただ、データベース接続はDataSourceを使ったほうがいいように思います。
http://www.techscore.com/tech/J2EE/JDBC/6.html
こちらなどを参考に。

この回答への補足

回答ありがとうございます。実は上記のサイトにアクセスしてやってみたんですが、全く分からずに質問させていただきました。そのメソッドはサーブレットでしか使えないのは理解しているんですが、どのようにして使うんですか?javaは初心者なので是非ご教授ねがいます

補足日時:2011/02/15 14:24
    • good
    • 0
この回答へのお礼

長くなるので新たに質問させていただきます。参考になりました

お礼日時:2011/02/16 11:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!