ȨÆäÀÌÁöÁ¦ÀÛ±³½Ç
ȨÆäÀÌÁö Á¦ÀÛ±âÃÊ
±âº»Å±×
ÅÂ±×ÆÁ¸ðÀ½
ű×ÀÚ·á¹æ
Æ÷Åä¼¥°ÁÂ
À¥.°ü·Ã°ÁÂ
PHP°ÁÂ
PHPÆÁ
HTML.CSS
JAVASCRIPT
ASP
JSP
PHP½ÉÈ
C.C++
Ç÷¡½Ã.ActionScript
ÀÚÀ¯°Ô½ÃÆÇ
Áú¹®°Ô½ÃÆÇ
À¯¸Ó°Ô½ÃÆÇ
¿À¶ô½Ç
Tel. 042-353-2371
ÆòÀÏ ¿ÀÀü 9½Ã ~ ¿ÀÈÄ 7½Ã
±â¾÷ÀºÇà
010-8649-6758
¿¹±ÝÁÖ:Á¦ÁÖ»ç¶û(¼ÛÁø¾Æ)
JSP
Ȩ > ȨÆäÀÌÁöÁ¦ÀÛ±³½Ç > JSP
ÀÛ¼ºÀÚ
freeweb
ºñ¹Ð¹øÈ£
Ä«Å×°í¸®
JSP
JAVA
JSTL
JS
Tool
JDBC
Oracle
Ajax
Spring
JSF
Á¦¸ñ
<STRONG><FONT color=#a0522d>* °Á¸¦ ½ÃÀÛÇϱâÀü¿¡..... </FONT></STRONG> <P>JDBC¸¦ ÀÌ¿ëÇÏ¿© DB¸¦ ¿¢¼¼½ºÇؼ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â ¹æ¹ýÀÇ <B>±âÃÊ</B>¿¡ ´ëÇØ¼ °ÀÇÇÕ´Ï´Ù. <BR>µû¶ó¼ À̹ø °Á´ JDBC¸¦ óÀ½ »ç¿ëÇϰí ÇÏ´Â ºÐµé¿¡°Ô ÀûÇÕÇÑ °ÁÂÀÔ´Ï´Ù. <P><!-- Chapter End --><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* JDBC ÇÁ·Î±×·¡¹ÖÀÇ 5 ´Ü°è</STRONG></FONT> <P> <OL> <LI>DriverManager¿¡ ÇØ´ç DBMS Driver¸¦ µî·Ï <LI>ÇØ´ç Driver·Î ºÎÅÍ Connection °´Ã¼ ȹµæ <LI>Connection °´Ã¼·ÎºÎÅÍ Statement °´Ã¼ ȹµæ <LI>StatementÀÇ method¸¦ ÀÌ¿ëÇÏ¿© SQL½ÇÇà <LI>ResultSet À¸·Î ¹Þ¾Æ¼ ó¸®(executeUpdate ÀÇ °æ¿ì¿£ Á¦¿Ü) <LI>°´Ã¼ close() (ResultSet, Statement, Connection) </LI></OL>±×·³ °¢ ´Ü°è¿¡ ´ëÇØ¼ ÀÚ¼¼È÷ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. <P><!-- Chapter End --><BR><FONT color=#a0522d><STRONG>* 1. DriverManager¿¡ ÇØ´ç DBMS Driver¸¦ µî·Ï </STRONG></FONT> <P>Driver¸¦ DriverManager¿¡ µî·ÏÇÏ´Â ¹æ¹ýÀº 3°¡Áö°¡ ÀÖ½À´Ï´Ù. <BR>Class.forName() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý, Driver°´Ã¼¸¦ »ý¼ºÇÏ´Â ¹æ¹ý, registerDriver() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý ÀÌ·¸°Ô 3°¡ÁöÀÇ ¹æ¹ýÀÌ ÀÖÁö¸¸ °¡Àå ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ°í ½¬¿î ¹æ¹ýÀÎ Class.forName() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼¸¸ ¼³¸íÇϵµ·Ï ÇϰڽÀ´Ï´Ù. <P>ÇØ´ç JDBC µå¶óÀ̹ö¸¦ µî·ÏÇÏ·Á¸é ´ç¿¬È÷ JDBC µå¶óÀ̹ö°¡ ÇÊ¿äÇÕ´Ï´Ù. ÇØ´ç µ¥ÀÌÅͺ£À̽ºÀÇ µå¶óÀ̹ö ÆÄÀÏÀ» ¸ÕÀú Ŭ·¡½º ÆÐ½º¿¡ ÀâÀ¸½Ã±â ¹Ù¶ø´Ï´Ù. ¿À¶óŬÀÇ °æ¿ì´Â <A href="http://www.oracle.com/" target=_blank>www.oracle.com</A> ¿¡¼ ´Ù¿î·Îµå ¹ÞÀ»¼öµµ ÀÖ°í ¿À¶óŬ ¼³Ä¡½Ã °°ÀÌ ¼³Ä¡ µÇ¹Ç·Î ¿À¶óŬ µð·ºÅ丮¸¦ Àß »ìÆì º¸±â ¹Ù¶ø´Ï´Ù. <P>´ÙÀ½À¸·Î mySQLÀÇ °æ¿ì´Â <A href="http://sourceforge.net/project/showfiles.php?group_id=15923" target=_blank>http://sourceforge.net/project/showfiles.php?group_id=15923</A>À¸·Î °¡¼Å¼ ´Ù¿î¹ÞÀ¸½Ã±â ¹Ù¶ø´Ï´Ù. <P>ÀÌÁ¦ JDBC µå¶óÀ̹ö¸¦ DriverManager¿¡ µî·ÏÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æ º¸°Ú½À´Ï´Ù. <P><B>Class.forName("org.gjt.mm.mysql.Driver");</B> -> mySQL ÀÇ °æ¿ì <BR><B>Class.forName("oracle.jdbc.driver.OracleDriver");</B> -> Oracle thin µå¶óÀ̹öÀÇ °æ¿ì <P>Class ´Â java.lang ÆÐŰÁö¿¡ Àִ Ŭ·¡½º ÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀÌ ±Ã±ÝÇϽŠºÐÀº api¹®¼¸¦ Âü°í ÇϽñ¸¿ä... forName ¸Þ¼Òµå¿¡ parameter·Î ¾²ÀÎ StringÀº ´ç¿¬È÷ DBMSÀÇ Á¾·ù¿¡ µû¶ó Ʋ·ÁÁö°ÚÁö¿ä? ¾î°µç À§ÀÇ ¸Þ¼Ò¸¦ ½ÇÇà½ÃŰ°í³ª¸é ÀÚµ¿À¸·Î µå¶óÀ̹ö °´Ã¼°¡ »ý¼ºÀ̵ǰí, ÀÚ½ÅÀ» DriverManager¿¡ µî·ÏÇϴ ó¸®°¡ ÀÌ·ç¾îÁö°Ô µË´Ï´Ù. <P><!-- Chapter End --><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* 2. ÇØ´ç Driver·Î ºÎÅÍ Connection °´Ã¼ ȹµæ </STRONG></FONT> <P>ConnectionÀ̶ó´Â °ÍÀº DBMS¿¡ ¿¬°áµÈ sessionÀ» ÀÇ¹Ì ÇÕ´Ï´Ù. Connection °´Ã¼¸¦ ȹµæÇÏ´Â ¹æ¹ýÀº DriverManagerÀÇ getConnection() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¸é µÇ´Âµ¥ ±× Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù. <PRE><B>Connection con=DriverManager.getConnection(String jdbcURL,String id,String password);</B> </PRE>getConnection ¸Þ¼Òµå´Â ¸î°¡Áö·Î ¿À¹ö·ÎµùµÇ¾î ÀÖÀ¸´Ï ±Ã±ÝÇϽźÐÀº API¹®¼¸¦ Âü°í ÇϽʽÿä.. <P>´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î »ç¿ëÇÕ´Ï´Ù. <P><PRE><B> String url="jdbc:mysql://localhost/dbname"; // dbname¿¡´Â »ç¿ëÇÏ´Â database À̸§ Connection con=DriverManager(url,"root","1234"); // root °èÁ¤, ÆÐ½º¿öµå´Â 1234 </B></PRE> <P><!-- Chapter End --><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* 3. Connection °´Ã¼·Î ºÎÅÍ Statement °´Ã¼ ȹµæ </STRONG></FONT> <P>ÇϳªÀÇ ConnectionÀ¸·Î ºÎÅÍ ¿©·¯°³ÀÇ StatementÀÇ »ý¼ºÀÌ °¡´ÉÇÕ´Ï´Ù. ÀÌÈÄ¿¡ Statement·Î ºÎÅÍ SQLÀ» ½ÇÇàÇÏ°Ô µË´Ï´Ù. ¾Æ·¡ÀÇ ±×¸²À» º¸½Ã¸é ÀÌÇØ°¡ µÇ¸®¶ó »ý°¢µË´Ï´Ù. <P><!-- Image Start --> <TABLE cellSpacing=1 cellPadding=10 bgColor=#e7e7e7> <TBODY> <TR> <TD bgColor=#ffffff><IMG alt="" src="http://www.aboutjsp.com/lec/images/jdbc_tree.jpg" border=0></TD></TR></TBODY></TABLE><!-- Image end --><BR><PRE><B> Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbname","root","password"); Statement st1=con.createStatement(); ResultSet rs1=st1.executeQuery("select * form names"); Statement st2=con.createStatement(); ResultSet rs2=st2.executeQuery("select * form users"); Statement st3=con.createStatement(); ResultSet rs3=st3.executeQuery("select * form emails"); </B></PRE>µû¶ó¼ À§¿Í °°ÀÌ »ç¿ëÀÌ °¡´ÉÇÏÁÒ. Statement¿¡´Â 3°¡Áö Á¾·ù°¡ Àִµ¥ ±×Áß Ã¹¹øÂ°°¡ Áö±Ý »ç¿ëÇÑ Statement ÀÔ´Ï´Ù. µÎ¹øÂ°·Î PreparedStatement °¡ ÀÖ°í ¸¶Áö¸·À¸·Î CallableStatement°¡ ÀÖ´Ù. ±×Áß CallableStatement´Â ÀúÀå ÇÁ·Î½ÃÁ® (stored procedure)¸¦ È£ÃâÇϴµ¥ »ç¿ëµÇ´Â °ÍÀε¥, ¿©±â¿¡¼´Â ÃʱްÁÂÀÎ ¸¸Å ´Ù·çÁö ¾Ê½À´Ï´Ù. <BR>PreparedStatement´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÕ´Ï´Ù. <PRE><B> Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbname","root","password"); <U>Prepared</U>Statement ps=con.<U>prepare</U>Statement("update juso set si=? where zip=?); // ¹ØÁÙÄ£ ºÎºÐ ÁÖÀÇ ps.setString(1,"Seoul"); // ù¹øÀç ? ÀÌ 1¹øÀÌ µË´Ï´Ù. ps.setString(2,request.getParameter("zip")); // µÎ¹øÂ° " ? " // setString ¸»°íµµ, setDate, setArray, setCharacterStreamµî ¿©·¯°¡Áö°¡ ÀÖ½À´Ï´Ù. ps.executeUpdate(); </B></PRE>À§¿Í°°Àº Äõ¸®¹®(°ªÀÌ º¯ÇÏ´Â)À» Statement·Î ó¸®ÇÑ´Ù¸é PreparedStatement ¹®¿¡ ºñÇØ¼ String °´Ã¼¸¦ ´õ ¸¹ÀÌ »ý¼ºÇØ¾ß ÇØ¾ß Çϰí, PreparedStatement»ç¿ë½Ã¿¡´Â DB¿¡¼ÀÇ Ã³¸®½Ã¿¡µµ(ƯÈ÷ ¿À¶óŬ¿¡¼) Äõ¸®¹®ÀÌ Ä³½ÌµÇ¾î º¸´Ù ³ôÀº ÆÛÆ÷¸Õ½º¸¦ Á¦°øÇÏ°Ô µË´Ï´Ù. <P><!-- Chapter End --><BR><FONT color=#a0522d><STRONG>* 4. StatementÀÇ ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼ SQL¹®ÀÇ ½ÇÇà </STRONG></FONT> <P>Statement Ŭ·¡½º¿¡¼´Â Äõ¸®¹®ÀÇ ½ÇÇàÀ» À§Çؼ ¸î°¡Áö ¸Þ¼Òµå¸¦ Á¦°øÇϴµ¥, executeQuery()¿Í executeUpdate() µÎ°³ÀÇ ¸Þ¼Òµå¸¸ ¾Ë¸é ÃæºÐÈ÷ Ȱ¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. <PRE>ResultSet rs=stmt.executeQuery("select * from users"); </PRE>À§¿Í °°Àº ¹æ½ÄÀ¸·Î »ç¿ëµÇ¸ç executeQuery()´Â "select"¹®À» »ç¿ëÇÒ¶§¿¡¸¸ »ç¿ëµÇ´Â °ÍÀÌÁÒ. ½ÇÇà °á°ú´Â ResultSet¿¡ ÀúÀåµÇ¸ç ÀúÀåµÈ Á¤º¸ÀÇ Ã³¸® ¹æ¹ýÀº ¾Æ·¡ ¿¡¼ ´Ù·çµµ·Ï ÇϰڽÀ´Ï´Ù.<BR>¶Ç´Ù¸¥ ¸Þ¼ÒµåÀÎ executeUpdate()´Â select ¿Ü¿¡ update,delete,insert µîÀÇ Äõ¸®¹®À» »ç¿ëÇÒ¶§ ÀÌ¿ëµÇ¾î Áý´Ï´Ù. ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. <PRE>stmt.executeUpdate("insert into users(id,password) values('ab','bc')"); </PRE> <P><!-- Chapter End --><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* 5. ResultSetÀ¸·Î ¹Þ¾Æ ¼ ó¸®Çϱâ </STRONG></FONT> <P>À§¿¡¼ ¼³¸íÇß´Ù ½ÃÇÇ executeQuery()¸¦ ½ÇÇàÇϸé ResultSet ŸÀÔÀÇ °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù. ÀÌ °´Ã¼´Â ½ÇÇàµÈ Äõ¸®¹®ÀÇ °á°ú °°À» °¡Áö°í Àִµ¥ ResultSetÀÇ ¸î°¡Áö ¸Þ¼Òµå¸¦ ÀÌ¿ëÇϸé ResultSet¿¡ ÀúÀåµÈ Á¤º¸¸¦ »ç¿ëÇÒ¼ö ÀÖ½À´Ï´Ù. selectÄõ¸®¸¦ ½ÇÇà ÇßÀ¸¹Ç·Î ÇϳªÀÌ»óÀÇ row¸¦ Áö´Ï°í Àִµ¥.. ÇöÀç row¿¡¼ ´ÙÀ½ row·Î ³Ñ±â·Á¸é rs.next() ¿Í °°ÀÌ »ç¿ëÇÏ¸é µË´Ï´Ù.<FONT color=red>(ù¹øÂ° rowµµ next()¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.)</FONT> <P>°¢ row°¡ ¼±ÅÃÀÌ µÇ¾úÀ¸¸é °¢Ä÷³ÀÇ µ¥ÀÌÅ͸¦ ºÒ·¯ ¿À¸é µÇ´Âµ¥, µÎ°¡ÁöÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. <BR>ù¹øÂ°¹æ¹ýÀº <P>String name=rs.getString(1); (name¿¡ ÇØ´çÇÏ´Â Ç׸ñÀÇ Ã¹¹øÀç Ä÷³¿¡ ÀÖÀ»°æ¿ì) <P>À̿Ͱ°ÀÌ µ¥ÀÌÅÍÀÇ Ä÷³ À§Ä¡·Î °Ë»öÇÕ´Ï´Ù. getStringÀÇ String ¿¡´Â Int,Double, µî°ú °°Àº ÀÚ·áÇüÀ» »ç¿ëÇϸé ÇØ´ç ÀÚ·áÇü¿¡ ¸Â´Â µ¥ÀÌÅ͸¦ ¸®ÅÏÇÏ¿© ÁÝ´Ï´Ù. (getString(), getInt(), getDouble() µîµî....) <BR>¶Ç´Ù¸¥ ¹æ¹ýÀº Ä÷³ÀÇ À̸§À» Á÷Á¢ ¼¼úÇÏ´Â ¹æ¹ýÀε¥, ´ÙÀ½°ú °°ÀÌ »ç¿ëµË´Ï´Ù. <P>String name=rs.getString("name"); <P>ÀÌ·¯°Ô Çϸé rs ResultSet¿¡ ÀúÀåµÇ ¾ú´ø nameÄ÷³ÀÇ µ¥ÀÌÅͰ¡ name¿¡ ÀúÀåµË´Ï´Ù. <P><BR><!-- Chapter End --><!-- Chapter Start --><FONT color=#a0522d><STRONG>* 6. °´Ã¼ close() Çϱâ (ResultSet, Statement, Connection)</STRONG></FONT> <P><!-- Source Start --> <TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#e7e7e7> <TBODY> <TR> <TD class=src bgColor=#fffef4>Java´Â ¸Þ¸ð¸® °ü¸®¸¦ µû·Î ÇÏÁö ¾Ê¾Æµµ ÀÚüÀûÀ¸·Î garbage collection ±â´ÉÀÌ ÀÖ¾î »ç¿ëµÇÁö ¾Ê´Â °´Ã¼´Â ÀÚµ¿ÀûÀ¸·Î 󸮵ȴÙ. ±×·¯³ª, SunÀº JDBC µå¶óÀ̹ö¿Í °°ÀÌ ¿ÜºÎ Áö¿øµÇ´Â µå¶óÀ̹ö¿¡ ´ëÇØ¼´Â »ý¼ºµÈ °´Ã¼¸¦ ÄÚµå ³»¿¡¼ ¼Ò¸ê½Ã۵µ·Ï ±ÇÀåÇϰí ÀÖ´Ù. JDBC API´Â À̸¦ À§ÇØ close() ¸Þ½îµå¸¦ Á¦°øÇϴµ¥, close() ¸Þ½îµå¸¦ »ç¿ëÇØ¾ß ÇÒ Å¬·¡½º´Â Connection, Statement, PreparedStatement, ResultSet µîÀÌ´Ù. µû¶ó¼, µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÏ¿© SQL ±¸¹®À» ¸ðµÎ ¼öÇàÇß´Ù¸é ´ÙÀ½Ã³·³ close() ¸Þ½îµå¸¦ »ç¿ëÇÏ¿© °´Ã¼¸¦ ¸ðµÎ ¼Ò¸ê½Ã۵µ·Ï ÇÑ´Ù. - webdox </TD></TR></TBODY></TABLE> <P>rs.close();<BR>st.close();<BR>con.close(); <P>À§¿Í °°ÀÌ »ç¿ëÇϸç, con (Connection) °ú st (Statement or PreparedStatement)´Â ¹Ýµå½Ã close µÇ¾î¾ß ÇÕ´Ï´Ù. À§¿¡¼ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ Statement ¿Í ResultSet Àº 1:1 ´ëÀÀ À̱⠶§¹®¿¡ ResultSet Àº Statement °¡ ¼Ò¸êµÇ¸é ÀÚµ¿À¸·Î ¼Ò¸êµË´Ï´Ù. (¾Æ¿¹ 󸮸¦ ÇÏÁö ¸»¶ó´Â ¾ê±â´Â ¾Æ´Õ´Ï´Ù. -¾ÈÀüÀ» À§Çؼ) <P><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* ±×¸®°í.... </STRONG></FONT> <P>´ëºÎºÐÀÇ Servlet/JSP À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ¿¡¼´Â Connection À» Pool ·Î¼ °ü¸®¸¦ Çϴµ¥, ÀÌ´Â ¸Å ¿äû½Ã ¸¶´Ù µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇϰí ÇØÁ¦ÇÏ´Â ÀÏÀ» ¼öÇàÇϴµ¥ ÀÖ¾î ¹ß»ýÇÏ´Â ºÎÇϸ¦ ÁÙ¿© ÁÖ°í, ÀÏÁ¤ °¹¼ö ÀÌ»óÀÇ Ä¿³Ø¼Ç¼ö¸¦ ³ÑÁö ¾Êµµ·Ï À¯Áö½ÃÄÑ ÁÖ±â À§Çؼ ÀÔ´Ï´Ù. <BR>ÀÌ·¯ÇÑ Connection Pool Àº ¸î°¡Áö °ø°³µÈ°Íµµ ÀÖ°í Á÷Á¢ Á¦ÀÛÇÒ¼öµµ ÀÖÀ¸³ª, ¿©±â ¿¡¼´Â »ý·«Çϵµ·Ï ÇϰڽÀ´Ï´Ù. </P>
<STRONG><FONT color=#a0522d>* °Á¸¦ ½ÃÀÛÇϱâÀü¿¡..... </FONT></STRONG> <P>JDBC¸¦ ÀÌ¿ëÇÏ¿© DB¸¦ ¿¢¼¼½ºÇؼ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â ¹æ¹ýÀÇ <B>±âÃÊ</B>¿¡ ´ëÇØ¼ °ÀÇÇÕ´Ï´Ù. <BR>µû¶ó¼ À̹ø °Á´ JDBC¸¦ óÀ½ »ç¿ëÇϰí ÇÏ´Â ºÐµé¿¡°Ô ÀûÇÕÇÑ °ÁÂÀÔ´Ï´Ù. <P><!-- Chapter End --><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* JDBC ÇÁ·Î±×·¡¹ÖÀÇ 5 ´Ü°è</STRONG></FONT> <P> <OL> <LI>DriverManager¿¡ ÇØ´ç DBMS Driver¸¦ µî·Ï <LI>ÇØ´ç Driver·Î ºÎÅÍ Connection °´Ã¼ ȹµæ <LI>Connection °´Ã¼·ÎºÎÅÍ Statement °´Ã¼ ȹµæ <LI>StatementÀÇ method¸¦ ÀÌ¿ëÇÏ¿© SQL½ÇÇà <LI>ResultSet À¸·Î ¹Þ¾Æ¼ ó¸®(executeUpdate ÀÇ °æ¿ì¿£ Á¦¿Ü) <LI>°´Ã¼ close() (ResultSet, Statement, Connection) </LI></OL>±×·³ °¢ ´Ü°è¿¡ ´ëÇØ¼ ÀÚ¼¼È÷ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. <P><!-- Chapter End --><BR><FONT color=#a0522d><STRONG>* 1. DriverManager¿¡ ÇØ´ç DBMS Driver¸¦ µî·Ï </STRONG></FONT> <P>Driver¸¦ DriverManager¿¡ µî·ÏÇÏ´Â ¹æ¹ýÀº 3°¡Áö°¡ ÀÖ½À´Ï´Ù. <BR>Class.forName() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý, Driver°´Ã¼¸¦ »ý¼ºÇÏ´Â ¹æ¹ý, registerDriver() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý ÀÌ·¸°Ô 3°¡ÁöÀÇ ¹æ¹ýÀÌ ÀÖÁö¸¸ °¡Àå ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ°í ½¬¿î ¹æ¹ýÀÎ Class.forName() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼¸¸ ¼³¸íÇϵµ·Ï ÇϰڽÀ´Ï´Ù. <P>ÇØ´ç JDBC µå¶óÀ̹ö¸¦ µî·ÏÇÏ·Á¸é ´ç¿¬È÷ JDBC µå¶óÀ̹ö°¡ ÇÊ¿äÇÕ´Ï´Ù. ÇØ´ç µ¥ÀÌÅͺ£À̽ºÀÇ µå¶óÀ̹ö ÆÄÀÏÀ» ¸ÕÀú Ŭ·¡½º ÆÐ½º¿¡ ÀâÀ¸½Ã±â ¹Ù¶ø´Ï´Ù. ¿À¶óŬÀÇ °æ¿ì´Â <A href="http://www.oracle.com/" target=_blank>www.oracle.com</A> ¿¡¼ ´Ù¿î·Îµå ¹ÞÀ»¼öµµ ÀÖ°í ¿À¶óŬ ¼³Ä¡½Ã °°ÀÌ ¼³Ä¡ µÇ¹Ç·Î ¿À¶óŬ µð·ºÅ丮¸¦ Àß »ìÆì º¸±â ¹Ù¶ø´Ï´Ù. <P>´ÙÀ½À¸·Î mySQLÀÇ °æ¿ì´Â <A href="http://sourceforge.net/project/showfiles.php?group_id=15923" target=_blank>http://sourceforge.net/project/showfiles.php?group_id=15923</A>À¸·Î °¡¼Å¼ ´Ù¿î¹ÞÀ¸½Ã±â ¹Ù¶ø´Ï´Ù. <P>ÀÌÁ¦ JDBC µå¶óÀ̹ö¸¦ DriverManager¿¡ µî·ÏÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æ º¸°Ú½À´Ï´Ù. <P><B>Class.forName("org.gjt.mm.mysql.Driver");</B> -> mySQL ÀÇ °æ¿ì <BR><B>Class.forName("oracle.jdbc.driver.OracleDriver");</B> -> Oracle thin µå¶óÀ̹öÀÇ °æ¿ì <P>Class ´Â java.lang ÆÐŰÁö¿¡ Àִ Ŭ·¡½º ÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀÌ ±Ã±ÝÇϽŠºÐÀº api¹®¼¸¦ Âü°í ÇϽñ¸¿ä... forName ¸Þ¼Òµå¿¡ parameter·Î ¾²ÀÎ StringÀº ´ç¿¬È÷ DBMSÀÇ Á¾·ù¿¡ µû¶ó Ʋ·ÁÁö°ÚÁö¿ä? ¾î°µç À§ÀÇ ¸Þ¼Ò¸¦ ½ÇÇà½ÃŰ°í³ª¸é ÀÚµ¿À¸·Î µå¶óÀ̹ö °´Ã¼°¡ »ý¼ºÀ̵ǰí, ÀÚ½ÅÀ» DriverManager¿¡ µî·ÏÇϴ ó¸®°¡ ÀÌ·ç¾îÁö°Ô µË´Ï´Ù. <P><!-- Chapter End --><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* 2. ÇØ´ç Driver·Î ºÎÅÍ Connection °´Ã¼ ȹµæ </STRONG></FONT> <P>ConnectionÀ̶ó´Â °ÍÀº DBMS¿¡ ¿¬°áµÈ sessionÀ» ÀÇ¹Ì ÇÕ´Ï´Ù. Connection °´Ã¼¸¦ ȹµæÇÏ´Â ¹æ¹ýÀº DriverManagerÀÇ getConnection() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¸é µÇ´Âµ¥ ±× Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù. <PRE><B>Connection con=DriverManager.getConnection(String jdbcURL,String id,String password);</B> </PRE>getConnection ¸Þ¼Òµå´Â ¸î°¡Áö·Î ¿À¹ö·ÎµùµÇ¾î ÀÖÀ¸´Ï ±Ã±ÝÇϽźÐÀº API¹®¼¸¦ Âü°í ÇϽʽÿä.. <P>´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î »ç¿ëÇÕ´Ï´Ù. <P><PRE><B> String url="jdbc:mysql://localhost/dbname"; // dbname¿¡´Â »ç¿ëÇÏ´Â database À̸§ Connection con=DriverManager(url,"root","1234"); // root °èÁ¤, ÆÐ½º¿öµå´Â 1234 </B></PRE> <P><!-- Chapter End --><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* 3. Connection °´Ã¼·Î ºÎÅÍ Statement °´Ã¼ ȹµæ </STRONG></FONT> <P>ÇϳªÀÇ ConnectionÀ¸·Î ºÎÅÍ ¿©·¯°³ÀÇ StatementÀÇ »ý¼ºÀÌ °¡´ÉÇÕ´Ï´Ù. ÀÌÈÄ¿¡ Statement·Î ºÎÅÍ SQLÀ» ½ÇÇàÇÏ°Ô µË´Ï´Ù. ¾Æ·¡ÀÇ ±×¸²À» º¸½Ã¸é ÀÌÇØ°¡ µÇ¸®¶ó »ý°¢µË´Ï´Ù. <P><!-- Image Start --> <TABLE cellSpacing=1 cellPadding=10 bgColor=#e7e7e7> <TBODY> <TR> <TD bgColor=#ffffff><IMG alt="" src="http://www.aboutjsp.com/lec/images/jdbc_tree.jpg" border=0></TD></TR></TBODY></TABLE><!-- Image end --><BR><PRE><B> Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbname","root","password"); Statement st1=con.createStatement(); ResultSet rs1=st1.executeQuery("select * form names"); Statement st2=con.createStatement(); ResultSet rs2=st2.executeQuery("select * form users"); Statement st3=con.createStatement(); ResultSet rs3=st3.executeQuery("select * form emails"); </B></PRE>µû¶ó¼ À§¿Í °°ÀÌ »ç¿ëÀÌ °¡´ÉÇÏÁÒ. Statement¿¡´Â 3°¡Áö Á¾·ù°¡ Àִµ¥ ±×Áß Ã¹¹øÂ°°¡ Áö±Ý »ç¿ëÇÑ Statement ÀÔ´Ï´Ù. µÎ¹øÂ°·Î PreparedStatement °¡ ÀÖ°í ¸¶Áö¸·À¸·Î CallableStatement°¡ ÀÖ´Ù. ±×Áß CallableStatement´Â ÀúÀå ÇÁ·Î½ÃÁ® (stored procedure)¸¦ È£ÃâÇϴµ¥ »ç¿ëµÇ´Â °ÍÀε¥, ¿©±â¿¡¼´Â ÃʱްÁÂÀÎ ¸¸Å ´Ù·çÁö ¾Ê½À´Ï´Ù. <BR>PreparedStatement´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÕ´Ï´Ù. <PRE><B> Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbname","root","password"); <U>Prepared</U>Statement ps=con.<U>prepare</U>Statement("update juso set si=? where zip=?); // ¹ØÁÙÄ£ ºÎºÐ ÁÖÀÇ ps.setString(1,"Seoul"); // ù¹øÀç ? ÀÌ 1¹øÀÌ µË´Ï´Ù. ps.setString(2,request.getParameter("zip")); // µÎ¹øÂ° " ? " // setString ¸»°íµµ, setDate, setArray, setCharacterStreamµî ¿©·¯°¡Áö°¡ ÀÖ½À´Ï´Ù. ps.executeUpdate(); </B></PRE>À§¿Í°°Àº Äõ¸®¹®(°ªÀÌ º¯ÇÏ´Â)À» Statement·Î ó¸®ÇÑ´Ù¸é PreparedStatement ¹®¿¡ ºñÇØ¼ String °´Ã¼¸¦ ´õ ¸¹ÀÌ »ý¼ºÇØ¾ß ÇØ¾ß Çϰí, PreparedStatement»ç¿ë½Ã¿¡´Â DB¿¡¼ÀÇ Ã³¸®½Ã¿¡µµ(ƯÈ÷ ¿À¶óŬ¿¡¼) Äõ¸®¹®ÀÌ Ä³½ÌµÇ¾î º¸´Ù ³ôÀº ÆÛÆ÷¸Õ½º¸¦ Á¦°øÇÏ°Ô µË´Ï´Ù. <P><!-- Chapter End --><BR><FONT color=#a0522d><STRONG>* 4. StatementÀÇ ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼ SQL¹®ÀÇ ½ÇÇà </STRONG></FONT> <P>Statement Ŭ·¡½º¿¡¼´Â Äõ¸®¹®ÀÇ ½ÇÇàÀ» À§Çؼ ¸î°¡Áö ¸Þ¼Òµå¸¦ Á¦°øÇϴµ¥, executeQuery()¿Í executeUpdate() µÎ°³ÀÇ ¸Þ¼Òµå¸¸ ¾Ë¸é ÃæºÐÈ÷ Ȱ¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. <PRE>ResultSet rs=stmt.executeQuery("select * from users"); </PRE>À§¿Í °°Àº ¹æ½ÄÀ¸·Î »ç¿ëµÇ¸ç executeQuery()´Â "select"¹®À» »ç¿ëÇÒ¶§¿¡¸¸ »ç¿ëµÇ´Â °ÍÀÌÁÒ. ½ÇÇà °á°ú´Â ResultSet¿¡ ÀúÀåµÇ¸ç ÀúÀåµÈ Á¤º¸ÀÇ Ã³¸® ¹æ¹ýÀº ¾Æ·¡ ¿¡¼ ´Ù·çµµ·Ï ÇϰڽÀ´Ï´Ù.<BR>¶Ç´Ù¸¥ ¸Þ¼ÒµåÀÎ executeUpdate()´Â select ¿Ü¿¡ update,delete,insert µîÀÇ Äõ¸®¹®À» »ç¿ëÇÒ¶§ ÀÌ¿ëµÇ¾î Áý´Ï´Ù. ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. <PRE>stmt.executeUpdate("insert into users(id,password) values('ab','bc')"); </PRE> <P><!-- Chapter End --><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* 5. ResultSetÀ¸·Î ¹Þ¾Æ ¼ ó¸®Çϱâ </STRONG></FONT> <P>À§¿¡¼ ¼³¸íÇß´Ù ½ÃÇÇ executeQuery()¸¦ ½ÇÇàÇϸé ResultSet ŸÀÔÀÇ °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù. ÀÌ °´Ã¼´Â ½ÇÇàµÈ Äõ¸®¹®ÀÇ °á°ú °°À» °¡Áö°í Àִµ¥ ResultSetÀÇ ¸î°¡Áö ¸Þ¼Òµå¸¦ ÀÌ¿ëÇϸé ResultSet¿¡ ÀúÀåµÈ Á¤º¸¸¦ »ç¿ëÇÒ¼ö ÀÖ½À´Ï´Ù. selectÄõ¸®¸¦ ½ÇÇà ÇßÀ¸¹Ç·Î ÇϳªÀÌ»óÀÇ row¸¦ Áö´Ï°í Àִµ¥.. ÇöÀç row¿¡¼ ´ÙÀ½ row·Î ³Ñ±â·Á¸é rs.next() ¿Í °°ÀÌ »ç¿ëÇÏ¸é µË´Ï´Ù.<FONT color=red>(ù¹øÂ° rowµµ next()¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.)</FONT> <P>°¢ row°¡ ¼±ÅÃÀÌ µÇ¾úÀ¸¸é °¢Ä÷³ÀÇ µ¥ÀÌÅ͸¦ ºÒ·¯ ¿À¸é µÇ´Âµ¥, µÎ°¡ÁöÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. <BR>ù¹øÂ°¹æ¹ýÀº <P>String name=rs.getString(1); (name¿¡ ÇØ´çÇÏ´Â Ç׸ñÀÇ Ã¹¹øÀç Ä÷³¿¡ ÀÖÀ»°æ¿ì) <P>À̿Ͱ°ÀÌ µ¥ÀÌÅÍÀÇ Ä÷³ À§Ä¡·Î °Ë»öÇÕ´Ï´Ù. getStringÀÇ String ¿¡´Â Int,Double, µî°ú °°Àº ÀÚ·áÇüÀ» »ç¿ëÇϸé ÇØ´ç ÀÚ·áÇü¿¡ ¸Â´Â µ¥ÀÌÅ͸¦ ¸®ÅÏÇÏ¿© ÁÝ´Ï´Ù. (getString(), getInt(), getDouble() µîµî....) <BR>¶Ç´Ù¸¥ ¹æ¹ýÀº Ä÷³ÀÇ À̸§À» Á÷Á¢ ¼¼úÇÏ´Â ¹æ¹ýÀε¥, ´ÙÀ½°ú °°ÀÌ »ç¿ëµË´Ï´Ù. <P>String name=rs.getString("name"); <P>ÀÌ·¯°Ô Çϸé rs ResultSet¿¡ ÀúÀåµÇ ¾ú´ø nameÄ÷³ÀÇ µ¥ÀÌÅͰ¡ name¿¡ ÀúÀåµË´Ï´Ù. <P><BR><!-- Chapter End --><!-- Chapter Start --><FONT color=#a0522d><STRONG>* 6. °´Ã¼ close() Çϱâ (ResultSet, Statement, Connection)</STRONG></FONT> <P><!-- Source Start --> <TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#e7e7e7> <TBODY> <TR> <TD class=src bgColor=#fffef4>Java´Â ¸Þ¸ð¸® °ü¸®¸¦ µû·Î ÇÏÁö ¾Ê¾Æµµ ÀÚüÀûÀ¸·Î garbage collection ±â´ÉÀÌ ÀÖ¾î »ç¿ëµÇÁö ¾Ê´Â °´Ã¼´Â ÀÚµ¿ÀûÀ¸·Î 󸮵ȴÙ. ±×·¯³ª, SunÀº JDBC µå¶óÀ̹ö¿Í °°ÀÌ ¿ÜºÎ Áö¿øµÇ´Â µå¶óÀ̹ö¿¡ ´ëÇØ¼´Â »ý¼ºµÈ °´Ã¼¸¦ ÄÚµå ³»¿¡¼ ¼Ò¸ê½Ã۵µ·Ï ±ÇÀåÇϰí ÀÖ´Ù. JDBC API´Â À̸¦ À§ÇØ close() ¸Þ½îµå¸¦ Á¦°øÇϴµ¥, close() ¸Þ½îµå¸¦ »ç¿ëÇØ¾ß ÇÒ Å¬·¡½º´Â Connection, Statement, PreparedStatement, ResultSet µîÀÌ´Ù. µû¶ó¼, µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÏ¿© SQL ±¸¹®À» ¸ðµÎ ¼öÇàÇß´Ù¸é ´ÙÀ½Ã³·³ close() ¸Þ½îµå¸¦ »ç¿ëÇÏ¿© °´Ã¼¸¦ ¸ðµÎ ¼Ò¸ê½Ã۵µ·Ï ÇÑ´Ù. - webdox </TD></TR></TBODY></TABLE> <P>rs.close();<BR>st.close();<BR>con.close(); <P>À§¿Í °°ÀÌ »ç¿ëÇϸç, con (Connection) °ú st (Statement or PreparedStatement)´Â ¹Ýµå½Ã close µÇ¾î¾ß ÇÕ´Ï´Ù. À§¿¡¼ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ Statement ¿Í ResultSet Àº 1:1 ´ëÀÀ À̱⠶§¹®¿¡ ResultSet Àº Statement °¡ ¼Ò¸êµÇ¸é ÀÚµ¿À¸·Î ¼Ò¸êµË´Ï´Ù. (¾Æ¿¹ 󸮸¦ ÇÏÁö ¸»¶ó´Â ¾ê±â´Â ¾Æ´Õ´Ï´Ù. -¾ÈÀüÀ» À§Çؼ) <P><BR><!-- Chapter Start --><FONT color=#a0522d><STRONG>* ±×¸®°í.... </STRONG></FONT> <P>´ëºÎºÐÀÇ Servlet/JSP À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ¿¡¼´Â Connection À» Pool ·Î¼ °ü¸®¸¦ Çϴµ¥, ÀÌ´Â ¸Å ¿äû½Ã ¸¶´Ù µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇϰí ÇØÁ¦ÇÏ´Â ÀÏÀ» ¼öÇàÇϴµ¥ ÀÖ¾î ¹ß»ýÇÏ´Â ºÎÇϸ¦ ÁÙ¿© ÁÖ°í, ÀÏÁ¤ °¹¼ö ÀÌ»óÀÇ Ä¿³Ø¼Ç¼ö¸¦ ³ÑÁö ¾Êµµ·Ï À¯Áö½ÃÄÑ ÁÖ±â À§Çؼ ÀÔ´Ï´Ù. <BR>ÀÌ·¯ÇÑ Connection Pool Àº ¸î°¡Áö °ø°³µÈ°Íµµ ÀÖ°í Á÷Á¢ Á¦ÀÛÇÒ¼öµµ ÀÖÀ¸³ª, ¿©±â ¿¡¼´Â »ý·«Çϵµ·Ï ÇϰڽÀ´Ï´Ù. </P>
÷ºÎÆÄÀÏ
ºñ¹Ð±Û
ºñ¹Ð±Û
°ßÀû°è»êÇϱâ
ÀÛ¾÷ÀÇ·Ú
°ßÀû¹®ÀÇ
°øÁö»çÇ×