JDBC - Join
Since there is only one table for name card example, Let's practice the example of joining EMP and DEPT.
Our goal is to execute the following SQL:
SELECT ENAME, JOB, D.DEPTNO, DNAME FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND D.LOC = 'DALLAS'
Refer to the JDBC programming procedure below and complete the main() of the JoinTable.java.
- Loading a JDBC Driver
- Getting a Connection
- Execute SQL
- [If the SQL statement is a select statement, use the returned ResultSet to process data.]
- Returning Resources
JoinTable.java
package net.java_school.jdbc.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class JoinTable { static final String URL = "jdbc:oracle:thin:@127.0.0.1:1521:XE"; static final String USER = "scott"; static final String PASS = "tiger"; public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; String sql = "SELECT ENAME,JOB,D.DEPTNO,DNAME " + "FROM EMP E, DEPT D " + "WHERE E.DEPTNO = D.DEPTNO " + "AND D.LOC = 'DALLAS'"; try { con = DriverManager.getConnection(URL, USER, PASS); pstmt = con.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()) { String ename = rs.getString("ename"); String job = rs.getString("job"); String deptno = rs.getString("deptno"); String dname = rs.getString("dname"); System.out.println(ename + " " + job + " " + deptno + " " + dname); } } catch (SQLException e) { e.printStackTrace(); System.out.println(sql); } finally { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }