Last Modified : 2007.02.02
Å×À̺í Á¶ÀÎ(Join)
Á¶ÀÎ ¿¹Á¦¸¦ À§Çؼ °ø±ÞÀÚ Å×À̺íÀ» ¸¸µì´Ï´Ù.
´ÙÀ½¿¡ °ø±ÞÀÚ Å×À̺í°ú Ä¿ÇÇ Å×À̺íÀ» Á¶ÀÎÇÏ¿© °ø±ÞÀÚ¸íÀÌ "Acme, Inc" °¡ °ø±ÞÇÏ´Â Ä¿ÇǸ¦ fetch ÇØ¿À´Â SQL Select ¹®À» ½ÇÇàÇÕ´Ï´Ù.
¸ÕÀú °ø±ÞÀÚ Å×À̺íÀ» ¸¸µé±â ÆÄÀÏ MakeSuppliers.javaÀ» JDBC ÇÁ·Î±×·¡¹Ö ¼ø¼·Î ÄÚµùÇÕ´Ï´Ù.
- JDBC µå¶óÀ̹ö ·Îµù
- Connection ¸Î±â
- SQL ½ÇÇà
- [SQL¹®ÀÌ select¹®À̾ú´Ù¸é ResultSetÀ» ÀÌ¿ëÇÑ Ã³¸®]
- ÀÚ¿ø ¹Ýȯ
MakeSuppliers.java
import java.sql.*;
public class MakeSuppliers {
public static void main( String[] args ) {
Connection con;
Statement stmt;
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
try {
// 1. JDBC µå¶óÀ̹ö ·Îµù
Class.forName( "oracle.jdbc.driver.OracleDriver" );
} catch( java.lang.ClassNotFoundException e ) {
System.err.print( "ClassNotFoundException : " );
System.err.println( e.getMessage() );
}
try {
// 2. Connection ¸Î±â
con = DriverManager.getConnection( url, "scott", "tiger" );
// 3. SQL ½ÇÇà
stmt = con.createStatement();
String createSUPPLIERS = "CREATE TABLE suppliers " +
"(sup_id INTEGER, sup_name VARCHAR(40), " +
"street VARCHAR(40), city VARCHAR(20), " +
"state CHAR(2), zip CHAR(5), " +
"primary key ( sup_id ) )";
stmt.executeUpdate( createSUPPLIERS );
stmt.executeUpdate( "INSERT INTO suppliers VALUES (101, " +
"'Acme, Inc.', '99 Market Street', 'Groundsville', " +
"'CA', '95199')");
stmt.executeUpdate( "INSERT INTO suppliers VALUES (49," +
"'Superior Coffee', '1 Party Place', 'Mendocino', 'CA', " +
"'95460')");
stmt.executeUpdate( "INSERT INTO suppliers VALUES (150, " +
"'The High Ground', '100 Coffee Lane', 'Meadows', 'CA', " +
"'93966')");
// 4. ResultSet ÀÌ¿ë °á°ú°ª ó¸®
ResultSet rs = stmt.executeQuery( "SELECT * FROM suppliers" );
while( rs.next() ) {
int a = rs.getInt("sup_id");
String b = rs.getString("sup_name");
String c = rs.getString("street");
String d = rs.getString("city");
String e = rs.getString("state");
String f = rs.getString("zip");
System.out.println( a + " " + b + " " + c + " " + d + " " + e + " " + f );
}
// 5. ÀÚ¿ø¹Ýȯ
rs.close();
stmt.close();
con.close();
} catch( SQLException ex ) {
System.out.println( "SQLException : "+ex.getMessage() );
}
}
}
JoinTable.java
import java.sql.*;
public class JoinTable {
public static void main( String[] args ) {
Connection con;
Statement stmt;
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
try {
// 1. JDBC µå¶óÀ̹ö ·Îµù
Class.forName( "oracle.jdbc.driver.OracleDriver" );
} catch( java.lang.ClassNotFoundException e ) {
System.err.print( "ClassNotFoundException :" );
System.err.println( e.getMessage() );
}
try {
// 2. Connection ¸Î±â
con = DriverManager.getConnection( url, "scott", "tiger" );
// 3. SQL ½ÇÇà
stmt = con.createStatement();
String query = "SELECT coffees.cof_name " +
"FROM coffees, suppliers " +
"WHERE suppliers.sup_name LIKE 'Acme, Inc.' " +
"AND suppliers.sup_id = coffees.sup_id";
// 4. ResultSet ÀÌ¿ë °á°ú°ª ó¸®
ResultSet rs = stmt.executeQuery( query );
System.out.println( "Coffees bought from Acme, Inc.: " );
while ( rs.next() ) {
String coffeeName = rs.getString( "cof_name" );
System.out.println(" " + coffeeName);
}
// 5. ÀÚ¿ø¹Ýȯ
rs.close();
stmt.close();
con.close();
} catch( SQLException ex ) {
System.out.println( "SQLException :" + ex.getMessage() );
}
}
}
MakeSuppliers.java ¿Í JoinTable.java ¸¦ ½ÇÇàÇÏ¸é °á°ú´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
D:\>javac MakeSuppliers.java D:\>java MakeSuppliers 101 Acme, Inc. 99 Market Street Groundsville CA 95199 49 Superior Coffee 1 Party Place Mendocino CA 95460 150 The High Ground 100 Coffee Lane Meadows CA 93966 D:\>javac JoinTable.java D:\>java JoinTable Coffees bought from Acme, Inc.: Colombian_Decaf Colombian D:\>
- ´ÙÀ½ °Á : Æ®·£Àè¼Ç
- ÀÌÀü °ÁÂ : PreparedStatement
