「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