目次へ

解答例 - 実習課題1 - 6.DataSourceからConnectionを取得する

(実習課題1)

サンプルのサーブレットを実行させなさい。また「product」テーブルにデータを追加する機能を、Webアプリケーションに追加しなさい。

解答例

/**
 * DataSourceInsertServlet.java
 * TECHSCORE JDBC6章 実習課題1
 * 
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */

package com.techscore.jdbc.chapter6.exercise1;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.io.PrintWriter;
import java.io.IOException;

public class DataSourceInsertServlet extends HttpServlet {
    private DataSource dataSource = null;

    public void init() throws ServletException {
        try {
            Context context = new InitialContext();
            dataSource = (DataSource) context.lookup("java:comp/env/jdbc/datasource");
        } catch (NamingException e) {
            throw new ServletException(e);
        }
    }

    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html; charset=SJIS");
        PrintWriter writer = response.getWriter();
        writer.println("<html><body>");
        Connection conn = null;
        try {
            conn = dataSource.getConnection();
            PreparedStatement statement = conn.prepareStatement("insert into product values(101,'Viz','compact car',100)");
            int result = statement.executeUpdate();
            writer.println(result + "行データを追加");
        } catch (SQLException e) {
            e.printStackTrace(writer);
        } finally {
            try {
                if (conn != null)
                    conn.close();
            } catch (SQLException e) {}
        }
        writer.println("</body></html>");
    }
}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp