JDBC¸¦ ±¸ÇöÇÏ´Â ¿¹Á¦¸¦ º¸±â Àü¿¡ ¸î °¡Áö »çÀü¿¡ Áغñ µÇ¾î¾ß ÇÒ »çÇ×µéÀ» ¸ÕÀú Á¡°ËÇØ º¸ÀÚ¸é,
n µå¶óÀ̹ö°¡ ·ÎµùµÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù.
n µ¥ÀÌÅͺ£À̽ºÀÇ ID¿Í Password¸¦ ¾Ë¾Æ µÎ¼Å¾ß ÇÕ´Ï´Ù.
n ODBC»ç¿ëÀÚ¶ó¸é ODBC DSNÀ» ±â¾ïÇϰí ÀÖ¾î¾ß ÇÕ´Ï´Ù.
¿©±â¼ ¼¼ ¹øÂ° ODBC¶õ °ÍÀÌ Ã³À½ º¸´Â ºÐÀº Á» »ý¼ÒÇÒ °ÍÀÔ´Ï´Ù. ODBC´Â Open Database ConnectivityÀÇ ¾àÀÚ·Î, Oracle, MS-SQLµî°ú °°ÀÌ ¼·Î ´Ù¸¥ µ¥ÀÌÅͺ£À̽º¸¦ ÅëÇÏ¿© ±¸ÃàµÈ µ¥ÀÌÅ͸¦ Microsoft Windowsȯ°æ¿¡¼ ¼·Î °øÀ¯ÇÒ ¼ö ÀÖµµ·Ï Microsoft»ç¿¡ ÀÇÇØ Á¦¾ÈµÈ µ¥ÀÌÅͺ£À̽º µ¥ÀÌÅÍÀÇ °øÀ¯¸¦ À§ÇÑ ±Ô°ÝÀÔ´Ï´Ù. ¿ì¸®´Â ÀÌ ODBC¸¦ ÀÌ¿ëÇØ µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇÒ °ÍÀÔ´Ï´Ù.
¾ÕÀ¸·Î ¿¹Á¦ÀÇ Å×½ºÆ®¸¦ À§ÇØ ¿©·¯ºÐÀº µ¥ÀÌÅͺ£À̽º ¼³Á¤À» ÇØ¾ß ÇÕ´Ï´Ù. ¿©±â¼´Â Àü¿¡ ¸»¾¸ µå¸° ´ë·Î MS-SQLÀ» Windows2000¿¡¼ »ç¿ëÇÕ´Ï´Ù. ¸ÕÀú ¿¹Á¦·Î »ç¿ëÇÒ database¸¦ »õ·Î ¸¸µé°í À̸§À» ¡°testDB¡±·Î ÁÝ´Ï´Ù. ±×·± ÈÄ testDB µ¥ÀÌÅͺ£À̽ºÀÇ Login ID¸¦ ¡°id¡±·Î »õ·Î Ãß°¡Çϰí, Password¸¦ ¡°password¡±·Î ¼³Á¤ÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù.
±×¸®°í ODBC¸¦ ÀÌ¿ëÇϱâ À§Çؼ´Â DSN(Data Source Name)À» ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ±×·³ ODBC(µ¥ÀÌÅÍ ¿øº»)¸¦ ÀÌ¿ëÇØ¼ DSNÀ» ¼³Á¤ÇÏ´Â °ÍÀ» ¾Ë¾Æº¸°Ú½À´Ï´Ù. óÀ½ ÇϽô ºÐÀº ±×³É Â÷·Ê´ë·Î µû¶ó Çϼ¼¿ä.
n À©µµ¿ìÀÇ ¡°½ÃÀÛ¡±À» Ŭ¸¯Çϰí, ¡°ÇÁ·Î±×·¥¡±ÀÇ ¡°°ü¸®µµ±¸¡±¿¡ ¡°µ¥ÀÌÅÍ ¿øº»(ODBC)¡±À» Ŭ¸¯ÇÑ ÈÄ ODBCÀÇ ¡°System DSN¡±À» Ŭ¸¯ÇÏ¸é ¾Æ·¡ÀÇ È¸éÀÌ ¶å´Ï´Ù.
±×¸² 19‑1 System DSN¿¡¼ Ãß°¡Çϱâ
n À§ÀÇ È¸é¿¡¼ ¡°Add¡± ¹öưÀ» Ŭ¸¯ÇÑ ÈÄ, ¾Æ·¡È¸é¿¡¼ ¡°SQL Server¡± µå¶óÀ̹ö¸¦ ¼±ÅÃÇÏ°í ¡°¸¶Ä§¡± ¹öưÀ» Ŭ¸¯Çؼ µå¶óÀ̹ö ¼±ÅÃÀ» ¸¶Ä¨´Ï´Ù..
±×¸² 19‑2 SQL Server µå¶óÀ̹ö ¼±ÅÃ
n NameÀº DriverManager.getConnection("jdbc:odbc:dbdsn","id","password")ÀÇ ÆÄ¶ó¹ÌÅÍ·Î µé¾î°¡´Â DSN À̸§Àε¥ ¿¹Á¦¿¡¼´Â ¡°dbdsn¡±À¸·Î Ç߱⠶§¹®¿¡ ¿©±â¼ ¼³Á¤µµ ¡°dbdsn¡±·Î ÇϰڽÀ´Ï´Ù. Server´Â ¡°(local)¡±·Î ¿¬°áÇÕ´Ï´Ù.
±×¸² 19‑3 DSN À̸§ ¼³Á¤
n ´ÙÀ½Àº ÀÎÁõ ºÎºÐÀε¥ SQL Server ÀÎÁõÀ» ¼±ÅÃÇϸé, ¹ØÀÇ ºÎºÐÀÇ ID¿Í PasswordºÎºÐÀÌ È°¼ºÈ°¡ µË´Ï´Ù. ¹ØÀÇ ¿¹Á¦¿Í °°ÀÌ ¡°id¡±¿Í ¡°password¡±·Î µ¿ÀÏÇÏ°Ô ÀÔ·ÂÇÕ´Ï´Ù.
±×¸² 19‑4 SQL Server ÀÎÁõ µî·Ï
n default µ¥ÀÌÅͺ£À̽º¸¦ testDB·Î ¹Ù²ß´Ï´Ù.
±×¸² 19‑5 default µ¥ÀÌÅͺ£À̽º ¼±ÅÃ
n ¸¶Ä§À» Ŭ¸¯ÇØ ODBCÀÇ DSN ¼³Á¤À» ³¡³½ ÈÄ ¡°Test Data Source¡¦¡±¸¦ Ŭ¸¯Çؼ ¿¬°á È®ÀÎÀ» Çϰí, OK¹öưÀ» Ŭ¸¯Çؼ ÃÖÁ¾ ¸¶¹«¸®¸¦ ÇÕ´Ï´Ù.
±×¸² 19‑6 ¼³Á¤ ¸¶Ä§
±×¸² 19‑7 DSN ¼³Á¤ °á°ú Ãâ·Â ȸé
¢Ñ ODBC |
Open DataBase Connectivity ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® À©µµ¿ì ȯ°æ¿¡¼ »óÈ£°£¿¡ µ¥ÀÌÅ͸¦ °øÀ¯ÇÒ ¼ö ÀÖµµ·Ï ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿¡ ÀÇÇÏ¿© Á¦¾ÈµÈ µ¥ÀÌÅͺ£À̽º µ¥ÀÌÅÍÀÇ °øÀ¯¸¦ À§ÇÑ ±Ô°Ý |
ÀÌÁ¦ º»°ÝÀûÀ¸·Î ¿¹Á¦¸¦ ÅëÇØ JDBC¸¦ ±¸ÇöÇØ º¸°Ú½À´Ï´Ù. JDBC¸¦ ±¸ÇöÇϱâ À§Çؼ´Â ¿ì¼± JDBC API¸¦ ¼³Ä¡ÇØ¾ß Çϴµ¥ À̰ÍÀº º°µµÀÇ ÀÛ¾÷Àº ÇÊ¿ä ¾ø°í JDK(Java Development Kit)¸¦ ¼³Ä¡Çϸé ÀÚµ¿À¸·Î ÀνºÅç µË´Ï´Ù.
´ÙÀ½ÀÇ ¿¹Á¦¸¦ ÅëÇØ java.sqlÆÐŰÁöÀÇ ÀÎÅÍÆäÀ̽ºµéÀ» ¾Ë¾Æº¸°í, ±× Ŭ·¡½º¿¡ ÇØ´çÇÏ´Â ¸Þ¼µåµé¿¡ °üÇØ Çѹø ¾Ë¾Æº¸±â·Î ÇϰڽÀ´Ï´Ù. ÀÌÈÄ¿¡ °¢°¢ÀÇ ÀÎÅÍÆäÀ̽º ¹× ÇØ´ç ¸Þ¼µåµé¿¡ ´ëÇØ ÀÚ¼¼È÷ º¼ °ÍÀ̹ǷΠ¿©±â¼´Â ¾î¶»°Ô JDBC°¡ ±¸ÇöµÇ°í »ç¿ëµÇ´ÂÁö ±× È帧À» ´« ¿©°Ü º¸½Ã±â ¹Ù¶ø´Ï´Ù. ÀÌ ¿¹Á¦¸¦ ¿©±â¼ ´Ù ÀÌÇØÇÏ·Á°í ¾Ö¾²Áö ¸¶¼¼¿ä. ±×·¯¸é µÚ¿¡°¡¼ ÇÒ °ÍÀÌ ¾ø¾îÁö´Ï±î¿ä~.
JdbcTest.java (°£´Ü µ¥ÀÌÅͺ£À̽º ¿¹Á¦) |
import java.sql.*; public class JdbcTest { public static void main(String[] args) throws ClassNotFoundException, SQLException { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:dbdsn", "id","password"); Statement stmt = conn.createStatement(); String sql = "Create table MyTest(name varchar(20), age int) "; stmt.executeUpdate(sql); System.out.println(" MyTest Å×ÀÌºí »ý¼º OK!" ); PreparedStatement pstmt = conn.prepareStatement("Insert into MyTest values (?,?)"); pstmt.setString(1, "Jabook"); pstmt.setInt(2, 2); pstmt.execute(); System.out.println(" MyTest Å×ÀÌºí¿¡ µ¥ÀÌÅÍ »ðÀÔ OK!"); stmt = conn.createStatement(); sql = "Select * from MyTest "; ResultSet rs = stmt.executeQuery(sql); System.out.println(" MyTest Å×ÀÌºí¿¡¼ ResultSet °¡Á®¿À±â OK!"); while(rs.next()){ System.out.println("name : " + "\t" + rs.getString(1)); System.out.println("age : " + "\t" + rs.getInt(2)); } rs.close(); pstmt.close(); stmt.close(); conn.close(); } } |
C:\JavaExample\19>javac JdbcTest.java C:\JavaExample\19>java JdbcTest MyTest Å×ÀÌºí »ý¼º OK! MyTest Å×ÀÌºí¿¡ µ¥ÀÌÅÍ »ðÀÔ OK! MyTest Å×ÀÌºí¿¡¼ ResultSet °¡Á®¿À±â OK! name : Jabook age : 2 |
¿¹Á¦ÀÇ °á°ú¸¦ º¸½Ã¸é ÀÌ ÇÁ·Î±×·¥ÀÌ µ¥ÀÌÅͺ£À̽º¿¡ Å×À̺íÀ» »ý¼ºÇϰí, µ¥ÀÌÅ͸¦ »ðÀÔÇÑ ´ÙÀ½ ´Ù½Ã ±× µ¥ÀÌÅ͸¦ Àоî¿À´Â °ÍÀ̶ó´Â °ÍÀ» ÁüÀÛÇÏ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ±×·³ ¿¹Á¦¸¦ ºÐ¼®ÇØ º¸°Ú½À´Ï´Ù.
¸ÕÀú JDBC¸¦ ÀÌ¿ëÇϱâ À§Çؼ java.sqlÆÐŰÁö¸¦ importÇϰí ÀÖ½À´Ï´Ù.
n import java.sql.*;
JdbcOdbcDriver¸¦ ·Îµù½Ãŵ´Ï´Ù. Class.forName¿¡ °ü·ÃµÈ »çÇ×µéÀº 11Àå Reflection¿¡¼ »ó¼¼È÷ ´Ù·ç¾úÀ¸´Ï ±Ã±ÝÇϽøé Âü°íÇϽñ⠹ٶø´Ï´Ù.
n Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
µ¥ÀÌÅͺ£À̽º¿¡ ODBC¸¦ ÅëÇØ Á¢¼ÓÇØ µå¶óÀ̹ö¸¦ °ü¸®ÇÏ´Â DriverManager·ÎºÎÅÍ Connection°´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
n Connection conn = DriverManager.getConnection("jdbc:odbc:dbdsn", "id", "password");
Connection°´Ã¼ connÀ¸·ÎºÎÅÍ Statement°´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
n Statement stmt = conn.createStatement();
»ý¼ºµÈ Statement°´Ã¼ stmt¸¦ ÅëÇØ, Query¹®À» Update½Ãŵ´Ï´Ù. Áï µ¥ÀÌÅͺ£À̽º·Î Àü¼ÛÇÏ´Â °ÍÀÔ´Ï´Ù.
n stmt.executeUpdate(sql);
PreparedStatementÀÇ °´Ã¼ pstmt¸¦ »ý¼ºÇÕ´Ï´Ù. ´«Ä¡ ºü¸¥ ºÐµéÀº Statement¿Í´Â ´Ù¸¥ ¹«¾ùÀ̱¸³ª ÇÏ°í ´À³¢½Ç °ÍÀÔ´Ï´Ù. ¿©±â¼´Â ¡°Statement¿Í ºñ½ÁÇÑ ³ðÀÌÁö¸¸, query¹®À» Àμö·Î ³Ñ°Ü¼, Statementº¸´Ù ¼öÇà¼Óµµ°¡ Á¶±Ý ºü¸£´Ù¡± Á¤µµ¸¸ ¾Ë¾ÆµÎ½Ã°í µÚ¿¡ °¡¼ ÀÚ¼¼È÷ º¸°Ú½À´Ï´Ù.
n PreparedStatement pstmt = conn.prepareStatement("Insert into MyTest values (?,?)");
PreparedStatementŬ·¡½ºÀÇ ¸Þ¼µåÀÎ setString()°ú setInt()¸¦ ½á¼, ¹°À½Ç¥¿¡ ÇØ´çÇÏ´Â µ¥ÀÌÅ͸¦ Àμö·Î ³Ñ±é´Ï´Ù. À̶§ ÁÖÀÇÇÒ Á¡Àº µ¥ÀÌÅͺ£À̽ºÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» °í·ÁÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.
n pstmt.setString(1, "Jabook");
n pstmt.setInt(2, 2);
n pstmt.execute();
´ÙÀ½Àº ResultSetÀÇ °´Ã¼¸¦ »ý¼ºÇÏ´Â ºÎºÐÀÔ´Ï´Ù.
n ResultSet rs = stmt.executeQuery(sql);
¸¶Áö¸·À¸·Î ConnectionÀÎÅÍÆäÀ̽ºÀÇ close()¸Þ¼µå¸¦ »ç¿ëÇØ¼ µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ °¡Á®¿Â ResultSet, PreparedStatement, Statement¿Í ConnectionÀÇ °´Ã¼µéÀ» ¼ø¼´ë·Î ´Ý¾Æ ÁÖ¾î¾ß ÇÕ´Ï´Ù.
n rs.close();
n pstmt.close();
n stmt.close();
n conn.close();
¿¹Á¦¸¦ ÅëÇØ JDBC¸¦ ¾î¶»°Ô ±¸ÇöÇϴ°¡¿¡ ´ëÇØ »ìÆì º¸¾Ò½À´Ï´Ù. ÀÌÁ¦ ´ÙÀ½ ÀýºÎÅÍ´Â ¿¹Á¦¿¡¼µµ »ìÆì º¸¾Ò´ø java.sql ÆÐŰÁöÀÇ Áß¿ä ÀÎÅÍÆäÀ̽ºµéÀ» Çϳª Çϳª¾¿ »ìÆìº¼ °ÍÀÔ´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ ÀúÀÚ:ÃÖ¿µ°ü |