JNDIプログラム習作
目的
- JNDIを使ったデータベースプログラムを習作する。
- IDEとしてEclipseを使う。
- アプリケーションサーバとしてTomcatを使う。
- DBサーバとしてMySQLを使う。
MySQLサーバの登録
- Eclipseを起動する。
- メニューより[Window] -> [Show View] -> [Servers]を選ぶ。
- Serversビューを選ぶ。
- [Tomcat v7.0 Server...]が登録されている事を確認する。なければ、右クリックして[New] -> [Server]を選び、登録する。
JNDIプログラム
プロジェクトの作成
- Eclipseを起動する。
- ProjectExplorerを右クリックして[New] -> [Project...]を選ぶ。
- [Web] / [Dynamic Web Project]を選び、[Next]を押下する。
- 以下のように設定する。
- [Project name] mywebapp
- [Target runtime] Apache Tomcat v7.0
- [Finish]を押下する。
JNDIリソースの設定
- ProjectExplorerからmywebappプロジェクトを選ぶ。
- プロジェクト配下のWebContent/META-INFを右クリックして[New] -> [File]を選ぶ。
- [File name]をcontext.xmlと入力し、[Finish]を押下する。
- context.xmlを開き、以下のように編集する。
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/mydatabase"
auth="Container"
type="javax.sql.DataSource"
username="db_user"
password="db_passwd"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://my-db-server/mydb01?autoReconnect=true"
validationQuery="select 1"
maxActive="10"
maxIdle="4"/>
</Context>
サーブレットの作成
- プロジェクト配下のJava Resources/srcを右クリックして[New] -> [Servlet]を選ぶ。
- 以下のように設定する。
- [Java package] jp.sample.app
- [Class name] HelloWorld
- [Finish]を押下する。
- HelloWorld.javaを開き、doGet()を以下のように編集する。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("DEBUG: TEST");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>THIS IS A TEST.</body></html>");
try {
//Class.forName("com.mysql.jdbc.Driver").newInstance();
//Connection conn = DriverManager
// .getConnection("jdbc:mysql://my-db-server/mydb01?" + "user=db_user&password=db_passwd");
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydatabase");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM t1");
while (rs.next()) {
int id =- rs.getInt("id");
System.out.println("ID: " + id);
}
} catch (Exception e) {
System.out.println(e.toString());
}
}
動作確認
- HelloWorld.javaを右クリックして[Run As] -> [Run on Server]を選ぶ。
- ブラウザの表示、コンソールの表示を確認する。