読者です 読者をやめる 読者になる 読者になる

「Java」JDBC でデータベースに接続する

JDBC でデータベースに接続するコード ( 自分のコピペ用って感じです )。
「1. スタンドアロンのアプリケーション」と「2. Web アプリケーション」のそれぞれメモしておきます。

1. スタンドアロンのアプリケーションから接続
■ JDBCTest.java

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

public class JDBCTest {
	public static void main(String[] args) throws Exception {
		Properties prop = new Properties();
		prop.load(new FileInputStream("jdbc.properties"));
		String className = prop.getProperty("ClassName");
		String url = prop.getProperty("url");
		String user = prop.getProperty("User");
		String password = prop.getProperty("Password");

		Class.forName(className);
		Connection con = DriverManager.getConnection(url, user, password);
		Statement st = con.createStatement();

		ResultSet rs = st.executeQuery("select * from test");

		while (rs.next()) {
			System.out.println(rs.getInt(1) + ":" + rs.getString(2));
		}
	}
}

jdbc.properties

ClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@***.***.***.***:1521:orcl
User=test
Password=test


2. Web アプリケーションから接続
■ JDBCSample.java

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class JDBCSample extends HttpServlet {

	private static final long serialVersionUID = 1L;
	private DataSource ds = null;

	public JDBCSample() {
		super();
	}

	public void init() throws ServletException {
		try {
			InitialContext ic = new InitialContext();
			ds = (DataSource) ic.lookup("java:comp/env/jdbc/oracle");
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<body>");

		Connection con = null;
		Statement st = null;
		ResultSet rs = null;
		try {
			con = ds.getConnection();
			st = con.createStatement();
			rs = st.executeQuery("select * from test");
			while (rs.next()) {
				out.println(rs.getString("id") + ":" + rs.getString("name"));
				out.println("<br/>");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				rs.close();
				st.close();
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		out.println("</body>");
		out.println("</html>");
	}
}

■ context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Resource name="jdbc/oracle"
            auth="Container"
            type="javax.sql.DataSource"
            username="test"
            password="test"
            driverClassName="oracle.jdbc.driver.OracleDriver"
            url="jdbc:oracle:thin:@***.***.***.***:1521:orcl" />
</Context>


例外処理とか適当ですが、ひとまず上記で動作するはずです。

ちなみに、テーブルは以下の感じです。
■ test

---------
id | name
---------
1  | hoge
2  | uga


以上です。

[ 環境情報 ]
Windows 7 SP1
Apache Tomcat 6.0
Java SE 7 Update 45

CentOS 5.5
Oracle Database 11.2.0.1.0

広告を非表示にする