|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå |
public interface CachedRowSet
CachedRowSet
ÀÇ ¸ðµç Ç¥ÁØ ±¸ÇöÀÌ ±¸ÇöÇØ¾ß ÇÏ´Â ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù.
Sun Microsystems ·ÎºÎÅÍ Á¦°øµÈ CachedRowSet
ÀÎÅÍÆäÀ̽ºÀÇ ·¹ÆÛ·±½º ±¸ÇöÀº Ç¥ÁØ ±¸ÇöÀÔ´Ï´Ù. °³¹ßÀÚ´Â À̰ÍÀ» ±×´ë·Î »ç¿ëÇÏ´Â Àϵµ, È®ÀåÇÏ´Â Àϵµ, ¶Ç´Â ÀÌ ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀ» µ¶ÀÚÀûÀ¸·Î ÀÛ¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
CachedRowSet
°´Ã¼´Â
¸Þ¸ð¸®³»¿¡ ÇàÀ» ij½¬ÇÏ´Â µ¥ÀÌÅÍÇàÀÇ ÄÁÅ×À̳ÊÀ̸ç, Ç×»ó ±× µ¥ÀÌÅÍ ¼Ò½º¿¡ Á¢¼ÓÇϰí ÀÖÁö ¾Ê¾Æµµ 󸮸¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, ½ºÅ©·Ñ, °»½Å, Á÷·ÄȰ¡ °¡´ÉÇÑ JavaBeansTM ÄÄÆÛ³ÍÆ®ÀÔ´Ï´Ù. CachedRowSet
°´Ã¼¿¡´Â º¸Åë, °á°ú ¼¼Æ®ÀÇ ÇàÀÌ Æ÷ÇԵ˴ϴٸ¸, ½ºÇÁ·¹µå½¬Æ® µî, °Ñ(Ç¥) Çü½ÄÀÇ ¸ðµç ÆÄÀÏÀÇ ÇàÀ» Æ÷ÇÔÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ·¹ÆÛ·±½º ±¸ÇöÀº, ResultSet
°´Ã¼·ÎºÎÅÍÀÇ µ¥ÀÌÅÍÀÇ Ãëµæ ¹Û¿¡ Áö¿ø
ÇÕ´Ï´Ù¸¸, °³¹ßÀÚ´Â ±× ¿ÜÀÇ °Ñ(Ç¥) Çü½ÄÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖµµ·Ï, SyncProvider
±¸ÇöÀ» È®ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù
.
¾îÇø®ÄÉÀ̼ÇÀº, CachedRowSet
°´Ã¼³»ÀÇ µ¥ÀÌÅ͸¦ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ º¯°æÀº µ¥ÀÌÅÍ ¼Ò½º¿¡µµ ¹Ý¿µµË´Ï´Ù.
CachedRowSet
°´Ã¼´Â ¡¸¹ÌÁ¢¼ÓÀÇ¡¹Çà ¼¼Æ®ÀÔ´Ï´Ù. Áï, µ¥ÀÌÅÍ ¼Ò½º¿ÍÀÇ Á¢¼ÓÀ» Á¶±Ý ¹Û¿¡ ÀÌ¿ëÇÏÁö ¾Ê½À´Ï´Ù. CachedRowSet
°´Ã¼°¡ µ¥ÀÌÅÍ ¼Ò½º¿¡ Á¢¼ÓÇÏ´Â °ÍÀº µ¥ÀÌÅ͸¦ Àо Àڽſ¡°Ô ÇàÀ» ÀоîµéÀÏ ¶§¿Í ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º·Î º¯°æ ³»¿ëÀ» ¹Ý¿µÇÒ ¶§ »ÓÀÔ´Ï´Ù. ±× ÀÌ¿Ü ¶§´Â µ¥ÀÌÅÍÀÇ º¯°æÁßµµ Æ÷ÇÔÇØ, µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ Àý´Ü µÇ°í ÀÖ½À´Ï´Ù. RowSet
°´Ã¼´Â
ÀÌ¿Í °°ÀÌ, µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ Àý´Ü µÇ°í Àֱ⠶§¹®¿¡ ÇêÀÏÀÌ Àû°í, ±× ¿ÜÀÇ ÄÄÆÛ³ÍÆ®¿¡ °Ç³×Áֱ⠽¬¿öÁö°í ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î
¹ÌÁ¢¼ÓÀÇ RowSet
°´Ã¼¸¦ Á÷·ÄÈÇØ, ȸ¼± °æÀ¯·Î PDA µîÀÇ thin Ŭ¶óÀÌ¾ðÆ®¿¡ °Ç³×ÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù.
CachedRowSet
°´Ã¼ÀÇ ÀÛ¼ºCachedRowSet
ÀÇ µðÆúÆ® »ý¼ºÀÚ¸¦ »ç¿ëÇØ, µðÆúÆ®ÀÇ CachedRowSet
°´Ã¼¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
CachedRowSetImpl crs = new CachedRowSetImpl() ;kÀÌ »õ·Î¿î
CachedRowSet
°´Ã¼´Â ±× ÇÁ·ÎÆÛƼ¸¦ BaseRowSet
°´Ã¼ÀÇ µðÆúÆ®ÀÇ ÇÁ·ÎÆÛƼ·Î ¼³Á¤ÇÕ´Ï´Ù. °Ô´Ù°¡ µ¿±â ÇÁ·Î¹ÙÀÌ´õ·Î¼ RIOptimisticProvider
°´Ã¼¸¦ °¡Áý´Ï´Ù. RI¿¡ Æ÷ÇԵǴ 2°³ÀÇ SyncProvider
±¸Çö °¡¿îµ¥ 1°³, RIOptimisticProvider
´Â µ¿±â ÇÁ·Î¹ÙÀÌ´õ°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì¿¡ SyncFactory
½Ì±Û ÅæÀ¸·ÎºÎÅÍ Á¦°øµÇ´Â µðÆúÆ®ÀÇ ÇÁ·Î¹ÙÀÌ´õÀÔ´Ï´Ù.
SyncProvider
°´Ã¼´Â
CachedRowSet
°´Ã¼¿Í µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àо Àڽſ¡°Ô µ¥ÀÌÅ͸¦ ÀоîµéÀÌ´Â ¸®´õ (RowSetReader
°´Ã¼)¸¦ Á¦°øÇÕ´Ï´Ù. ¸®´õ¸¦ ±¸ÇöÇÏ´Â °ÍÀ¸·Î½á, ResultSet
°´Ã¼³ª °Ñ(Ç¥) Çü½ÄÀÇ ÆÄÀϷκÎÅÍ µ¥ÀÌÅ͸¦ Àо ¼ö°¡ ÀÖ½À´Ï´Ù. SyncProvider
°´Ã¼´Â
¶óÀÌÅÍ(RowSetWriter
°´Ã¼)µµ Á¦°øÇÕ´Ï´Ù. ¶óÀÌÅÍ´Â ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ µ¥ÀÌÅͷκÎÅÍ Àý´Ü µÇ°í ÀÖ´Â µ¿¾È¿¡ CachedRowSet
°´Ã¼¿¡ ´õÇØÁø º¯°æ ³»¿ëÀ» µ¿±â ÇÕ´Ï´Ù.
¶óÀÌÅ͸¦ ±¸ÇöÇÏ´Â °ÍÀ¸·Î½á, ´Ù¾çÇÑ ·¹º§·Î Çà ¼¼Æ®¿¡ °ªÀ» ÀоîµéÀÎ ÈÄ¿¡ µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ °ªÀÌ º¯°æµÇ¾úÀ» °æ¿ì¿¡ ¹ß»ýÇÏ´Â °æÇÕÀÇ Ã¼Å©³ª ¿¹¹æÀ» ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù
. RIOptimisticProvider
±¸ÇöÀº °æÇÕÀÌ °ÅÀÇ ¾ø´ÂÁö, ÀüÇô ¾ø´Â °ÍÀ¸·Î¼ ¶ôÀ» ÀÏÀý ¼³Á¤ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ±¸ÇöÀº °æÇÕÀÌ ¾ø´Â °æ¿ì¿¡°Ô¸¸, CachedRowSet
°´Ã¼ÀÇ °ªÀ¸·Î µ¥ÀÌÅÍ ¼Ò½º¸¦ °»½ÅÇÕ´Ï´Ù. º¯°æµÈ µ¥ÀÌÅ͸¦ µ¥ÀÌÅÍ ¼Ò½º¿¡ Ãâ·ÂÇÏ´Â ¸ñÀû¿¡¼¸¸ ±¸ÇöµÇ´Â ¶óÀÌÅ͵µ ÀÖ½À´Ï´Ù. ÀÌ ±¸ÇöÀº °æÇÕÀÇ Ã¼Å©¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â°¡ ±× ¿ÏÀüÈ÷ ¿ªÀ¸·Î µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ µ¥ÀÌÅÍÀÇ º¯°æÀ» ÃæºÐÈ÷ ¸·À» ¼ö ÀÖÀ» »ÓÀÇ ¶ôÀ» ¼³Á¤ÇÏ´Â °Í¿¡ ÀÇÇØ ÇàÇØÁý´Ï´Ù. ¶Ç, ±× °ÅÀÇ Áß°£ÀÇ ¶óÀÌÅÍ ±¸Çöµµ ÀÖ½À´Ï´Ù.
CachedRowSet
°´Ã¼´Â
SyncFactory
½Ì±Û Åæ¿¡ µî·ÏµÈ ÀÓÀÇÀÇ SyncProvider
±¸ÇöÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ´ÙÀ½ÀÇ Äڵ带 È£ÃâÇÏ´Â °ÍÀ¸·Î µî·ÏµÇ¾î ÀÖ´Â SyncProvider
±¸ÇöÀ» °ËÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.
java.util.Enumeration providers = SyncFactory.getRegisteredProviders();
CachedRowSet
°´Ã¼·Î »ç¿ëÇÏ´Â SyncProvider
°´Ã¼¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀº ´ÙÀ½ÀÇ 2 ´ë·ÎÀÔ´Ï´Ù.
SyncProvider
¸¦ ÁöÁ¤)·Î ÃʱâȵǴ CachedRowSet
°´Ã¼ crs2¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
CachedRowSetImpl crs2 = new CachedRowSetImpl( "com.fred.providers.HighAvailabilityProvider");
CachedRowSet
¸Þ¼µå setSyncProvider
¸¦ »ç¿ëÇØ SyncProvider
¸¦ ¼³Á¤ÇÑ´ÙSyncProvider
°´Ã¼ (µðÆúÆ®ÀÇ »ý¼ºÀÚ
À¸·Î ÀÛ¼ºµÈ CachedRowSet
°´Ã¼)¸¦ ¸®¼Â ÇÕ´Ï´Ù.
crs.setSyncProvider("com.fred.providers.HighAvailabilityProvider");
SyncFactory
¹× SyncProvider
¸¦ ÂüÁ¶ÇØ °üÀ̾ß
ÀÖ°í.
CachedRowSet
°´Ã¼·ÎºÎÅÍÀÇ µ¥ÀÌÅÍÀÇ ÃëµæResultSet
ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ »ó¼ÓµÈ Ãëµæ ¸Þ¼µå¸¦ »ç¿ëÇØ, CachedRowSet
°´Ã¼·ÎºÎÅÍ ÃëµæµË´Ï´Ù. ´ÙÀ½ÀÇ ¿¹´Â crs
¸¦ CachedRowSet
°´Ã¼·Î¼ ÇàÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇØ, °¢ ÇàÀ¸·ÎºÎÅÍ ¿ÀÇ °ªÀ» ¾ò´Â ¹æ¹ýÀ» ³ªÅ¸³À´Ï´Ù. ÃÖÃÊÀÇ ¿¹¿¡¼´Â ¿¹øÈ£¸¦ ÃëÇÏ´Â Ãëµæ ¸Þ¼µå¸¦ »ç¿ëÇÕ´Ï´Ù. 2¹øÂ°ÀÇ ¿¹¿¡¼´Â ·Ä¸íÀ» ÃëÇÏ´Â Ãëµæ ¸Þ¼µå¸¦ »ç¿ëÇÕ´Ï´Ù. ¿¹øÈ£´Â º¸Åë, RowSet
°´Ã¼ÀÇ Ä¿¸àµå°¡ SELECT * FROM TABLENAME
ÀÇ Çü½ÄÀÌ µÇ´Â °æ¿ì¿¡ »ç¿ëµË´Ï´Ù. ·Ä¸íÀº ·Ä¸íÀ» ÁöÁ¤ÇÏ´Â Ä¿¸àµå·Î ÀÚÁÖ »ç¿ëµË´Ï´Ù.
while (crs.next()) { String name = crs.getString(1); int id = crs.getInt(2); Clob comment = crs.getClob(3); short dept = crs.getShort(4); System.out.println(name + " " + id + " " + comment + " " + dept); }
while (crs.next()) { String name = crs.getString("NAME"); int id = crs.getInt("ID"); Clob comment = crs.getClob("COM"); short dept = crs.getShort("DEPT"); System.out.println(name + " " + id + " " + comment + " " + dept); }
RowSetMetaData
ÃëµæRowSetMetaData
°´Ã¼»ó¿¡ ResultSetMetaData
¸Þ¼µå¿Í RowSetMetaData
¸Þ¼µå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·ÎCachedRowSet
°´Ã¼³»ÀÇ ¿¿¡ °üÇÑ Á¤º¸¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ÄÚµåÀÇ ¹ßÃé¿¡¼´Â crs¸¦ CachedRowSet
°´Ã¼·Î¼ ÀÌ Ã³¸®¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. 1 Çà °·Î´Â crs³»ÀÇ ¿¿¡ °üÇÑ Á¤º¸¸¦ °¡Áö´Â RowSetMetaData
°´Ã¼¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ResultSet
ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ »ó¼ÓµÈ getMetaData
¸Þ¼µå´Â ResultSetMetaData
°´Ã¼¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¸®ÅÏµÈ °´Ã¼´Â º¯¼ö rsmd¿¡ ÇÒ´çÇÒ ¼ö ÀÖ±â Àü¿¡ RowSetMetaData
°´Ã¼¿¡ ij½ºÆ® µË´Ï´Ù. 2 Çà °·Î´Â jrsÀÇ ·Ä¼ö¸¦ È®ÀÎÇÕ´Ï´Ù. 3 Çà °·Î´Â jrs
ÀÇ 2¹øÂ°ÀÇ ¿¿¡ Æ÷ÇÔµÈ °ªÀÇ JDBC ÇüÀ» ÃëµæÇÕ´Ï´Ù.
RowSetMetaData rsmd = (RowSetMetaData) crs.getMetaData(); int count = rsmd.getColumnCount(); int type = rsmd.getColumnType(2);
RowSetMetaData
ÀÎÅÍÆäÀ̽º´Â ´ÙÀ½ÀÇ 2°³ÀÇ Á¡À¸·Î½á, ResultSetMetaData
ÀÎÅÍÆäÀ̽º¿Í´Â ´Ù¸¨´Ï´Ù.
¼³Á¤
¸Þ¼µå¸¦ Æ÷ÇÔÇÑ: RowSet
°´Ã¼´Â
´Ù¸¥ ResultSet
°´Ã¼ÀÇ µ¥ÀÌÅ͸¦ ÀоîµéÀÏ ¶§, ÀÌ·¯ÇÑ ¸Þ¼µå¸¦ ³»ºÎ¿¡¼ »ç¿ëÇÕ´Ï´Ù.
Ãëµæ
¸Þ¼µåÀÇ ¼ö°¡ ÀûÀº: ÀϺÎÀÇ ResultSetMetaData
¸Þ¼µå´Â RowSet
°´Ã¼¿¡´Â Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¾î
¿ÀÇ °ªÀÌ Ãâ·Â°¡´ÉÇѰ¡ Àбâ Àü¿ë
ÀÎÁö¸¦ È®ÀÎÇÏ´Â ¸Þ¼µå´Â Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. À̰ÍÀº, RowSet
°´Ã¼ÀÇ ¸ðµç ¿Àº Çà ¼¼Æ®ÀÇ °»½ÅÀÌ °¡´ÉÇÑ °æ¿ì´Â Ãâ·Â°¡´É, Çà ¼¼Æ®ÀÇ °»½ÅÀ» ÇÒ ¼ö ¾ø´Â °æ¿ì´Â Àбâ Àü¿ëÀ̱⠶§¹®ÀÔ´Ï´Ù. RowSetMetaData
°´Ã¼¸¦ µ¹·ÁÁÖ±â À§Çؼ´Â ±¸ÇöÀ¸·Î java.sql.ResultSet
¿¡ Á¤ÀÇµÈ getMetaData()
¸Þ¼µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇØ, RowSetMetaData
°´Ã¼¸¦ µ¹·ÁÁÙ Çʿ䰡 ÀÖ½À´Ï´Ù.
CachedRowSet
°´Ã¼ÀÇ °»½ÅCachedRowSet
°´Ã¼ÀÇ °»½Å ¹æ¹ýÀº ResultSet
°´Ã¼ÀÇ °»½Å ¹æ¹ý°ú °°½À´Ï´Ù¸¸, °»½ÅÁß, Çà ¼¼Æ®´Â µ¥ÀÌÅÍ ¼Ò½º¿¡ Á¢¼ÓÇϰí ÀÖÁö ¾Ê¾Ò±â ¶§¹®¿¡
ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º·Î º¯°æÀ» ´õÇÏ´Â Ãß°¡ ¼ø¼°¡ ÇÊ¿äÇÏ°Ô µË´Ï´Ù. CachedRowSet
°´Ã¼´Â updateRow
¸Þ¼µå³ª insertRow
¸Þ¼µå¸¦ È£ÃâÇÑ µÚ, acceptChanges
¸Þ¼µå¸¦ È£ÃâÇØ, °»½Å ³»¿ëÀ» µ¥ÀÌÅÍ ¼Ò½º¿¡ Ãâ·ÂÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¿¡¼´Â CachedRowSet
°´Ã¼ crs³»ÀÇ Çà¿¡ Ä¿¼°¡ ³õ¿©Á® ÀÖ½À´Ï´Ù. ÀÌ ÄÚµå´Â ÇöÀçÀÇ ÇàÀÇ 2°³ÀÇ ¿ÀÇ °ªÀ» °»½ÅÇØ, RowSet
°´Ã¼ÀÇ ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¸¦ °»½ÅÇÕ´Ï´Ù.
crs.updateShort(3, 58); crs.updateInt(4, 150000); crs.updateRow(); crs.acceptChanges();
´ÙÀ½ÀÇ ¿¹¿¡¼´Â »ðÀÔÇàÀ¸·Î À̵¿ÇØ, »ðÀÔÇà À§¿¡ »õ·Î¿î ÇàÀ» ÀÛ¼ºÇØ, À̰ÍÀ» Çà ¼¼Æ®¿¡ »ðÀÔÇÕ´Ï´Ù. °Ô´Ù°¡acceptChanges
¸Þ¼µå¸¦ È£ÃâÇØ, ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ »õ·Î¿î ÇàÀ» Ãß°¡ÇÕ´Ï´Ù. Ãëµæ ¸Þ¼µåÀÇ °æ¿ì¿Í °°°Ô, °»½Å ¸Þ¼µå¿¡¼µµ, ¿À妽º³ª ·Ä¸íÀ» »ç¿ëÇØ ó¸® ´ë»óÀÇ ¿À» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
crs.moveToInsertRow(); crs.updateString("Name", "Shakespeare"); crs.updateInt("ID", 10098347); crs.updateShort("Age", 58); crs.updateInt("Sal", 150000); crs.insertRow(); crs.moveToCurrentRow(); crs.acceptChanges();
ÁÖ: insertRow()
¸Þ¼µå·ÎCachedRowSet
°´Ã¼ÀÇ »ðÀÔÇàÀÇ ³»¿ëÀ» »ðÀÔÇÏ´Â Àå¼Ò´Â ±¸ÇöÀ¸·Î Á¤ÀÇÇÕ´Ï´Ù. CachedRowSet
ÀÎÅÍÆäÀ̽ºÀÇ ·¹ÆÛ·±½º ±¸ÇöÀº ÇöÀçÀÇ ÇàÀÇ Á÷ÈÄ¿¡ »õ·Î¿î ÇàÀ» »ðÀÔÇÕ´Ï´Ù¸¸, ´Ù¸¥ ÀÓÀÇÀÇ °³¼Ò¿¡µµ »ðÀÔÇϵµ·Ï ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ·¯ÇÑ ¿¹¿¡ ÀÖ¾î¼ÀÇ acceptChanges
¸Þ¼µåÀÇ »ç¿ë ¹æ¹ý¿¡ ÁÖ¸ñÇØ ÁÖ¼¼¿ä. ÀÌ ¸Þ¼µå´Â RowSet
°´Ã¼ÀÇ ¶óÀÌÅ͸¦ ³»ºÎ¿¡¼ È£ÃâÇØ, µ¥ÀÌÅÍ ¼Ò½º·Î º¯°æÀ» Ãâ·ÂÇÏ´Â °ÍÀ¸·ÎCachedRowSet
°´Ã¼³»ÀÇ º¯°æ ³»¿ëÀ» ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ Àü´ÞÇÕ´Ï´Ù. ÀÌ ¶§¹®¿¡
¶óÀÌÅÍ´Â µ¥ÀÌÅÍ ¼Ò½º¿ÍÀÇ Á¢¼ÓÀ» È®¸³ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÃÖÃÊÀÇ 2°³ÀÇ ÄÚµåÀÇ ¹ßÃé´Â updateRow
¶Ç´Â insertRow
È£Ãâ ÈÄ Áï½Ã acceptChanges
¸Þ¼µå¸¦ È£ÃâÇÕ´Ï´Ù. ±×·¯³ª, º¹¼öÀÇ ÇàÀ» º¯°æÇÏ´Â °æ¿ì´Â updateRow
¿Í
insertRow
È£ÃâÀÌ ¸ðµÎ ¿Ï·áÇÏ°í ³ª¼ acceptChanges
¸¦ È£ÃâÇÏ´Â ¹æ¹ý ÂÊÀÌ È¿À²ÀÌ ÁÁ¾ÆÁý´Ï´Ù. acceptChanges
¸¦ 1ȸ
¹Û¿¡ È£ÃâÇÏÁö ¾Ê´Â °æ¿ì´Â Á¢¼ÓÀ» 1°³
È®¸³ÇÏ´Â °Í¸¸À¸·Î ³¡³³´Ï´Ù.
acceptChanges
¸Þ¼µåÀÇ ½ÇÇà½Ã¿¡´Â Çà ¼¼Æ®¿¡ÀÇ º¯°æÁ¡À» ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ Ãâ·ÂÇϱ⠶§¹®¿¡
¹èÈÄ¿¡¼ CachedRowSet
°´Ã¼ÀÇ ¶óÀÌÅÍ, RowSetWriterImpl
°´Ã¼°¡ È£ÃâµË´Ï´Ù. ÀÌ ¶óÀÌÅͰ¡ ±¸ÇöµÇ´Â °ÍÀ¸·Î µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ Á¢¼ÓÀÌ È®¸³µÇ¾î °»½Å Á¤º¸°¡ Ãâ·ÂÇØÁý´Ï´Ù. ¶óÀÌÅÍ´Â ¼½¼Ç 1
¡¸CachedRowSet
°´Ã¼ÀÇ ÀÛ¼º¡¹À¸·Î ¼³¸íÇß´ø ´ë·ÎSyncProvider
ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀ» °³ÀÔ½ÃÄÑ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. µðÆúÆ®ÀÇ ·¹ÆÛ·±½º ±¸Çö ÇÁ·Î¹ÙÀÌ´õ RIOptimisticProvider
´Â
¿ÀÇÁƼ¹Ì½ºÆ½ concurrent processing Á¦¾î µµ±¸¸¦ ÀÌ¿ëÇϱâ À§ÇØ, ¶óÀÌÅ͸¦ ±¸ÇöÇϰí ÀÖ½À´Ï´Ù. Áï, Çà ¼¼Æ®°¡ µ¥ÀÌŸº£À̽º·ÎºÎÅÍ Àý´Ü µÇ°í ÀÖ´Â µ¿¾È, ºÎÇÏÀÇ µ¥ÀÌŸº£À̽º´Â ¶ô µÇÁö ¾Ê°í, µ¥ÀÌÅÍ ¼Ò½º¿¡ µ¥ÀÌÅ͸¦ Ãâ·ÂÇϱâ Àü¿¡ °æÇÕÀÌ ÀÖ´ÂÁö ¾ø´ÂÁöÀÇ È®ÀÎÀ» ÇϰԸ¸ µË´Ï´Ù. °æÇÕÀÌ ÀÖ´Â °æ¿ì, µ¥ÀÌÅÍ ¼Ò½º¿¡´Â ¾Æ¹«°Íµµ Ãâ·ÂÇØÁöÁö ¾Ê½À´Ï´Ù.
SyncProvider
Ŭ·¡½º¿¡ ÀÇÇØ Á¦°øµÇ´Â ¸®´õ/¶óÀÌÅÍÀÇ ±â´ÉÀº Ç÷¯±× ÀÎ °¡´ÉÇϰí, µ¥ÀÌÅÍÀÇ Ãëµæ°ú °»½ÅÀÇ Ä¿½ºÅ͸¶ÀÌÁî¿¡ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ concurrent processing Á¦¾î µµ±¸°¡ ÇÊ¿äÇÑ °æ¿ì´Â setSyncProvider
¸Þ¼µå¸¦ »ç¿ëÇØ, ´Ù¸¥ SyncProvider
±¸ÇöÀ» Ç÷¯±× ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿ÀÇÁƼ¹Ì½ºÆ½ concurrent processing Á¦¾î ·çƾÀ» »ç¿ëÇϱâ À§ÇØ, RIOptismisticProvider
´Â
ÇöÀçÀÇ °ª°ú ¿øÀÇ °ª (ÇöÀçÀÇ °ªÀÇ Á÷ÀüÀÇ °ª)ÀÇ ¾çÂÊ ¸ðµÎ¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. RowSet
°´Ã¼³»ÀÇ µ¥ÀÌÅͰ¡ º¯°æµÇÁö ¾Ê¾Ò´ø °æ¿ì, ÇöÀçÀÇ °ª°ú ¿øÀÇ °ªÀº µ¿ÀÏ (RowSet
°´Ã¼°¡ ÃÖÃÊ·Î »ý¼ºµÇ¾úÀ» ¶§ÀÇ °ª)ÀÌ µË´Ï´Ù. ±×·¯³ª, RowSet
°´Ã¼³»ÀÇ °ªÀÌ º¯°æµÇ¾úÀ» °æ¿ì, ÇöÀçÀÇ °ª°ú ¿øÀÇ °ªÀº ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ´Ü°è¿¡¼´Â ¿øÀÇ °ªÀº ÃʱⰪ
ÀΠäÀÔ´Ï´Ù. ±× ÈÄÀÇ RowSet
°´Ã¼³»ÀÇ µ¥ÀÌÅÍÀÇ º¯°æ¿¡ÀÇÇØ ¿øÀÇ °ª°ú ÇöÀçÀÇ °ªÀº ÀÏÄ¡ÇÏÁö ¾Ê°Ô µË´Ï´Ù¸¸, ÀÌÀü ÇöÀçÀÇ °ªÀ̾ú´ø °ªÀÌ ¿øÀÇ °ªÀÌ µË´Ï´Ù.
¿øÀÇ °ªÀ» ÃßÀûÇÏ´Â °ÍÀ¸·Î ¶óÀÌÅÍ´Â RowSet
°´Ã¼ÀÇ ¿øÀÇ °ª°ú µ¥ÀÌŸº£À̽º³»ÀÇ °ªÀ» ºñ±³ÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌŸº£À̽º³»ÀÇ °ªÀÌ RowSet
°´Ã¼ÀÇ ¿øÀÇ °ª°ú ÀÏÄ¡ÇÏÁö ¾Ê´Â °æ¿ì, µ¥ÀÌŸº£À̽º³»ÀÇ °ªÀÌ º¯°æµÇ°í ÀÖ¾î °æÇÕÀÌ ¹ß»ýÇϰí ÀÖ´Â °ÍÀ»ÀǹÌÇÕ´Ï´Ù. ¶óÀÌÅ͸¦ »ç¿ëÇØ °æÇÕÀÇ Ã¼Å©¸¦ ½Ç½ÃÇÏ´ÂÁö, ¾î´À Á¤µµ±îÁö üũ¸¦ ½Ç½ÃÇÏ´ÂÁö, °æÇÕÀ» ¾î¶»°Ô ó¸®ÇÒ±î´Â ¸ðµÎ ±¸Çö¿¡ µû¶ó¼ ´Ù¸¨´Ï´Ù.
BaseRowSet
Ŭ·¡½º·ÎºÎÅÍ ¸®½º³ÊÀÇ µî·ÏÀ̶ó°í º¯°æ ³»¿ëÀ» ÅëÁöÇϱâ À§ÇÑ ¸Þ¼µå¸¦ »ó¼ÓÇØ, JavaBeans À̺¥Æ® ¸ðµ¨¿¡ Âü¿© ÇÕ´Ï´Ù. CachedRowSet
°´Ã¼ÀÇ ¸®½º³Ê´Â Çà ¼¼Æ®³»·Î º¯°æÀÌ ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ÅëÁöµÇ´Â ÄÄÆÛ³ÍÆ®ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, CachedRowSet
°´Ã¼¿¡ Äõ¸®ÀÇ °á°ú°¡ Æ÷ÇԵǾî ÀÌ·¯ÇÑ °á°ú°¡ °Ñ(Ç¥)³ª ¸·´ë ±×·¡ÇÁ·Î¼ Ç¥½ÃµÈ´Ù°í ÇÕ´Ï´Ù. °Ñ(Ç¥)³ª ¸·´ë ±×·¡ÇÁ´Â Çà ¼¼Æ®ÀÇ ¸®½º³Ê·Î¼ µî·ÏµÇ´Â °ÍÀ¸·Î º¯°æ ³»¿ëÀ» ¹Ý¿µÇϵµ·Ï ÀÚ½ÅÀÇ °»½ÅÀ» ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù
. °Ñ(Ç¥)³ª ¸·´ë ±×·¡ÇÁÀÇ Å¬·¡½º°¡ ¸®½º³Ê°¡ µÇ·Á¸é,
RowSetListener
ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ±× ÈÄ, À̰͵éÀ» CachedRowSet
°´Ã¼ÀÇ ¸®½º³ÊÀÇ ¸®½ºÆ®¿¡ Ãß°¡ÇÕ´Ï´Ù. ´ÙÀ½ÀÇ Äڵ带 ÂüÁ¶ÇϽʽÿÀ.
crs.addRowSetListener(table); crs.addRowSetListener(barGraph);Ä¿¼¸¦ À̵¿Çϰųª µ¥ÀÌÅ͸¦ º¯°æÇϰųª ÇÏ´Â
CachedRowSet
¸Þ¼µåµµ, µî·ÏÀ» ¸¶Ä£ ¸®½º³Ê·Î º¯°æÀ» ÅëÁöÇÕ´Ï´Ù. µû¶ó¼, crs
³»·Î º¯°æÀÌ ÀÖÀ¸¸é, table
¿Í barGraph
´Â ±× ÅëÁö¸¦ ¹Þ½À´Ï´Ù.
CachedRowSet
°´Ã¼´Â ÁÖ·Î ¾îÇø®ÄÉÀÌ¼Ç ÄÄÆÛ³ÍÆ®°£¿¡¼ÀÇ µ¥ÀÌÅÍÀÇ ¼ö¼ö¿¡ ÀÌ¿ëµË´Ï´Ù. CachedRowSet
°´Ã¼´Â Á÷·ÄÈ °¡´ÉÇØ¼, ¿¹¸¦ µé¾î
¼¹ö ȯ°æ¿¡¼ °¡µ¿ÁßÀÇ ¿£ÅÍÇÁ¶óÀÌÁî JavaBeans ÄÄÆÛ³ÍÆ®¿¡ ÀÇÇØ ½ÇÇàµÈ Äõ¸®ÀÇ °á°ú¸¦, Web ºê¶ó¿ìÀú·Î °¡µ¿ÁßÀÇ Å¬¶óÀÌ¾ðÆ®¿¡
³×Æ®¿öÅ© °æÀ¯·Î ¼Û½ÅÇϱâ À§Çؼ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù
.
¹ÌÁ¢¼ÓÀÇ CachedRowSet
°´Ã¼´Â
°°Àº µ¥ÀÌÅ͸¦ °¡Áö´Â ResultSet
°´Ã¼º¸´Ù ÄÄÆÑÆ®Çؼ, ÀÚ¿øÀÇ Á¦ÇÑÀ̳ª º¸¾È»óÀÇ ÀÌÀ¯¿¡ ÀÇÇØ JDBC µå¶óÀ̹ö¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ¾î·Á¿î PDA µîÀÇ thin Ŭ¶óÀÌ¾ðÆ®¿¡ÀÇ µ¥ÀÌÅÍ ¼Û½Å¿¡ ÃÖÀûÀÔ´Ï´Ù. ÀÌ¿Í °°ÀÌ, CachedRowSet
°´Ã¼¿¡¼´Â JDBC API¸¦ ¿ÏÀüÇÏ°Ô ±¸ÇöÇÏÁö ¾Ê¾Æµµ ÇàÀ» ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
CachedRowSet
°´Ã¼¿¡´Â ½ºÅ©·Ñ ±â´ÉÀ̳ª °»½Å ±â´ÉÀ» °¡ÁöÁö ¾Ê´Â ResultSet
°´Ã¼¿¡ ÀÌ·¯ÇÑ ±â´ÉÀ» Á¦°øÇÏ´Â ±â´Éµµ ÀÖ½À´Ï´Ù. DBMS°¡ ½ºÅ©·Ñ°ú °»½ÅÀÇ ±â´ÉÀ» ¿ÏÀüÇÏ°Ô Áö¿ø
ÇÏÁö ¾Ê´Â °æ¿ì´Â CachedRowSet
°´Ã¼¸¦ »ç¿ëÇØ, JDBC Å×Å©³î·¯Áö¸¦ »ç¿ë °¡´ÉÇÑ µå¶óÀ̹öÀÇ ±â´ÉÀ» Çâ»ó½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù. ½ºÅ©·Ñ ±â´ÉÀ» °¡ÁöÁö ¾Ê´Â Àбâ Àü¿ë
ÀÇ ResultSet
°´Ã¼¿¡ ½ºÅ©·Ñ ±â´É°ú °»½Å ±â´ÉÀ» °®°ÔÇÏ·Á¸é,
CachedRowSet
°´Ã¼¸¦ ÀÛ¼ºÇØ, ±× ResultSet
°´Ã¼ÀÇ µ¥ÀÌÅ͸¦ ÀоîµéÀÌ´Â °Í¸¸À¸·Î ³¡³³´Ï´Ù. ±¸Ã¼ÀûÀÎ ¿¹¿¡ ´ëÇØ¼´Â ´ÙÀ½ÀÇ ÄÚµåÀÇ ¹ßÃ鸦 ÂüÁ¶ÇϽʽÿÀ. ÀÌ ¿¹¿¡¼´Â stmt
´Â Statement
°´Ã¼¸¦ ³ªÅ¸³À´Ï´Ù.
ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEES"); CachedRowSetImpl crs = new CachedRowSetImpl(); crs.populate(rs);
rs
°´Ã¼ÀÇ °æ¿ì¿Í °°°Ô, crs
°´Ã¼¿¡
°Ñ(Ç¥) EMPLOYEES
µ¥ÀÌÅͰ¡ Ãß°¡µË´Ï´Ù. ´Ù¸¸, crs
Ä¿¼´Â Àü¹æ, ÈĹæ, ¶Ç´Â ƯÁ¤ÀÇ ÇàÀ¸·Î À̵¿ÇÒ ¼ö Àִµ¥ ´ëÇØ, rs
Ä¿¼´Â Àü¹æ ¹Û¿¡ À̵¿ÇÒ ¼ö ¾ø½À´Ï´Ù. ¶Ç, crs
¿¡ °»½Å ±â´ÉÀÌ Àִµ¥ ´ëÇØ, rs
¿¡´Â °»½Å ±â´ÉÀº ¾ø½À´Ï´Ù. À̰ÍÀº, CachedRowSet
°´Ã¼¿¡
½ºÅ©·Ñ ±â´É°ú °»½Å ±â´ÉÀÌ µðÆúÆ®·Î ÁغñµÇ¾î Àֱ⠶§¹®ÀÔ´Ï´Ù.
Áï, CachedRowSet
°´Ã¼´Â
µ¥ÀÌÅÍ ¼Ò½ºÀÇ ¿ÜºÎ¿¡¼ ij½¬µÇ´Â ¹ÌÁ¢¼ÓÀÇ ÇàÀÌ µË´Ï´Ù. »çÀÌÁî°¡ ÀÛ°í, Á÷·ÄÈ °¡´ÉÇØ¼, ȸ¼± °æÀ¯·Î °£´ÜÇÏ°Ô ¼Û½Å °¡´ÉÇÒ »Ó¸¸ ¾Æ´Ï¶ó, thin Ŭ¶óÀÌ¾ðÆ®¿¡ÀÇ µ¥ÀÌÅÍ ¼Û½Å¿¡µµ ÀûÇÕÇÕ´Ï´Ù. ´Ù¸¸, ¸Þ¸ð¸®³»¿¡ µ¿½Ã¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅÍ·®ÀÌ Á¤ÇØÁ® Àֱ⠶§¹®¿¡
CachedRowSet
°´Ã¼ÀÇ »çÀÌÁî´Â Á¦Çѵǰí ÀÖ½À´Ï´Ù.
CachedRowSet
Ŭ·¡½º¿¡´Â RDB ÀÌ¿ÜÀÇ ¼Ò½º·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ÃëµæÇØ, Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù°í ÇÏ´Â ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù. Çà ¼¼Æ®ÀÇ ¸®´õ¸¦ ±¸ÇöÇÏ´Â °ÍÀ¸·Î½á, ÀÓÀÇÀÇ °Ñ(Ç¥) Çü½ÄÀÇ µ¥ÀÌÅÍ ¼Ò½º (½ºÇÁ·¹µå½¬Æ®, Ç÷§ ÆÄÀÏÀ» Æ÷ÇÔÇÑ´Ù) Çà ¼¼Æ®ÀÇ µ¥ÀÌÅ͸¦ Àо, read ÇÒ ¼ö ÀÖ½À´Ï´Ù. CachedRowSet
°´Ã¼¿Í ±× ¸ÞŸµ¥ÀÌŸ´Â ¸ðµÎ Á¦·Î·ÎºÎÅÍ ÀÛ¼º °¡´ÉÇØ¼, Çà ¼¼Æ®ÀÇ ÆÑÅ丮·Î¼ ±â´ÉÇÏ´Â ÄÄÆÛ³ÍÆ®´Â ÀÌ ±â´ÉÀ» ÀÌ¿ëÇØ, ºñ SQL µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ Çà ¼¼Æ®¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ´ëºÎºÐÀÇ °æ¿ì, CachedRowSet
°´Ã¼´Â JDBC API¸¦ »ç¿ëÇØ SQL µ¥ÀÌŸº£À̽º·ÎºÎÅÍ ÃëµæÇÑ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÕ´Ï´Ù.
ResultSet
°´Ã¼·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ¾ò´Â Çà ¼¼Æ®´Â µ¥ÀÌŸº£À̽º Á¢¼ÓÀ» ÀÛ¼ºÇϱâ À§Çؼ ÇÊ¿äÇÑ ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Çà ¼¼Æ®°¡ DriverManager
±â´ÉÀ» »ç¿ëÇØ Á¢¼ÓÀ» ÀÛ¼ºÇÏ´Â °æ¿ì´Â ÀûÀýÇÑ µå¶óÀ̹ö¸¦ ½Äº°ÇÏ´Â JDBC URL
ÇÁ·ÎÆÛƼ¿Í »ç¿ëÀÚ
¸í°ú ÆÐ½º¿öµå¸¦ ÁöÁ¤ÇÏ´Â ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÇÑÆí, Çà ¼¼Æ®°¡ DataSource
°´Ã¼¸¦ »ç¿ëÇØ Á¢¼ÓÀ» ÀÛ¼ºÇÏ´Â °æ¿ì (ÀÌ ¹æ¹ýÀÌ Ãßõ µÈ´Ù)´Â JDBC URL
ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ´ë½Å¿¡
µ¥ÀÌÅÍ ¼Ò½ºÀÇ ³í¸®¸íÀÇ ÇÁ·ÎÆÛƼ¿Í »ç¿ëÀÚ
¸í ¹× ÆÐ½º¿öµåÀÇ ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÁÖ: DataSource
°´Ã¼¸¦ »ç¿ëÇØ Á¢¼ÓÀ» ÀÛ¼ºÇÏ´Â °æ¿ì´Â Java Naming and Directory InterfaceTM (JNDI) API¸¦ »ç¿ëÇÏ´Â ³×ÀÓ ¼ºñ½º¿¡
DataSource
°´Ã¼¸¦ µî·ÏÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. µî·ÏÀº º¸Åë, ½Ã½ºÅÛ °ü¸® Ã¥ÀÓÀÚ°¡ ½Ç½ÃÇÕ´Ï´Ù.
Çà ¼¼Æ®¿¡ µ¥ÀÌŸº£À̽ºÀÇ µ¥ÀÌÅ͸¦ ÀоîµéÀÌ·Á¸é,
Ä¿¸àµå ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ ÇÁ·ÎÆÛƼ´Â PreparedStatement
°´Ã¼¸¦ ³ªÅ¸³»´Â Äõ¸®ÀÔ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ
Äõ¸®´Â ¼³°è½Ã°¡ ¾Æ´Ï°í ½ÇÇà½Ã·Î ¼³Á¤µÇ´Â ÆÄ¶ó¹ÌÅÍ Ç÷¹À̽ºÈ¦´õ¸¦ °¡Áú ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Ç÷¹À̽ºÈ¦´õ ÆÄ¶ó¹ÌÅÍ¿¡ °ªÀ» ¼³Á¤Çϱâ À§ÇØ, Çà ¼¼Æ®´Â °¢ µ¥ÀÌÅÍÇüÀÇ °ªÀ» ¼³Á¤ÇÏ´Â ¼³Á¤ ¸Þ¼µå¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¼³Á¤ ¸Þ¼µå´Â PreparedStatement
ÀÎÅÍÆäÀ̽º¿¡ ÀÇÇØ Á¦°øµÇ´Â ¼³Á¤ ¸Þ¼µå¿Í ÀÚÁÖ ´à¾Ò½À´Ï´Ù.
´ÙÀ½ÀÇ ÄÚµåÀÇ ¹ßÃé´Â CachedRowSet
°´Ã¼ crs
¿¡ Ä¿¸àµå ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ÅøÀÌ ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÏ´Â °æ¿ì, ÀÌ Äڵ带 »ç¿ëÇÕ´Ï´Ù.
crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS" + "WHERE CREDIT_LIMIT > ? AND REGION = ? ");
Ä¿¸àµåÀÇ Ç÷¹À̽ºÈ¦´õ ÆÄ¶ó¹ÌÅÍÀÇ ¼³Á¤¿¡ »ç¿ëµÇ´Â °ªÀº, RowSet
°´Ã¼ÀÇ params
Çʵ忡
Vector
°´Ã¼·Î¼ Æ÷ÇԵ˴ϴÙ. CachedRowSet
Ŭ·¡½º´Â params
Çʵ峻ÀÇ ¿ä¼Ò¸¦ ¼³Á¤ÇÏ´Â ¼³Á¤ ¸Þ¼µå¼¼Æ®¸¦ Á¦°øÇÕ´Ï´Ù. ¾Æ·¡ÀÇ ÄÚµåÀÇ ¹ßÃé¿¡¼´Â ÀüÀÇ ¿¹ÀÇ Äõ¸®¿¡ Æ÷ÇԵǴ 2°³ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇÕ´Ï´Ù.
crs.setInt(1, 5000); crs.setString(2, "West");
params
Çʵ忡 2°³ÀÇ ¿ä¼Ò°¡ Ãß°¡µÇ¾ú½À´Ï´Ù. À̰͵éÀº °¢°¢, ¿ä¼Ò 2°³
ºÐÀÇ ±æÀÌÀÇ ¹è¿ÀÌ µË´Ï´Ù. ÃÖÃÊÀÇ ¿ä¼Ò´Â ÆÄ¶ó¹ÌÅÍ ¹øÈ£, 2¹øÂ°ÀÇ ¿ä¼Ò´Â ¼³Á¤ÇÏ´Â °ªÀ» ³ªÅ¸³À´Ï´Ù. ÀÌ °æ¿ì
params
ÃÖÃÊÀÇ ¿ä¼Ò´Â 1
, 5000
, 2¹øÂ°ÀÇ ¿ä¼Ò´Â 2
, "West"
°¡ µË´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº, execute
¸Þ¼µå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ÀÌ RowSet
°´Ã¼ÀÇ ¸®´õ¸¦ È£ÃâÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ
±× readData
¸Þ¼µå°¡ È£ÃâµË´Ï´Ù. ÀÌ ±¸Çö¿¡ Æ÷ÇԵǴ readData
´Â
params
³»ÀÇ °ªÀ» ÃëµæÇØ, À̰͵éÀ» »ç¿ëÇØ Ä¿¸àµåÀÇ Ç÷¹À̽ºÈ¦´õ ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇÕ´Ï´Ù. ¾Æ·¡ÀÇ ÄÚµåÀÇ ¹ßÃé¿¡¼´Â Connection
°´Ã¼ con
Ãëµæ ÈÄ¿¡
¸®´õ°¡ Ç÷¹À̽ºÈ¦´õ ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇÏ´Â ¼ø¼¸¦ ³ªÅ¸³À´Ï´Ù.
PreparedStatement pstmt = con.prepareStatement(crs.getCommand()); reader.decodeParams(); // decodeParams figures out which setter methods to use and does something // like the following: // for (i = 0; i < params.length; i++) { // pstmt.setObject(i + 1, params[i]); // }
ÀÌ ½ÃÁ¡¿¡¼
crs
Ä¿¸àµå´Â Äõ¸® "SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS WHERE CREDIT_LIMIT > 5000 AND REGION = "West"
°¡ µË´Ï´Ù. readData
¸Þ¼µå´Â ´ÙÀ½ÀÇ ÄÚµå·Î ÀÌ Ä¿¸àµå¸¦ ½ÇÇàÇÏ´Â °ÍÀ¸·Î½á, crs
¿¡ ÀÐÈ÷´Â rs
µ¥ÀÌÅ͸¦ ÃëµæÇÕ´Ï´Ù.
ResultSet rs = pstmt.executeQuery();
ÀüÀÇ ÄÚµåÀÇ ¹ßÃé¿¡¼´Â ¹èÈÄ¿¡¼ ÇàÇØÁö´Â 󸮿¡ ´ëÇØ ¼³¸íÇß½À´Ï´Ù. ÀÌ·¯ÇÑ ÄÚµå´Â ¾îÇø®ÄÉÀ̼dz»¿¡¼´Â ºñÇ¥½ÃÀ̸ç, readData
³ª decodeParams
µîÀÇ ¸Þ¼µå¸¦ È£ÃâÇÏÁö ¾Ê½À´Ï´Ù. À̰Ϳ¡ ´ëÇØ¼
¾Æ·¡ÀÇ ÄÚµåÀÇ ¹ßÃé´Â ¾îÇø®ÄÉÀ̼ÇÀÇ ½ÇÇà ³»¿ëÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ÀÌ Äڵ忡¼´Â Çà ¼¼Æ®ÀÇ Ä¿¸àµå¸¦ ¼³Á¤ÇØ, Ä¿¸àµåÀÇ ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇØ, Ä¿¸àµå¸¦ ½ÇÇàÇÕ´Ï´Ù. execute
¸Þ¼µå¸¦ È£ÃâÇÏ´Â °Í¸¸À¸·Îcrs
¿¡
¿ä±¸µÈ °Ñ(Ç¥) CUSTOMERS
µ¥ÀÌÅͰ¡ ÀÐÈü´Ï´Ù.
crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS" + "WHERE CREDIT_LIMIT > ? AND REGION = ? "); crs.setInt(1, 5000); crs.setString(2, "West"); crs.execute();
CachedRowSet
°´Ã¼´Â µ¥ÀÌÅ͸¦ ¸Þ¸ð¸®¿¡ Æ÷ÇÔÇϱâ À§ÇØ, ÇÑ ¹ø¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅÍÀÇ ¾çÀº »ç¿ë °¡´ÉÇÑ ¸Þ¸ð¸®ÀÇ ¾ç¿¡ ÀÇÇØ Á¤ÇØÁý´Ï´Ù. ÀÌ Á¦ÇÑÀ» ȸÇÇÇϱâ À§ÇØ, CachedRowSet
°´Ã¼¿¡¼´Â ResultSet
°´Ã¼·ÎºÎÅÍ ¡¸ÆäÀÌÁö¡¹¶ó°í ºÒ¸®´Â üũ·Î µ¥ÀÌÅ͸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µµ±¸¸¦ ÀÌ¿ëÇÏ·Á¸é,
¾îÇø®ÄÉÀ̼ÇÀ¸·ÎsetPageSize
¸Þ¼µå¸¦ »ç¿ëÇØ, ÆäÀÌÁö¿¡ Æ÷ÇÔÇÏ´Â Çà¼ö¸¦ ¼³Á¤ÇÕ´Ï´Ù. Áï, ÆäÀÌÁö »çÀÌÁ 5 ·Î ¼³Á¤ÇØ ÀÖ´Â °æ¿ì, µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ ÇÑ ¹ø¿¡ 5 ÇàÀÇ µ¥ÀÌÅÍÀÇ Ã¼Å©°¡ ÆäÄ¡ µË´Ï´Ù. ¶Ç, ¾îÇø®ÄÉÀ̼ǿ¡¼´Â ¿É¼ÇÀ¸·Î ÇÑ ¹ø¿¡ ÆäÄ¡ ÇÒ ¼ö ÀÖ´Â ÃÖ´ëÇà¼öµµ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÃÖ´ëÇà¼ö¸¦ 0 À¸·Î ¼³Á¤ÇßÀ» °æ¿ì, ¶Ç´Â ÃÖ´ëÇà¼ö¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â °æ¿ì, ÇÑ ¹ø¿¡ ÆäÄ¡ °¡´ÉÇÑ Çà¼öÀÇ Á¦ÇÑÀº ¾ø½À´Ï´Ù. ÇÁ·ÎÆÛƼÀÇ ¼³Á¤ ÈÄ, CachedRowSet
°´Ã¼¿¡
populate
¶Ç´Â execute
¸Þ¼µå¸¦ »ç¿ëÇØ, µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¾Æ·¡ÀÇ ÄÚµåÇà¿¡
populate
¸Þ¼µå¸¦ »ç¿ëÇÑ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ ¸Þ¼µå¿¡¼´Â ResultSet
ÇÚµé°ú ÇàÀÇ ÃëµæÀ» °³½ÃÇÏ´Â ResultSet
°´Ã¼³»ÀÇ ÇàÀÇ 2°³ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ÃëÇÕ´Ï´Ù.
CachedRowSet crs = new CachedRowSetImpl(); crs.setMaxRows(20); crs.setPageSize(4); crs.populate(rsHandle, 10);ÀÌ Äڵ带 ½ÇÇàÇϸé, crs¿¡ rsHandleÀÇ 10 Çà °ºÎÅÍ ½ÃÀ۵Ǵ 4 Çà ºÐÀÌ Æ÷ÇԵ˴ϴÙ.
´ÙÀ½ÀÇ ÄÚµåÀÇ ¹ßÃé¿¡ execute
¸Þ¼µå¸¦ »ç¿ëÇØ, CachedRowSet
°´Ã¼¿¡ Æ÷ÇÔÇÏ´Â ¿¹¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ ¸Þ¼µå´Â ÆÄ¶ó¹ÌÅͷμ Connection
°´Ã¼¸¦ ÃëÇÏ´Â °æ¿ì¶ó°í ÃëÇÏÁö ¾Ê´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ Äڵ忡¼´Â execute
¿¡ Connection
°´Ã¼ conHandle¸¦ °Ç³×ÁÖ°í ÀÖ½À´Ï´Ù.
´ÙÀ½ÀÇ ÄÚµåÀÇ ¹ßÃé¿Í »ó±âÀÇ Äڵ忡´Â 2°³ÀÇ Â÷À̰¡ ÀÖ½À´Ï´Ù. ¿ì¼±, setMaxRows
¸Þ¼µå¸¦ È£ÃâÇÏÁö ¾Ê±â ¶§¹®¿¡
crs¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â ÃÖ´ëÇà¼ö¿¡ Á¦ÇÑÀÌ ¾ø½À´Ï´Ù (crs¿¡´Â Ç×»ó, ¸Þ¸ð¸®³»¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅÍ·®ÀÇ Á¦ÇÑÀÌ ÃÖ¿ì¼±À¸·Î Á¸ÀçÇÏ´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä). 2 Á¡¸ñÀÇ Â÷ÀÌ´Â execute
¸Þ¼µå¿¡
ÇàÀÇ ÃëµæÀ» °³½ÃÇÏ´Â ResultSet
°´Ã¼³»·ÎºÎÅÍÀÇ Çà ¹øÈ£¸¦ °Ç³×ÁÙ ¼ö ¾ø´Â °ÍÀÔ´Ï´Ù. ÀÌ ¸Þ¼µå´Â Ç×»ó ¼±µÎÇàÀ¸·ÎºÎÅÍ °³½ÃÇÕ´Ï´Ù.
CachedRowSet crs = new CachedRowSetImpl(); crs.setPageSize(5); crs.execute(conHandle);ÀÌ Äڵ带 ½ÇÇàÇϸé, crs¿¡ ´ëÇÑ Ä¿¸àµå¿¡ ÀÇÇØ »ý¼ºµÈ
ResultSet
°´Ã¼·ÎºÎÅÍ 5 Çà ºÐÀÇ µ¥ÀÌÅͰ¡ crs¿¡ Æ÷ÇԵ˴ϴÙ. crsÀÇ ¶óÀÌÅÍ´Â conHandle¸¦ »ç¿ëÇØ µ¥ÀÌÅÍ ¼Ò½º¿¡ Á¢¼ÓÇØ, crs¿¡ ´ëÇØ¼ Ä¿¸àµå¸¦ ½ÇÇàÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ
¾îÇø®ÄÉÀ̼ÇÀº ´Ù¸¥ CachedRowSet
°´Ã¼ÀÇ µ¥ÀÌÅÍÀÇ Á¶ÀÛ°ú °°ÀÌ crsÀÇ µ¥ÀÌÅ͸¦ Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀ¸·Î ´ÙÀ½ÀÇ ÆäÀÌÁö (µ¥ÀÌÅÍÀÇ Ã¼Å©)¿¡ ¾×¼¼½º ÇÏ·Á¸é,
nextPage
¸Þ¼µå¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â »õ·Î¿î CachedRowSet
°´Ã¼¸¦ ÀÛ¼ºÇØ, °Å±â¿¡ ´ÙÀ½ÀÇ ÆäÀÌÁöÀÇ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, CachedRowSet
°´Ã¼ÀÇ Ä¿¸àµå°¡ 1000 Çà ºÐÀÇ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â ResultSet
°´Ã¼ rs¸¦ µ¹·ÁÁÖ¾ú´Ù°í ÇÕ´Ï´Ù. ÆäÀÌÁö »çÀÌÁî°¡ 100 À¸·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, nextPage
¸Þ¼µåÀÇ ÃÖÃÊÀÇ È£Ãâ·Îrs
¼±µÎÀÇ 100 ÇàÀ» Æ÷ÇÔÇÏ´Â CachedRowSet
°´Ã¼°¡ ÀÛ¼ºµË´Ï´Ù. ÀÌ ¼±µÎÀÇ 100 ÇàÀÇ µ¥ÀÌÅÍÀÇ Ã³¸®°¡ ³¡³ª¸é, ¾îÇø®ÄÉÀ̼ÇÀº ´Ù½Ã nextPage
¸Þ¼µå¸¦ È£ÃâÇØ, rs ·ÎºÎÅÍ ´ÙÀ½ÀÇ 100 ÇàÀ» Æ÷ÇÔÇÏ´Â ´Ù¸¥ CachedRowSet
°´Ã¼¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÃÖÃÊÀÇ CachedRowSet
°´Ã¼ÀÇ µ¥ÀÌÅÍ´Â 2¹øÂ°ÀÇ CachedRowSet
°´Ã¼ÀÇ µ¥ÀÌÅÍ·Î ¿Å°ÜÁö°í Àֱ⠶§¹®¿¡
¸Þ¸ð¸®³»¿¡ ³²¾Æ ÀÖÁö ¾Ê½À´Ï´Ù. nextPage
¸Þ¼µåÀÇ 10 ¹øÂ°ÀÇ È£Ãâ¿¡¼´Â 10 ¹øÂ°ÀÇ CachedRowSet
°´Ã¼¿¡ rs ·ÎºÎÅÍÀÇ ¸¶Áö¸· 100 ÇàÀÇ µ¥ÀÌÅͰ¡ Æ÷ÇԵǾî À̰͵éÀÌ ¸Þ¸ð¸®¿¡ Æ÷ÇԵ˴ϴÙ. Ç×»ó ¸Þ¸ð¸®¿¡´Â 1°³ÀÇ CachedRowSet
°´Ã¼ÀÇ µ¥ÀÌÅ͸¸ÀÌ Æ÷ÇÔµÇ°Ô µË´Ï´Ù.
nextPage
¸Þ¼µå´Â ÇöÀçÀÇ ÆäÀÌÁö°¡ ÇàÀÇ ¸¶Áö¸· ÆäÀÌÁö°¡ ¾Æ´Ñ µ¿¾ÈÀº true
¸¦ µ¹·ÁÁÖ°í, ±× ÀÌÈÄÀÇ ÆäÀÌÁö°¡ ¾ø¾îÁö¸é false
¸¦ ¸®ÅÏÇÕ´Ï´Ù. µû¶ó¼, ´ÙÀ½ÀÇ ÄÚµåÇà¿¡ ³ªÅ¸³»µµ·Ï, while
·çÇÁ·Î »ç¿ëÇϸé, ¸ðµç ÆäÀÌÁö¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
CachedRowSet crs = CachedRowSetImpl(); crs.setPageSize(100); crs.execute(conHandle);ÀÌ ÄÚµåÀÇ ¹ßÃ鸦 ½ÇÇàÇϸé, ¾îÇø®ÄÉÀ̼ÇÀº 1000 ÇàÀ» ¸ðµÎ traversal ÇÕ´Ï´Ù¸¸, ¸Þ¸ð¸®¿¡´Â ÇÑ ¹ø¿¡ 100 Çà±îÁö ¹Û¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.while(crs.next() { . . . // operate on first chunk of 100 rows in crs, row by row } while(crs.nextPage()) { while(crs.next()) { . . . // operate on the subsequent chunks (of 100 rows each) in crs, // row by row } }
CachedRowSet
ÀÎÅÍÆäÀ̽º´Â previousPage
¸Þ¼µåµµ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù. nextPage
¸Þ¼µå°¡ ResultSet
next
¸Þ¼µå¿¡ À¯»çÇϰí ÀÖ´Â °Í°ú °°ÀÌ, previousPage
¸Þ¼µå´Â ResultSet
previous
¸Þ¼µå¸¦ ´à¾Æ ÀÖ½À´Ï´Ù. nextPage
¸Þ¼µå¿Í °°°Ô, previousPage
´Â ÆäÀÌÁö »çÀÌÁî·Î¼ ¼³Á¤µÇ¾úÀ» »ÓÀÇ Çà¼ö¸¦ Æ÷ÇÔÇÏ´Â CachedRowSet
°´Ã¼¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ±× ¶§¹®¿¡
¿¹¸¦ µé¾î
»ó±âÀÇ ÄÚµåÀÇ ¹ßÃéÀÇ ¸¶Áö¸· while
·çÇÁ³»¿¡¼ previousPage
¸Þ¼µå¸¦ »ç¿ëÇØ, ¸¶Áö¸· ÆäÀÌÁö·ÎºÎÅÍ ¼±µÎÀÇ ÆäÀÌÁö±îÁö, ¹Ý´ë·Î ÆäÀÌÁö¸¦ À̵¿ÇÒ ¼ö ÀÖ½À´Ï´Ù
. previousPage
¸Þ¼µå´Â while
·çÇÁ·Î »ç¿ëÇÒ ¼ö ÀÖ´Â Á¡À¸·Î½á nextPage
¿Í
µµ ´à¾Ò½À´Ï´Ù. ´Ù¸¸, Àü¿¡ ´Ù¸¥ ÆäÀÌÁö°¡ Á¸ÀçÇÏ´Â µ¿¾È true
¸¦ µ¹·ÁÁÖ°í, ±× ÀÌÀüÀÇ ÆäÀÌÁö°¡ ¾ø¾îÁö¸é, false
¸¦ µ¹·ÁÁÖ´Â Á¡ÀÌ ´Ù¸¨´Ï´Ù.
´ÙÀ½ÀÇ ÄÚµåÀÇ ¹ßÃé¿¡ ³ªÅ¸³»µµ·Ï, previous
¸Þ¼µå´Â °¢ ÆäÀÌÁöÀÇ ¸¶Áö¸· ÇàÀÇ ¸»¹Ì¿¡ Ä¿¼¸¦ µÎ´Â °ÍÀ¸·Î °¢ ÆäÀÌÁöÀÇ ¸Ç ¸¶Áö¸· ÁٷκÎÅÍ ¼±µÎÇà±îÁö À̵¿ÇÕ´Ï´Ù. ȤÀº °¢ ÆäÀÌÁöÀÇ ¼±µÎÇàÀÇ Àü¿¡ Ä¿¼¸¦ µÎ¾î, while
·çÇÁ·Î next
¸Þ¼µå¸¦ »ç¿ëÇØ, °¢ ÆäÀÌÁöÀÇ ¼±µÎÇàÀ¸·ÎºÎÅÍ ¸Ç ¸¶Áö¸· ÁÙ±îÁö À̵¿ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
´ÙÀ½ÀÇ ÄÚµåÀÇ ¹ßÃé¿¡¼´Â »ó±âÀÇ ÄÚµåÀÇ ¹ßÃéÀÇ °è¼ÓÀ¸·Î 10 °³Â°ÀÇ CachedRowSet
°´Ã¼ÀÇ Ä¿¼°¡ ¸¶Áö¸· Çà¿¡ ÀÖÀ¸¸é °¡Á¤Çϰí ÀÖ½À´Ï´Ù. ÀÌ Äڵ忡¼´Â Ä¿¼¸¦ ¸Ç ¸¶Áö¸· ÁÙÀÇ µÚ·Î À̵¿Çϰí Àֱ⠶§¹®¿¡
previous
¸Þ¼µåÀÇ ÃÖÃÊÀÇ È£Ãâ·Î Ä¿¼¸¦ ¸Ç ¸¶Áö¸· ÁÙ¿¡ µÇµ¹¸³´Ï´Ù. ¸¶Áö¸· ÆäÀÌÁö (CachedRowSet
°´Ã¼ crs)ÀÇ ¸ðµç ÇàÀ» À̵¿Çϸé, ÄÚµå´Â while
·çÇÁ¿¡ µé¾î°¡ 9 ÆäÀÌÁö´«À¸·Î À̵¿ÇØ, ¿ª¹æÇâÀ¸·Î ÇàÀ» À̵¿ÇØ, 8 ÆäÀÌÁö´«À¸·Î À̵¿ÇØ, ¿ª¹æÇâÀ¸·Î ÇàÀ» À̵¿ÇØ, ¶È°°ÀÌÀÇÇØ ¼±µÎ ÆäÀÌÁöÀÇ ¼±µÎÇà±îÁö ³ª°©´Ï´Ù.
crs.afterLast(); while(crs.previous()) { . . . // navigate through the rows, last to first { while(crs.previousPage()) { crs.afterLast(); while(crs.previous()) { . . . // go from the last row to the first row of each page } }
ÇÊµå °³¿ä | |
---|---|
static boolean |
COMMIT_ON_ACCEPT_CHANGES
acceptChanges() ÀÇ È£Ãâ½Ã¿¡
CachedRowSet °´Ã¼ÀÇ SyncProvider ¿¡
º¯°æÀ» À§Å¹½Ãŵ´Ï´Ù. |
ÀÎÅÍÆäÀ̽º java.sql. ResultSet ·ÎºÎÅÍ »ó¼ÓµÈ Çʵå |
---|
CLOSE_CURSORS_AT_COMMIT,
CONCUR_READ_ONLY,
CONCUR_UPDATABLE,
FETCH_FORWARD,
FETCH_REVERSE,
FETCH_UNKNOWN,
HOLD_CURSORS_OVER_COMMIT,
TYPE_FORWARD_ONLY,
TYPE_SCROLL_INSENSITIVE,
TYPE_SCROLL_SENSITIVE |
¸Þ¼µå °³¿ä | |
---|---|
void |
acceptChanges ()
ÇàÀÇ °»½ÅÀ» ¼Û½ÅÇØ, ÀÌ CachedRowSet °´Ã¼¿¡ÀÇ º¯°æÀ» ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ »ðÀÔÇϰųª ºÎÇÏÀÇ µ¥ÀÌÅÍ
¼Ò½º·ÎºÎÅÍ »èÁ¦Çϰųª ÇÕ´Ï´Ù. |
void |
acceptChanges (Connection con)
ÁöÁ¤µÈ Connection °´Ã¼¸¦ »ç¿ëÇØ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ Á¢¼ÓÀ» È®¸³ÇØ, ¸ðµç ÇàÀÇ °»½ÅÀ» ¼Û½ÅÇØ, ÀÌ
CachedRowSet °´Ã¼¿¡ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ º¯°æÀ» »ðÀÔÇϰųª »èÁ¦Çϰųª ÇÕ´Ï´Ù. |
boolean |
columnUpdated (int idx)
ÀÌ CachedRowSet °´Ã¼ÀÇ ÇöÀçÀÇ ÀºÇà³»ÀÇ ÁöÁ¤µÈ ¿ÀÌ °»½ÅµÇ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ³ªÅ¸³À´Ï´Ù. |
boolean |
columnUpdated (String columnName)
ÀÌ CachedRowSet °´Ã¼ÀÇ ÇöÀçÀÇ ÀºÇà³»ÀÇ ÁöÁ¤µÈ ¿ÀÌ °»½ÅµÇ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ³ªÅ¸³À´Ï´Ù. |
void |
commit ()
CachedRowSet °´Ã¼ÀÇ SyncProvider ¿¡´Â ResultSet ÀÇ Connection °´Ã¼Àΰ¡ »ý¼ºÀÚ¿¡°Ô °Ç³×Áö´Â JDBC ÇÁ·ÎÆÛƼ°¡ Æ÷ÇԵ˴ϴÙ. |
CachedRowSet |
createCopy ()
ÀÌ CachedRowSet °´Ã¼ÀÇ µ¥ÀÌÅÍÀÇ µö º¹»çÀÎ
RowSet ¿À
ºêÁ¦Å©Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
CachedRowSet |
createCopyNoConstraints ()
ÀÌ CachedRowSet °´Ã¼ÀÇ µö Ä«ÇÇÀÌÁö¸¸, µ¶¸³Çϰí ÀÖ´Â CachedRowSet ¿À
ºêÁ¦Å©Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
CachedRowSet |
createCopySchema ()
ÀÌ CachedRowSet °´Ã¼ÀÇ ºñ¾îÀÖ´Â º¹»çÀÎ
CachedRowSet ¿À
ºêÁ¦Å©Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
RowSet |
createShared ()
ÀÌ CachedRowSet °´Ã¼¿Í °°Àº µ¥ÀÌÅÍ¿¡ÀÇÇØ ¹é¾÷ µÈ »õ·Î¿î RowSet ¿À
ºêÁ¦Å©Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
void |
execute (Connection conn)
µ¥ÀÌÅÍ ¼Ò½º°¡ µÇ´Â °á°ú ¼¼Æ®¸¦ »ý¼ºÇϱâ À§ÇÑ ÁöÁ¤ÀÇ Á¢¼ÓÀ» »ç¿ëÇØ, ÀÌ CachedRowSet °´Ã¼¿¡ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù. |
int[] |
getKeyColumns ()
ÀÌ CachedRowSet °´Ã¼ÀÇ ÇàÀ» ÀÏÀÇ¿¡ ½Äº°Çϴ Ű¸¦ ±¸¼ºÇÏ´Â ¿À» ³ªÅ¸³»´Â 1
°³ÀÌ»óÀÇ ¿¹øÈ£¸¦ Æ÷ÇÔÇÏ´Â ¹è¿À» ¸®ÅÏÇÕ´Ï´Ù. |
ResultSet |
getOriginal ()
ÀÌ CachedRowSet °´Ã¼ÀÇ ¿øÀÇ °ªÀ» Æ÷ÇÔÇÏ´Â ResultSet ¿ÀºêÁ¦
ÄíÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
ResultSet |
getOriginalRow ()
ÀÌ CachedRowSet °´Ã¼ÀÇ ÇöÀçÀÇ ÇุÀÇ ¿øÀÇ °ªÀ» Æ÷ÇÔÇÏ´Â ResultSet ¿À
ºêÁ¦Å©Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
int |
getPageSize ()
CachedRowSet °´Ã¼ÀÇ ÆäÀÌÁö »çÀÌÁ ¸®ÅÏÇÕ´Ï´Ù. |
RowSetWarning |
getRowSetWarnings ()
ÀÌ RowSet °´Ã¼¿¡ °üÇÑ È£Ãâ¿¡ ÀÇÇØ º¸°íµÇ´Â ÃÖÃÊÀÇ °æ°í¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
boolean |
getShowDeleted ()
ÇöÀçÀÇ Çà ¼¼Æ®³»ÀÇ »èÁ¦ÇàÀ» Ç¥½ÃÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean À» ÃëµæÇÕ´Ï´Ù. |
SyncProvider |
getSyncProvider ()
ÀÌ CachedRowSet °´Ã¼ÀÇ SyncProvider ±¸ÇöÀ» ÃëµæÇÕ´Ï´Ù. |
String |
getTableName ()
ÀÌ CachedRowSet °´Ã¼ÀÇ ÀÛ¼º¿¡ »ç¿ëµÈ °´Ã¼ (Å×À̺í)
ÀÇ ½Äº°ÀÚ¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
boolean |
nextPage ()
CachedRowSet ÀÇ ÇöÀçÀÇ ÆäÀÌÁö¸¦ ÁõºÐ ÇÕ´Ï´Ù. |
void |
populate (ResultSet data)
ÀÌ CachedRowSet °´Ã¼¿¡
ÁöÁ¤µÈ ResultSet °´Ã¼
ÀÇ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù. |
void |
populate (ResultSet rs,
int startRow)
ÀÌ CachedRowSet °´Ã¼·Î ÁöÁ¤µÈ ResultSet
°´Ã¼ÀÇ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù. |
boolean |
previousPage ()
CachedRowSet ÀÇ ÇöÀçÀÇ ÆäÀÌÁö¸¦ °¨ ºÐ ÇÕ´Ï´Ù. |
void |
release ()
ÀÌ CachedRowSet °´Ã¼ÀÇ ÇöÀçÀÇ ÄÁÅÙÃ÷¸¦ ÇØ¹æÇØ, µî·ÏÀ» ¸¶Ä£ ¸ðµç ¸®½º³Ê¿¡°Ô rowSetChanged ÀÌ
°ÜÀÌ»è¶ì¸¦ ¼Û½ÅÇÕ´Ï´Ù. |
void |
restoreOriginal ()
ÀÌ CachedRowSet °´Ã¼¸¦ ¿øÀÇ °ª (ÀüȸÀÇ º¯°æ ¼¼Æ®ÀÇ ÀüÀÇ °ª)¿¡ µÇµ¹¸³´Ï´Ù. |
void |
rollback ()
CachedRowSet °´Ã¼ÀÇ SyncProvider ¿¡´Â ¿øÀÇ ResultSet ÀÇ Connection °´Ã¼Àΰ¡ °Å±â¿¡ °Ç³×¹Þ´Â JDBC ÇÁ·ÎÆÛƼ°¡ Æ÷ÇԵ˴ϴÙ. |
void |
rollback (Savepoint s)
CachedRowSet °´Ã¼ÀÇ SyncProvider ¿¡´Â ¿øÀÇ ResultSet ÀÇ Connection °´Ã¼Àΰ¡ °Å±â¿¡ °Ç³×¹Þ´Â JDBC ÇÁ·ÎÆÛƼ°¡ Æ÷ÇԵ˴ϴÙ. |
void |
rowSetPopulated (RowSetEvent event,
int numRows)
µî·ÏÀÌ ³¡³ ¸®½º³Ê¿¡°Ô, ÁöÁ¤µÈ RowSetEvent °´Ã¼³»ÀÇ RowSet °´Ã¼°¡ ´Ù¼öÀÇ Ãß°¡ÇàÀ» ÀоîµéÀÎ °ÍÀ» ÅëÁöÇÕ´Ï´Ù. |
void |
setKeyColumns (int[] keys)
ÀÌ CachedRowSet °´Ã¼ÀÇ keyCols Çʵ忡
ÁöÁ¤µÈ ·Ä¹ø
È£ÀÇ ¹è¿ (ÀÌ CachedRowSet °´Ã¼³»ÀÇ ÇàÀ» ÀÏÀÇ¿¡ ½Äº°Çϴ Ű¸¦ ±¸¼ºÇÑ´Ù)À» ¼³Á¤ÇÕ´Ï´Ù. |
void |
setMetaData (RowSetMetaData md)
ÁöÁ¤µÈ RowSetMetaData °´Ã¼¸¦ »ç¿ëÇØ, CachedRowSet ¿Àºê
Á§Æ®ÀÇ ¸ÞŸµ¥ÀÌŸ¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
void |
setOriginalRow ()
ÀÌ CachedRowSet °´Ã¼ÀÇ ÇöÀçÀÇ ÇàÀ» ¿øÀÇ ÇàÀ¸·Î¼ ¼³Á¤ÇÕ´Ï´Ù. |
void |
setPageSize (int size)
CachedRowSet °´Ã¼ÀÇ ÆäÀÌÁö »çÀÌÁ ¼³Á¤ÇÕ´Ï´Ù. |
void |
setShowDeleted (boolean b)
showDeleted ÇÁ·ÎÆÛƼ¿¡
ÁöÁ¤µÈ boolean Ä¡¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
void |
setSyncProvider (String provider)
ÀÌ CachedRowSet °´Ã¼ÀÇ SyncProvider °´Ã¼·Î ÁöÁ¤
ÇÑ °´Ã¼¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
void |
setTableName (String tabName)
ÀÌ CachedRowSet °´Ã¼ÀÇ ÆÄ»ý¿øÀÇ Å×À̺íÀÇ ½Äº°ÀÚ¸¦, ÁöÁ¤ÀÇ Å×À̺í¸íÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. |
int |
size ()
ÀÌ CachedRowSet °´Ã¼³»ÀÇ Çà¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
Collection <? > |
toCollection ()
ÀÌ CachedRowSet °´Ã¼¸¦, ÀÌ CachedRowSet °´Ã¼
ÀÇ ¸ðµç µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â Collection °´Ã¼·Î º¯È¯ÇÕ´Ï´Ù. |
Collection <? > |
toCollection (int column)
ÀÌ CachedRowSet °´Ã¼³»ÀÇ ÁöÁ¤µÈ ¿À» Collection ¿Àºê
Á§Æ®·Î º¯È¯ÇÕ´Ï´Ù. |
Collection <? > |
toCollection (String column)
ÀÌ CachedRowSet °´Ã¼³»ÀÇ ÁöÁ¤µÈ ¿À» Collection
°´Ã¼·Î º¯È¯ÇÕ´Ï´Ù. |
void |
undoDelete ()
ÇöÀçÀÇ ÇàÀÇ »èÁ¦¸¦ Ãë¼ÒÇØ, ¸®½º³Ê·Î ÇàÀÌ º¯°æµÈ °ÍÀ» ÅëÁöÇÕ´Ï´Ù. |
void |
undoInsert ()
¸¸¾à ÇàÀÌ »ðÀÔµÈ »óÅÂÀ̸é, ÇöÀçÀÇ ÇàÀ» »èÁ¦ÇØ, ¸®½º³Ê·Î ÇàÀÌ º¯°æµÈ °ÍÀ» ÅëÁöÇÕ´Ï´Ù. |
void |
undoUpdate ()
¸¸¾à ÇàÀÌ º¯°æµÇ°í ÀÖÀ¸¸é, ÀüȸÀÇ °»½Å Á¶ÀÛÀ» ¹ÙÅÁÀ¸·Î µÇµ¹¸³´Ï´Ù. |
ÀÎÅÍÆäÀ̽º javax.sql.rowset. Joinable ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
---|
getMatchColumnIndexes,
getMatchColumnNames,
setMatchColumn,
setMatchColumn,
setMatchColumn,
setMatchColumn,
unsetMatchColumn,
unsetMatchColumn,
unsetMatchColumn,
unsetMatchColumn |
ÇʵåÀÇ »ó¼¼ |
---|
static final boolean COMMIT_ON_ACCEPT_CHANGES
acceptChanges()
ÀÇ È£Ãâ½Ã¿¡
CachedRowSet
°´Ã¼ÀÇ SyncProvider
¿¡
º¯°æÀ» À§Å¹½Ãŵ´Ï´Ù. false ·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, º¯°æ ³»¿ëÀº, CachedRowSet
ÀΟÆä½ºÆ®¶õÀÚÅ©
¼ð ¸Þ¼µå°¡ ºÒ·Á °¥ ¶§±îÁöÀ§Å¹µÇÁö ¾Ê½À´Ï´Ù.
commit()
,
rollback()
,
Á¤¼ö Çʵ尪 ¸Þ¼µåÀÇ »ó¼¼ |
---|
void populate(ResultSet data) throws SQLException
CachedRowSet
°´Ã¼¿¡
ÁöÁ¤µÈ ResultSet
°´Ã¼
ÀÇ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù.
ÀÌ ¸Þ¼µå´Â ¾îÇø®ÄÉÀ̼ÇÀÌ ¿ÀÇ ResultSet
°´Ã¼¿¡ Á¢¼ÓÇϰí ÀÖÀ» ¶§ execute
¸Þ¼µåÀÇ ´ëü·Î¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. »õ·Î¿î Á¢¼ÓÀ» ¿¾î ÀÌ CachedRowSet
°´Ã¼ÀÇ Ä¿¸àµå¸¦ Àç½ÇÇàÇÒ Çʿ䰡 ¾ø´Â Á¡À¸·Î½á, populate
¸Þ¼µå´Â ÆÄ¶ó¹ÌÅ͸¦ ÃëÇÏÁö ¾Ê´Â execute
¸Þ¼µåº¸´Ù È¿À²ÀûÀÔ´Ï´Ù. ¶Ç, populate
¸Þ¼µå¸¦ »ç¿ëÇÏ´Â °ÍÀº, ResultSet
°´Ã¼¸¦ ÃëÇÏ´Â execute
¸Þ¼µåº¸´Ù Æí¸®ÇÕ´Ï´Ù.
data
- ÀÌ CachedRowSet
°´Ã¼¿¡ ÀÐÈ÷´Â µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ResultSet
°´Ã¼
SQLException
- null
ÀÇ ResultSet
°´Ã¼°¡ Á¦°øµÇ¾úÀ» °æ¿ì, ¶Ç´Â ÀÌ CachedRowSet
°´Ã¼°¡ °ü·ÃµÈ ResultSetMetaData
°´Ã¼¸¦ ÃëµæÇÒ ¼ö ¾ø´Â °æ¿ìexecute(java.sql.Connection)
,
ResultSet
,
ResultSetMetaData
void execute(Connection conn) throws SQLException
CachedRowSet
°´Ã¼¿¡ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ÀÛ¼ºÇÏ´Â ¸ðµç µ¥ÀÌŸº£À̽º Á¢¼ÓÀ» Ŭ·Î¿ìÁî ÇÏ´Â °ÍÀ¸·Î µ¥ÀÌÅÍ ¼Ò½º·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àо°í ÀÖÀ» ¶§¿Í µ¥ÀÌÅÍ ¼Ò½º¿¡
µ¥ÀÌÅ͸¦ Ãâ·ÂÇϰí ÀÖÀ» ¶§ ÀÌ¿Ü, ÀÌ CachedRowSet
°´Ã¼°¡ ¹ÌÁ¢¼Ó »óÅÂÀÎ °ÍÀ» º¸ÁõÇÕ´Ï´Ù.
ÀÌ CachedRowSet
°´Ã¼ÀÇ ¸®´õ´Â Çà ¼¼Æ®ÀÇ Ä¿¸àµå¸¦ ½ÇÇàÇØ, °á°úÀûÀ¸·Î »ý¼ºµÇ´Â ResultSet
°´Ã¼·ÎºÎÅÍ ÀÌ
CachedRowSet
°´Ã¼¿¡ µ¥ÀÌÅ͸¦ ÀоîµéÀ̱â À§Çؼ
conn¸¦ »ç¿ëÇØ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ Á¢¼ÓÀ» È®¸³ÇÕ´Ï´Ù. ¶Ç, ÀÌ ¸Þ¼µå´Â ÀÌ CachedRowSet
°´Ã¼ÀÇ »ý¼º ÈÄ¿¡
conn¸¦ ´Ý½À´Ï´Ù.
±¸ÇöÀÇ »ý¼º ÈÄ¿¡ ÀÌ ¸Þ¼µå¸¦ È£ÃâÇϸé, ÄÁÅÙÃ÷¿Í ¸ÞŸµ¥ÀÌŸ°¡ ¸®¼Â µË´Ï´Ù. ¶Ç, acceptChanges
¸Þ¼µå¸¦ È£ÃâÇØ, ¾ÆÁ÷ Àû¿ëÇϰí ÀÖÁö ¾Ê´Â °»½ÅÀ» È®Á¤ÇÑµÚ ÀÌ ¸Þ¼µå¸¦ È£ÃâÇϸé, °»½Å ³»¿ëÀº ¾ø¾îÁý´Ï´Ù.
conn
- À¯È¿ÇÑ ÇÁ·Î
ÆÄƼ¸¦ °¡Áö´Â Ç¥ÁØ JDBC Connection
°´Ã¼
SQLException
- ¹«
È¿°úÀÎ Connection
°´Ã¼°¡ Á¦°øµÇ¾úÀ» °æ¿ì, ¶Ç´Â µ¥ÀÌÅÍ ¼Ò½º¿ÍÀÇ Á¢¼ÓÀÇ È®¸³½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpopulate(java.sql.ResultSet)
,
Connection
void acceptChanges() throws SyncProviderException
CachedRowSet
°´Ã¼¿¡ÀÇ º¯°æÀ» ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ »ðÀÔÇϰųª ºÎÇÏÀÇ µ¥ÀÌÅÍ
¼Ò½º·ÎºÎÅÍ »èÁ¦Çϰųª ÇÕ´Ï´Ù.
ÀÌ ¸Þ¼µå´Â ÀÌ CachedRowSet
°´Ã¼ÀÇ ¶óÀÌÅͻ󿡼 ºÒ·Á°¡
¹èÈÄ¿¡¼ 󸮸¦ ½Ç½ÃÇÕ´Ï´Ù. Ç¥ÁØ CachedRowSet
±¸ÇöÀº, SyncFactory
½Ì±Û ÅæÀ» »ç¿ëÇØ SyncProvider
ÀνºÅϽº¸¦ ¾ò´Â °ÍÀ¸·Î½á, RowSetWriter
°´Ã¼ (¶óÀÌÅÍ)¸¦ Á¦°øÇÕ´Ï´Ù. ¶óÀÌÅÍ´Â ÀÌ CachedRowSet
°´Ã¼¿¡ÀÇ º¯°æÀ» µ¥ÀÌÅÍ ¼Ò½º¿¡ ¹Ý¼ÛÇÏ·Á°í ÇÕ´Ï´Ù.
acceptChanges
¸Þ¼µå°¡ Á¤»óÀûÀ¸·Î ½ÇÇàµÇ¾úÀ» °æ¿ì, µ¥ÀÌÅÍ ¼Ò½º¿¡ º¯°æÀÌ Ãâ·ÂÇØÁ® ÇöÀçÀÇ ÇàÀÇ °ªÀÌ ¿øÀÇ ÇàÀÇ °ªÀ¸·Î º¯°æµË´Ï´Ù.
»ç¿ëÇÏ´Â SyncProvider
±¸ÇöÀÇ µ¿±â ·¹º§¿¡ÀÇÇØ ¶óÀÌÅÍ´Â ¿øÀÇ °ª°ú µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ °ªÀ» ºñ±³ÇØ, °æÇÕÀÇ Ã¼Å©¸¦ ½Ç½ÃÇÕ´Ï´Ù. °æÇÕÀÌ °ËÃâµÇ¾úÀ» °æ¿ì, ¿¹¸¦ µé¾î RIOptimisticProvider
±¸ÇöÀº, SyncProviderException
À»
Throw ÇØ, µ¥ÀÌÅÍ ¼Ò½º¿¡´Â ¾Æ¹«°Íµµ Ãâ·ÂÇÏÁö ¾Ê½À´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀº, SyncProviderException
°´Ã¼¸¦ ijġ ÇØ, ÀÌ °´Ã¼¿¡ Æ÷ÇԵǴ SyncResolver
°´Ã¼¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù
. SyncResolver
°´Ã¼´Â Çà ¸¶´Ù °æÇÕÀ» À϶÷ ÇØ, ÇöÀç Á¸ÀçÇÏ´Â °æÇÕÀ» ÇØ°áÇÒ ¶§±îÁö »õ·Î¿î °æÇÕÀÌ ¹ß»ýÇÏÁö ¾Ê°Ô, µ¥ÀÌÅÍ ¼Ò½º¸¦ Àá±Þ´Ï´Ù. °Ô´Ù°¡ °³°³ÀÇ °æÇÕ¿¡ ´ëÇØ¼
°æÇÕÀ» °Ë»çÇØ, µ¥ÀÌÅÍ ¼Ò½º¿¡ ³²±â´Â °ªÀ» ¼³Á¤ÇÏ´Â ¸Þ¼µå¸¦ Á¦°øÇÕ´Ï´Ù. ¸ðµç °æÇÕÀÌ ÇØ°áµÇ¸é, ¾îÇø®ÄÉÀ̼ÇÀº ÀçÂ÷ acceptChanges
¸Þ¼µå¸¦ È£ÃâÇØ, ÇØ°áµÈ °ªÀ» µ¥ÀÌÅÍ ¼Ò½º¿¡ Ãâ·ÂÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ ¸ðµç °ªÀÌ À̹Ì
Áö¼ÓÄ¡ÀÎ °æ¿ì, acceptChanges
¸Þ¼µå´Â ¾Æ¹«°Íµµ ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù.
ÀϺÎÀÇ ÇÁ·Î¹ÙÀÌ´õ ±¸ÇöÀº °æÇÕÀ» ¸·±â À§Çؼ ¶ôÀ» »ç¿ëÇÕ´Ï´Ù. ÀÌ °æ¿ì
acceptChanges
¸Þ¼µå¸¦ È£ÃâÇßÀ» ¶§, Writer¿¡
ÇÑ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ º¯°æÀÇ Ãâ·ÂÀº ¹Ýµå½Ã ¼º°øÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â updateRow
¸Þ¼µå, insertRow
¸Þ¼µå, ¶Ç´Â deleteRow
¸Þ¼µåÀÇ È£Ãâ ÈÄ Áï½Ã È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, ¸ðµç º¯°æÀÌ ¿Ï·áÇØ, 1°³
¸¸ Á¢¼ÓÀ» È®¸³Çϸé ÁÁÀº »óÅ·ΠȣÃâÇÏ´Â ÆíÀÌ È¿À²ÀûÀÔ´Ï´Ù.
ÁÖ: acceptChanges()
¸Þ¼µå´Â COMMIT_ON_ACCEPT_CHANGES
ÇÏÁö¸¸ true ·Î ¼³Á¤µÇ¾î ÀÖ´ÂÁö¸¦ È®ÀÎÇÕ´Ï´Ù. true
(À¸)·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, µ¿±â³»ÀÇ ¸ðµç °»½ÅÀÌ µ¥ÀÌÅÍ ¼Ò½º¿¡ À§Å¹µË´Ï´Ù. ±× ¿ÜÀÇ °æ¿ì, ¾îÇø®ÄÉÀ̼ÇÀº, commit()
¸Þ¼µå³ª rollback()
¸Þ¼µå¸¦ ¸í½ÃÀûÀ¸·Î È£ÃâÇÒÇʿ䰡 ÀÖ½À´Ï´Ù.
SQLException
- Ä«
¼ÖÀÌ »ðÀÔÇà¿¡ ÀÖ´Â °æ¿ì
SyncProviderException
- ¹è
¾Æ·¡ÀÇ µ¿±â ÇÁ·Î¹ÙÀÌ´õÀÇ ¶óÀÌÅͰ¡ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ °»½ÅÀÇ Ãâ·ÂÀ» ½ÇÆÐÇßÀ» °æ¿ìacceptChanges(java.sql.Connection)
,
RowSetWriter
,
SyncFactory
,
SyncProvider
,
SyncProviderException
,
SyncResolver
void acceptChanges(Connection con) throws SyncProviderException
Connection
°´Ã¼¸¦ »ç¿ëÇØ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ Á¢¼ÓÀ» È®¸³ÇØ, ¸ðµç ÇàÀÇ °»½ÅÀ» ¼Û½ÅÇØ, ÀÌ
CachedRowSet
°´Ã¼¿¡ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ º¯°æÀ» »ðÀÔÇϰųª »èÁ¦Çϰųª ÇÕ´Ï´Ù.
ÀÌÁ¦(À̹Ì
) ÇÑÆíÀÇ acceptChanges
¸Þ¼µå´Â RowSet
°´Ã¼³»¿¡ À̹Ì
Á¤Àǵǰí ÀÖ´Â Connection
°´Ã¼ (Ãʱ⠻ý¼º½Ã¿¡ »ç¿ëµÇ´Â Á¢¼Ó)¸¦ »ç¿ëÇϹǷΠÁ¢¼ÓÀ» °Ç³×¹ÞÁö ¾Ê½À´Ï´Ù.
ÀÌ Çü½ÄÀÇ acceptChanges
¸Þ¼µå´Â Àμö¸¦ ÃëÇÏÁö ¾Ê´Â Çü½Ä°ú ÀÚÁÖ ´à½À´Ï´Ù¸¸, ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º°¡ JDBC
µ¥ÀÌÅÍ ¼Ò½ºÀÎ °æ¿ì ¹Û¿¡ »ç¿ëÇÒ ¼ö ¾ø´Â Á¡À¸·Î½á, ±× ¿ÜÀÇ Çü½Ä°ú´Â ´Ù¸¨´Ï´Ù. SyncProvider
´Â
CachedRowSet
°´Ã¼°¡ Á¤»óÀûÀ¸·Î µ¿±â µÇµµ·Ï, °»½ÅµÈ Connection
ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇØ RowSetWriter
±¸¼ºÀ» ¸®¼Â ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
acceptChanges
¸Þ¼µå°¡ Á¤»óÀûÀ¸·Î ½ÇÇàµÇ¾úÀ» °æ¿ì, µ¥ÀÌÅÍ ¼Ò½º¿¡ º¯°æÀÌ Ãâ·ÂÇØÁ® ÇöÀçÀÇ ÇàÀÇ °ªÀÌ ¿øÀÇ ÇàÀÇ °ªÀ¸·Î º¯°æµË´Ï´Ù.
»ç¿ëÇÏ´Â SyncProvider
±¸ÇöÀÇ µ¿±â ·¹º§¿¡ÀÇÇØ ¶óÀÌÅÍ´Â ¿øÀÇ °ª°ú µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ °ªÀ» ºñ±³ÇØ, °æÇÕÀÇ Ã¼Å©¸¦ ½Ç½ÃÇÕ´Ï´Ù. °æÇÕÀÌ °ËÃâµÇ¾úÀ» °æ¿ì, ¿¹¸¦ µé¾î RIOptimisticProvider
±¸ÇöÀº, SyncProviderException
À»
Throw ÇØ, µ¥ÀÌÅÍ ¼Ò½º¿¡´Â ¾Æ¹«°Íµµ Ãâ·ÂÇÏÁö ¾Ê½À´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀº, SyncProviderException
°´Ã¼¸¦ ijġ ÇØ, ÀÌ °´Ã¼¿¡ Æ÷ÇԵǴ SyncResolver
°´Ã¼¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù
. SyncResolver
°´Ã¼´Â Çà ¸¶´Ù °æÇÕÀ» À϶÷ ÇØ, ÇöÀç Á¸ÀçÇÏ´Â °æÇÕÀ» ÇØ°áÇÒ ¶§±îÁö »õ·Î¿î °æÇÕÀÌ ¹ß»ýÇÏÁö ¾Ê°Ô, µ¥ÀÌÅÍ ¼Ò½º¸¦ Àá±Þ´Ï´Ù. °Ô´Ù°¡ °³°³ÀÇ °æÇÕ¿¡ ´ëÇØ¼
°æÇÕÀ» °Ë»çÇØ, µ¥ÀÌÅÍ ¼Ò½º¿¡ ³²±â´Â °ªÀ» ¼³Á¤ÇÏ´Â ¸Þ¼µå¸¦ Á¦°øÇÕ´Ï´Ù. ¸ðµç °æÇÕÀÌ ÇØ°áµÇ¸é, ¾îÇø®ÄÉÀ̼ÇÀº ÀçÂ÷ acceptChanges
¸Þ¼µå¸¦ È£ÃâÇØ, ÇØ°áµÈ °ªÀ» µ¥ÀÌÅÍ ¼Ò½º¿¡ Ãâ·ÂÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ ¸ðµç °ªÀÌ À̹Ì
Áö¼ÓÄ¡ÀÎ °æ¿ì, acceptChanges
¸Þ¼µå´Â ¾Æ¹«°Íµµ ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù.
ÀϺÎÀÇ ÇÁ·Î¹ÙÀÌ´õ ±¸ÇöÀº °æÇÕÀ» ¸·±â À§Çؼ ¶ôÀ» »ç¿ëÇÕ´Ï´Ù. ÀÌ °æ¿ì
acceptChanges
¸Þ¼µå¸¦ È£ÃâÇßÀ» ¶§, Writer¿¡
ÇÑ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ º¯°æÀÇ Ãâ·ÂÀº ¹Ýµå½Ã ¼º°øÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â updateRow
¸Þ¼µå, insertRow
¸Þ¼µå, ¶Ç´Â deleteRow
¸Þ¼µåÀÇ È£Ãâ ÈÄ Áï½Ã È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, ¸ðµç º¯°æÀÌ ¿Ï·áÇØ, 1°³
¸¸ Á¢¼ÓÀ» È®¸³Çϸé ÁÁÀº »óÅ·ΠȣÃâÇÏ´Â ÆíÀÌ È¿À²ÀûÀÔ´Ï´Ù.
ÁÖ: acceptChanges()
¸Þ¼µå´Â COMMIT_ON_ACCEPT_CHANGES
ÇÏÁö¸¸ true ·Î ¼³Á¤µÇ¾î ÀÖ´ÂÁö¸¦ ÆÇ´ÜÇÕ´Ï´Ù. true
(À¸)·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, µ¿±â³»ÀÇ ¸ðµç °»½ÅÀÌ µ¥ÀÌÅÍ ¼Ò½º¿¡ À§Å¹µË´Ï´Ù. falseÀÎ °æ¿ì, ¾îÇø®ÄÉÀ̼ÇÀº, commit
¸Þ¼µå³ª rollback
¸Þ¼µå¸¦ ¸í½ÃÀûÀ¸·Î È£ÃâÇÒÇʿ䰡 ÀÖ½À´Ï´Ù.
con
- Ç¥ÁØ
JDBC Connection
°´Ã¼
SQLException
- Ä«
¼ÖÀÌ »ðÀÔÇà¿¡ ÀÖ´Â °æ¿ì
SyncProviderException
- ¹è
¾Æ·¡ÀÇ µ¿±â ÇÁ·Î¹ÙÀÌ´õÀÇ ¶óÀÌÅͰ¡ µ¥ÀÌÅÍ ¼Ò½º¿¡ÀÇ °»½ÅÀÇ Ãâ·ÂÀ» ½ÇÆÐÇßÀ» °æ¿ìacceptChanges()
,
RowSetWriter
,
SyncFactory
,
SyncProvider
,
SyncProviderException
,
SyncResolver
void restoreOriginal() throws SQLException
CachedRowSet
°´Ã¼¸¦ ¿øÀÇ °ª (ÀüȸÀÇ º¯°æ ¼¼Æ®ÀÇ ÀüÀÇ °ª)¿¡ µÇµ¹¸³´Ï´Ù. Çà ¼¼Æ®°¡ º¯°æµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì³ª, º¯°æ ¼¼Æ®°¡ 1°³
¹Û¿¡ ¾ø´Â °æ¿ì´Â ÀÌ CachedRowSet
¿Àºê
Á§Æ®¿¡ ÀÐÈù °ªÀÌ ¿øÀÇ °ªÀÌ µË´Ï´Ù. ±× ¿ÜÀÇ °æ¿ì´Â ÇöÀçÀÇ °ªÀÇ Á÷ÀüÀ¸·Î ¼³Á¤µÇ¾î ÀÖ´ø °ªÀÌ ¿øÀÇ °ªÀÌ µË´Ï´Ù.
ÀÌ ¸Þ¼µå°¡ ºÒ·Á °¬À» °æ¿ì, CachedRowSet
±¸ÇöÀº ÇöÀçÀÇ Çà ¼¼Æ® ÀνºÅϽº¿¡ÀÇ ¸ðµç °»½Å, »ðÀÔ ¹× »èÁ¦¸¦ ÀÌÀüÀÇ °ªÀ¸·Î ¿Å°Ü³õÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. °Ô´Ù°¡ Ä¿¼¸¦ ÃÖÃÊÀÇ Çà¿¡ µÇµ¹·Á, rowSetChanged
À̺¥Æ®¸¦ Æ®¸®°ÅÇØ, µî·ÏÀ» ¸¶Ä£ ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁö¸¦ º¸³¾ Çʿ䰡 ÀÖ½À´Ï´Ù.
SQLException
-¿Í
ÀÇ CachedRowSet
°´Ã¼ÀÇ ÇöÀçÀÇ °ªÀ» ÀÌÀüÀÇ °ª¿¡ µÇµ¹¸®°í ÀÖ´Â µ¿¾È¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìRowSetListener.rowSetChanged(javax.sql.RowSetEvent)
void release() throws SQLException
CachedRowSet
°´Ã¼ÀÇ ÇöÀçÀÇ ÄÁÅÙÃ÷¸¦ ÇØ¹æÇØ, µî·ÏÀ» ¸¶Ä£ ¸ðµç ¸®½º³Ê¿¡°Ô rowSetChanged
ÀÌ
°ÜÀÌ»è¶ì¸¦ ¼Û½ÅÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå¸¦ È£ÃâÇϸé, ¾ÆÁ÷ Àû¿ëµÇÁö ¾ÊÀº °»½ÅÀº ¸ðµÎ ÆÄ±âµÇ¾î Çà ¼¼Æ®ÀÇ ÇàÀÌ ¸ðµÎ »èÁ¦µË´Ï´Ù. ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿ÍÀÇ ´ëÈ´Â ÇàÇØÁöÁö ¾Ê±â ¶§¹®¿¡
Çà ¼¼Æ®ÀÇ ÄÁÅÙÃ÷, ¸ÞŸµ¥ÀÌŸ, ÄÁÅÙÃ÷ÀÇ °»½ÅÀ» º¹¿øÇÒ ¼ö ¾ø½À´Ï´Ù.
ÀÌ CachedRowSet
°´Ã¼´Â ÄÁÅÙÃ÷¿Í ±× °»½ÅÀÌ ¿ÏÀüÇÏ°Ô ¼Ò°ÅµÉ ¶§±îÁö ¶ô µË´Ï´Ù. µû¶ó¼, ÀÌ RowSet
°´Ã¼¿¡ÀÇ ÂüÁ¶¸¦ Æ÷ÇÔÇÏ´Â ±× ¿ÜÀÇ ÄÄÆÛ³ÍÆ®¿¡
ÇÑ ´õƼ µ¶ÇØ´Â ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù. ¶Ç, ÀÌ CachedRowSet
°´Ã¼¸¦ Àо´Â ¸ðµç ÄÄÆÛ³ÍÆ®°¡ µ¶Çظ¦ ¿Ï·áÇÒ ¶§±îÁö, ÄÁÅÙÃ÷¸¦ ÇØ¹æÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ CachedRowSet
°´Ã¼ÀÇ µ¿ÀÛÀº, rowSetChanged
À̺¥Æ®°¡ Æ®¸®°ÅµÈµÚ Á¤»óÀûÀÎ »óÅ¿¡ µ¹¾Æ¿É´Ï´Ù.
JDBC ÇÁ·ÎÆÛƼ¿Í Synchronization SPI ÇÁ·ÎÆÛƼ¸¦ Æ÷ÇÔÇÑ ¸ÞŸµ¥ÀÌŸ´Â Àå·¡ »ç¿ëÇϱâ À§Çؼ º¸°ü À¯ÁöµË´Ï´Ù. command
ÇÁ·ÎÆÛƼµîÀÇ ÇÁ·ÎÆÛƼ´Â ÀÌ CachedRowSet
°´Ã¼ÀÇ »ý¼º¿øÀÇ µ¥ÀÌÅÍ ¼Ò½º¿¡ °ü·ÃÁöÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.
close
¸Þ¼µå´Â ¸ðµç Çà ¼¼Æ®¸¦ º¹¿ø °¡´ÉÀ¸·Î ÇØ, °¡ºñÁö Ä÷ºÅÍ¿¡ Çà ¼¼Æ®ÀÇ Java VM
ÀÚ¿øÀ» Çã¿ëÇÕ´Ï´Ù¸¸, ÀÌ ¸Þ¼µå´Â Çà ¼¼Æ®¸¦ ºñ¿ó´Ï´Ù.
SQLException
-¿Í
ÀÇ CachedRowSet
°´Ã¼ÀÇ ÄÁÅÙÃ÷ÀÇ Ç÷¡½Ã½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìRowSetListener.rowSetChanged(javax.sql.RowSetEvent)
,
ResultSet.close()
void undoDelete() throws SQLException
°Ô´Ù°¡ º¹¼öÀÇ ÇàÀÇ »èÁ¦¸¦ Ãë¼ÒÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì´Â ´ÙÀ½°ú °°Àº Ä¿¼ À§Ä¡ Á¦¾î ¸Þ¼µå¸¦ »ç¿ëÇØ, Ä¿¼ÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
CachedRowSet.absolute
CachedRowSet.first
CachedRowSet.last
SQLException
- (1)
ÇöÀçÀÇ ÇàÀÌ »èÁ¦µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, (2) Ä¿¼°¡ »ðÀÔÇà, ÃÖÃÊÀÇ ÇàÀÇ Àü, ¶Ç´Â ¸Ç ¸¶Áö¸· ÁÙÀÇ µÚ¿¡ ÀÖ´Â °æ¿ìundoInsert()
,
ResultSet.cancelRowUpdates()
void undoInsert() throws SQLException
°Ô´Ù°¡ º¹¼öÀÇ ÇàÀÇ »ðÀÔÀ» Ãë¼ÒÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì´Â ´ÙÀ½°ú °°Àº Ä¿¼ À§Ä¡ Á¦¾î ¸Þ¼µå¸¦ »ç¿ëÇØ, Ä¿¼ÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
CachedRowSet.absolute
CachedRowSet.first
CachedRowSet.last
SQLException
- (1)
ÇöÀçÀÇ ÇàÀÌ »ðÀԵǾî ÀÖÁö ¾ÊÀº °æ¿ì, (2) Ä¿¼°¡ ÃÖÃÊÀÇ ÇàÀÇ Àü, ¸Ç ¸¶Áö¸· ÁÙÀÇµÚ ¶Ç´Â »ðÀÔÇà¿¡ ÀÖ´Â °æ¿ìundoDelete()
,
ResultSet.cancelRowUpdates()
void undoUpdate() throws SQLException
acceptChanges
)
¶Ç´Â »ý¼ºÀÇ Á÷Àü »óÅ¿¡ µ¹¾Æ¿Àµµ·Ï, ¸ðµç ¿ÀÇ °»½ÅÀ» ¹ÙÅÁÀ¸·Î µÇµ¹¸³´Ï´Ù. ÀÌ ¸Þ¼µå´Â »ðÀÔÇàÀÇ °»½ÅÁß¿¡µµ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù
.
undoUpdate
SQLException
- Ä¿¼°¡ ÀÌ CachedRowSet
°´Ã¼ÀÇ ÃÖÃÊÀÇ ÇàÀÇ Àü ¶Ç´Â ¸¶Áö¸· ÇàÀÇ µÚ¿¡ ÀÖ´Â °æ¿ìundoDelete()
,
undoInsert()
,
ResultSet.cancelRowUpdates()
boolean columnUpdated(int idx) throws SQLException
CachedRowSet
°´Ã¼ÀÇ ÇöÀçÀÇ ÀºÇà³»ÀÇ ÁöÁ¤µÈ ¿ÀÌ °»½ÅµÇ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ³ªÅ¸³À´Ï´Ù.
idx
- °»½ÅÀÇ Ã¼
Äí¸¦ ½Ç½ÃÇÏ´Â ¿À» ³ªÅ¸³»´Â int
true
, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
SQLException
- Ä«
¼ÖÀÌ »ðÀÔÇà, ÃÖÃÊÀÇ ÇàÀÇ Àü, ¶Ç´Â ¸Ç ¸¶Áö¸· ÁÙÀÇ µÚ¿¡ ÀÖ´Â °æ¿ìDatabaseMetaData.updatesAreDetected(int)
boolean columnUpdated(String columnName) throws SQLException
CachedRowSet
°´Ã¼ÀÇ ÇöÀçÀÇ ÀºÇà³»ÀÇ ÁöÁ¤µÈ ¿ÀÌ °»½ÅµÇ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ³ªÅ¸³À´Ï´Ù.
columnName
- °»
½ÅÀÇ Ã¼Å©¸¦ ½Ç½ÃÇÏ´Â ¿ÀÇ À̸§À» ÁöÁ¤ÇÏ´Â String
°´Ã¼
true
, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
SQLException
- Ä«
¼ÖÀÌ »ðÀÔÇà, ÃÖÃÊÀÇ ÇàÀÇ Àü, ¶Ç´Â ¸Ç ¸¶Áö¸· ÁÙÀÇ µÚ¿¡ ÀÖ´Â °æ¿ìDatabaseMetaData.updatesAreDetected(int)
Collection <? > toCollection() throws SQLException
CachedRowSet
°´Ã¼¸¦, ÀÌ CachedRowSet
°´Ã¼
ÀÇ ¸ðµç µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â Collection
°´Ã¼·Î º¯È¯ÇÕ´Ï´Ù. Collection
ÈÄ
·¹ÀÓ¿öÅ©ÀÇ Ã߻󼺿¡ÀÇÇØ ±¸ÇöÀº ÀÌ Collection
°´Ã¼¸¦ ¾î´À Á¤µµ ÀÚÀ¯·Ó°Ô Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù
. °¢
ÇàÀº ¹ü¿ëÀûÀÎ Collection
±¸ÇöÀΰ¡ ¶Ç´Â TreeMap
°´Ã¼³ª Vector
¿À
ºêÁ¦Å©Æ®µîÀÌ Æ¯¼öÇÑ Collection
±¸ÇöÀÇ ¾î´À ÂÊÀÎÁö·Î ¿ÏÀüÇÏ°Ô Ç¥ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. SQL NULL
¿
°ªÀº Java ÇÁ·Î±×·¥ ¾ð¾î·Î null
·Î¼ Ç¥ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
CachedRowSet
ÀÎÅÍÆäÀ̽ºÀÇ Ç¥ÁØÀûÀÎ ·¹ÆÛ·±½º ±¸Çö¿¡¼´Â Çà ¼¼Æ®¿¡ TreeMap
°´Ã¼¸¦ »ç¿ëÇØ, °¢ ÇàÀÇ °ªÀ» Vector
°´Ã¼¿¡ Æ÷ÇÔÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ±¸ÇöÀ¸·Î¿Í °°ÀÌ Ã³¸®ÇÏ´Â °ÍÀÌ »óÁ¤µË´Ï´Ù.
TreeMap
ÇüÅÂÀÇ Ä÷º¼Ç¿¡ÀÇÇØ ŰÀÇ Å¬·¡½ºÀÇ º»·¡ÀÇ ¼ø¼¿¡ µû¶ó, ¸ÊÀÌ ½Â¼øÀ¸·Î ¼ÒÆ® µË´Ï´Ù. °¢ Ű´Â RowSet
°´Ã¼ÀÇ 1 Çà¿¡ ´ëÀÀÇÏ´Â Vector
°´Ã¼¸¦ ÂüÁ¶ÇÕ´Ï´Ù. µû¶ó¼, °¢ Vector
°´Ã¼ÀÇ »çÀÌÁî´Â RowSet
°´Ã¼³»ÀÇ ·Ä¼ö¿¡ Á¤È®ÇÏ°Ô ÀÏÄ¡ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. TreeMap
Ä÷º¼ÇÀ¸·Î »ç¿ëÇϴ Ű´Â ±¸Çö ¸¶´Ù °áÁ¤ÇÕ´Ï´Ù. ±¸Çö¿¡¼´Â RowSet
°´Ã¼ ÀÚü, ¶Ç´Â ºÎÇÏÀÇ SQL
µ¥ÀÌÅÍ¿¡ À̹Ì
¼³Á¤µÇ¾î Àִ Ű¿¡ÀÇÇØ ³»ºÎÀÇ RowSet
°Ñ(Ç¥) ±¸Á¶³»ÀÇ »ç¿ë °¡´ÉÇÑ ¼¼Æ® ۸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù
.
CachedRowSet
°´Ã¼ÀÇ °¢ ÇàÀÇ °ªÀ» Æ÷ÇÔÇÏ´Â Collection
°´Ã¼
SQLException
- ÄÚ
·¹Å©¼ÇÀÇ »ý¼º½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìtoCollection(int)
,
toCollection(String)
Collection <? > toCollection(int column) throws SQLException
CachedRowSet
°´Ã¼³»ÀÇ ÁöÁ¤µÈ ¿À» Collection
¿Àºê
Á§Æ®·Î º¯È¯ÇÕ´Ï´Ù. Collection
üÁ¦ÀÇ Ã߻󼺿¡ÀÇÇØ ±¸ÇöÀº ÀÌ Collection
¿À
ºêÁ¦Å©Æ®¸¦ ¾î´À Á¤µµ ÀÚÀ¯·Ó°Ô Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù
. °¢ ·ÄÄ¡´Â ¹ü¿ëÀûÀÎ Collection
±¸ÇöÀΰ¡ ¶Ç´Â Vector
¿À
ºêÁ¦Å©Æ®µîÀÌ Æ¯¼öÇÑ Collection
±¸ÇöÀÇ ¾î´À ÂÊÀÎÁö·Î ¿ÏÀüÇÏ°Ô Ç¥ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. SQL NULL
¿
°ªÀº Java ÇÁ·Î±×·¥ ¾ð¾î·Î null
·Î¼ Ç¥ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
Ç¥ÁØÀûÀÎ ·¹ÆÛ·±½º ±¸Çö¿¡¼´Â Vector
°´Ã¼¸¦ »ç¿ëÇØ, ·ÄÄ¡¸¦ Æ÷ÇÔÇÕ´Ï´Ù¸¸, ´ëºÎºÐÀÇ ±¸ÇöÀ¸·Î¿Í °°ÀÌ Ã³¸®ÇÏ´Â °ÍÀÌ »óÁ¤µË´Ï´Ù. Vector
°´Ã¼¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â »çÀÌÁ ÀÌ CachedRowSet
°´Ã¼ÀÇ Çà¼ö¿Í Á¤È®ÇÏ°Ô ÀÏÄ¡½Ãų Çʿ䰡 ÀÖ½À´Ï´Ù.
column
- Ä¡¸¦ Collection
°´Ã¼·Î Ç¥ÇöÇÏ´Â ¿À» ³ªÅ¸³»´Â int
CachedRowSet
°´Ã¼ÀÇ ÁöÁ¤µÈ ¿¿¡ Æ÷ÇÔµÈ °ªÀ» Æ÷ÇÔÇÑ Collection
°´Ã¼
SQLException
- ÄÚ
·¹Å©¼ÇÀÇ »ý¼º½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ¹«È¿ÀÎ ¿ ID°¡ Á¦°øµÇ¾úÀ» °æ¿ìtoCollection()
,
toCollection(String)
Collection <? > toCollection(String column) throws SQLException
ÀÌ CachedRowSet
°´Ã¼³»ÀÇ ÁöÁ¤µÈ ¿À» Collection
°´Ã¼·Î º¯È¯ÇÕ´Ï´Ù. Collection
üÁ¦ÀÇ Ã߻󼺿¡ÀÇÇØ ±¸ÇöÀº ÀÌ Collection
°´Ã¼¸¦ ¾î´À Á¤µµ ÀÚÀ¯·Ó°Ô Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù
. °¢ ·ÄÄ¡´Â ¹ü¿ëÀûÀÎ Collection
±¸ÇöÀΰ¡ ¶Ç´Â Vector
°´Ã¼µîÀÌ Æ¯¼öÇÑ Collection
±¸ÇöÀÇ ¾î´À ÂÊÀÎÁö·Î ¿ÏÀüÇÏ°Ô Ç¥ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. SQL NULL
·ÄÄ¡´Â Java ÇÁ·Î±×·¥ ¾ð¾î·Î null
·Î
¼ Ç¥ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
Ç¥ÁØÀûÀÎ ·¹ÆÛ·±½º ±¸Çö¿¡¼´Â Vector
°´Ã¼¸¦ »ç¿ëÇØ, ·ÄÄ¡¸¦ Æ÷ÇÔÇÕ´Ï´Ù¸¸, ´ëºÎºÐÀÇ ±¸ÇöÀ¸·Î¿Í °°ÀÌ Ã³¸®ÇÏ´Â °ÍÀÌ »óÁ¤µË´Ï´Ù. Vector
°´Ã¼¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â »çÀÌÁ ÀÌ CachedRowSet
°´Ã¼ÀÇ Çà¼ö¿Í Á¤È®ÇÏ°Ô ÀÏÄ¡½Ãų Çʿ䰡 ÀÖ½À´Ï´Ù.
column
- ÄÚ·¹Å©
¼ðÀ¸·Î Ç¥ÇöµÇ´Â °ªÀ» °¡Áö´Â ¿ÀÇ À̸§À» ÁöÁ¤ÇÏ´Â String
°´Ã¼
CachedRowSet
°´Ã¼ÀÇ ÁöÁ¤µÈ ¿¿¡ Æ÷ÇÔµÈ °ªÀ» Æ÷ÇÔÇÑ Collection
°´Ã¼
SQLException
- ÄÚ
·¹Å©¼ÇÀÇ »ý¼º½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ¹«È¿ÀÎ ¿ ID°¡ Á¦°øµÇ¾úÀ» °æ¿ìtoCollection()
,
toCollection(int)
SyncProvider getSyncProvider() throws SQLException
CachedRowSet
°´Ã¼ÀÇ SyncProvider
±¸ÇöÀ» ÃëµæÇÕ´Ï´Ù.
Çà ¼¼Æ®´Â ÀÌ ¸Þ¼µå¸¦ ³»ºÎ¿¡¼ »ç¿ëÇØ, Çà ¼¼Æ®¿Í µ¥ÀÌÅÍ ¼Ò½º°£ÀÇ Àо ¶Ç´Â Ãâ·ÂÁ¶ÀÛÀ» Æ®¸®°ÅÇÕ´Ï´Ù. ¿¹¸¦ µé¾î
Çà ¼¼Æ®´Â µ¥ÀÌÅ͸¦ °Ý
³³ Çϱâ À§ÇÑ, SyncProvider
·ÎºÎÅÍ Çà ¼¼Æ® ¸®´õ (RowSetReader
¿ÀºêÁ¦Å©
Æ®)ÀÇ ÇÚµéÀ» ÃëµæÇØ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
RowSetReader rowsetReader = null;rowsetReader°¡ Çà ¼¼Æ® ±¸Çö³»ÀÇ private ÀÎ ¾×¼¼½º °¡´É ÇʵåÀÌ´Ù°í Çϸé, ¾îÇø®ÄÉÀ̼ÇÀÌ
SyncProvider provider =
SyncFactory.getInstance("javax.sql.rowset.provider.RIOptimisticProvider");
if (provider instanceof RIOptimisticProvider) {
rowsetReader = provider.getRowSetReader();
}
execute
¸Þ
¼Úµå¸¦ È£ÃâÇϸé, ÀÌ ¸Þ¼µå´Â ¸®´õÀÇ readData
¸Þ¼µå¸¦ È£ÃâÇØ, RowSet
¿À
ºêÁ¦Å©Æ®¿¡ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÕ´Ï´Ù.
rowsetReader.readData((RowSetInternal) this);
°Ô´Ù°¡ ¾îÇø®ÄÉÀ̼ÇÀº ÀÌ ¸Þ¼µå·ÎºÎÅÍ ¸®ÅϵÈ
SyncProvider
°´Ã¼¸¦ »ç¿ëÇØ, º¥´õ, ¹öÀü, ÇÁ·Î¹ÙÀÌ´õ ID, µ¿±âÀÇ ±×·¹À̵å, ÇöÀç ¼³Á¤µÇ¾î ÀÖ´Â ¶ôµîÀÇ SyncProvider
°´Ã¼¿¡ °üÇÑ Á¤º¸¸¦ µ¹·ÁÁÖ´Â ¸Þ¼µå¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù
.
SyncProvider
°´Ã¼, ¶Ç´Â ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â µðÆúÆ®ÀÇ ÇÁ·Î¹ÙÀÌ´õ
SQLException
- SyncProvider
°´Ã¼¸¦ µ¹·ÁÁÙ ¶§ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìsetSyncProvider(java.lang.String)
void setSyncProvider(String provider) throws SQLException
CachedRowSet
°´Ã¼ÀÇ SyncProvider
°´Ã¼·Î ÁöÁ¤
ÇÑ °´Ã¼¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå·ÎSyncProvider
°´Ã¼¸¦ ¸®¼Â ÇÒ ¼ö ÀÖ½À´Ï´Ù.
CachedRowSet
±¸ÇöÀº Ç×»ó ÀÌ¿ë °¡´ÉÇÑ SyncProvider
µµ±¸
·Î ÀνºÅϽºÈÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù¸¸, SyncProvider
°´Ã¼ÀÇ ¸®¼Â°¡ ¹Ù¶÷Á÷ÇÑ, ¶Ç´Â ÇÊ¿äÇÏ°Ô µÇ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î
¾îÇø®ÄÉÀ̼ÇÀ¸·Î ´çºÐ°£Àº µðÆúÆ®ÀÇ SyncProvider
°´Ã¼¸¦ »ç¿ëÇØ µÎ¾î, ³ªÁß¿¡ ÃÖ±Ù ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µÈ, º¸´Ù ÇÊ¿äÇÏ°Ô ÀÌ·ç¾îÁö´Â ÇÁ·Î¹ÙÀÌ´õ¸¦ ¼±ÅÃÇØ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù
.
SyncProvider
°´Ã¼¸¦ ¸®¼Â Çϸé, RowSet
°´Ã¼´Â SyncFactory
·Î
ºÎÅÍ »õ·Î¿î SyncProvider
±¸ÇöÀ» ¿ä±¸ÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ
ÀÌÀüÀÇ ¸ðµç Á¢¼Ó°ú ¿øÀÇ µ¥ÀÌÅÍ ¼Ò½º¿ÍÀÇ °ü°è¸¦ ¸®¼Â ÇØ, ¹ÌÁ¢¼ÓÀÇ Çà ¼¼Æ®ÀÇ µ¿±â µ¿ÀÛÀ» Å«ÆøÀ¸·Î º¯°æÀÏ??.
provider
- SyncProvider
±¸ÇöÀÇ ¿ÏÀü ¼ö½Ä Ŭ·¡½º¸íÀ» ÁöÁ¤ÇÏ´Â String
°´Ã¼
SQLException
- SyncProvider
±¸ÇöÀÇ ¸®¼ÂÁß¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìgetSyncProvider()
int size()
CachedRowSet
°´Ã¼³»ÀÇ Çà¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù.
void setMetaData(RowSetMetaData md) throws SQLException
RowSetMetaData
°´Ã¼¸¦ »ç¿ëÇØ, CachedRowSet
¿Àºê
Á§Æ®ÀÇ ¸ÞŸµ¥ÀÌŸ¸¦ ¼³Á¤ÇÕ´Ï´Ù. RowSetReader
°´Ã¼´Â Çà ¼¼Æ®ÀÇ ÄÁÅÙÃ÷¸¦ Àо ¶§¿¡
RowSetMetaData
¿À
ºêÁ¦Å©Æ®¸¦ »ý¼ºÇØ, RowSetMetaData
±¸Çö³»ÀÇ ¸Þ¼µå¸¦ »ç¿ëÇØ À̰ÍÀ» ÃʱâÈÇÕ´Ï´Ù. ·¹ÆÛ·±½º ±¸Çö¿¡¼´Â RowSetMetaDataImpl
Äí
¶ó½º¸¦ »ç¿ëÇÕ´Ï´Ù. ¸®´õ°¡ Çà ¼¼Æ®ÀÇ ÄÁÅÙÃ÷ÀÇ µ¶Çظ¦ ¿Ï·áÇϸé, ÀÌ ¸Þ¼µå°¡ ³»ºÎ¿¡¼ ºÒ·Á°¡
RowSetMetaData
¿À
ºêÁ¦Å©Æ®°¡ Çà ¼¼Æ®¿¡°Ô °Ç³×Áý´Ï´Ù.
md
- ÀÌ CachedRowSet
°´Ã¼ÀÇ ¿¿¡ °üÇÑ ¸ÞŸµ¥ÀÌŸ¸¦ Æ÷ÇÔÇÏ´Â RowSetMetaData
°´Ã¼
SQLException
- Çà
¼¼Æ®¿¡ ¹«È¿ÀÎ ¸ÞŸµ¥ÀÌŸ°¡ Á¦°øµÇ¾úÀ» °æ¿ìResultSet getOriginal() throws SQLException
CachedRowSet
°´Ã¼ÀÇ ¿øÀÇ °ªÀ» Æ÷ÇÔÇÏ´Â ResultSet
¿ÀºêÁ¦
ÄíÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
ResultSet
°´Ã¼ÀÇ Ä¿¼´Â ¼±µÎÇàÀÇ Àü¿¡ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù. °Ô´Ù°¡ ¸®ÅϵÈ
ResultSet
°´Ã¼´Â ´ÙÀ½ÀÇ ÇÁ·ÎÆÛƼ¸¦ °¡Áú Çʿ䰡 ÀÖ½À´Ï´Ù.
RowSet
°´Ã¼ÀÇ ¿øÀÇ °ªÀº ºÎÇÏÀÇ µ¥ÀÌÅÍ ¼Ò½º¿Í ¸¶Áö¸· µ¿±âÀÇ ¾Õ¿¡ Æ÷ÇԵǰí ÀÖ´ø °ªÀÔ´Ï´Ù. µ¿±â°¡ ¾ø¾ú´ø °æ¿ì, ¿øÀÇ °ªÀº, RowSet
°´Ã¼¿¡ Æ÷ÇÔµÈ °ªÀÌ µË´Ï´Ù. ÀÌ ¸Þ¼µå´Â ¾îÇø®ÄÉÀ̼ÇÀÌ acceptChanges
¸Þ¼µå¸¦ È£ÃâÇØ, SyncProvider
°´Ã¼°¡ °æÇÕÀ» È®ÀÎÇϵµ·Ï ±¸ÇöµÇ°í ÀÖ´Â °æ¿ì¿¡
³»ºÎ¿¡¼ È£ÃâÇÕ´Ï´Ù. ÀÌ °æ¿ì
¶óÀÌÅÍ´Â ¿øÀÇ °ª°ú µ¥ÀÌÅÍ ¼Ò½º³»ÀÇ ÇöÀçÀÇ °ªÀ» ºñ±³ÇØ, °æÇÕ¸¦ È®ÀÎÇÕ´Ï´Ù.
CachedRowSet
°´Ã¼ÀÇ ¿øÀÇ °ªÀ» Æ÷ÇÔÇÏ´Â ResultSet
°´Ã¼
SQLException
- ResultSet
°´Ã¼ÀÇ »ý¼º½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìResultSet getOriginalRow() throws SQLException
CachedRowSet
°´Ã¼ÀÇ ÇöÀçÀÇ ÇุÀÇ ¿øÀÇ °ªÀ» Æ÷ÇÔÇÏ´Â ResultSet
¿À
ºêÁ¦Å©Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
ResultSet
°´Ã¼ÀÇ Ä¿¼´Â ¼±µÎÇàÀÇ Àü¿¡ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù. °Ô´Ù°¡ ¸®ÅϵÈ
ResultSet
°´Ã¼´Â ´ÙÀ½ÀÇ ÇÁ·ÎÆÛƼ¸¦ °¡Áú Çʿ䰡 ÀÖ½À´Ï´Ù.
SQLException
- ÇöÀçÇàÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ìsetOriginalRow()
void setOriginalRow() throws SQLException
CachedRowSet
°´Ã¼ÀÇ ÇöÀçÀÇ ÇàÀ» ¿øÀÇ ÇàÀ¸·Î¼ ¼³Á¤ÇÕ´Ï´Ù.
ÀÌ ¸Þ¼µå´Â ÇöÀçÀÇ ÇàÀÇ º¯°æµÈ °ªÀÌ µ¥ÀÌÅÍ ¼Ò½º¿Í µ¿±â µÈ µÚ¿¡ ³»ºÎ¿¡¼ È£ÃâÇÕ´Ï´Ù. ÇöÀçÀÇ ÇàÀº »ðÀÔ, »èÁ¦, ¶Ç´Â °»½ÅÀ¸·Î¼ ÅÂ±× ºÙÀ̰í ÇØ (ÀÌ)¶ó°í À־ ¾ÈµË´Ï´Ù.
setOriginalRow
È£ÃâÀº Ãë¼ÒÇÒ ¼ö ¾ø½À´Ï´Ù.
SQLException
- ÇöÀçÇàÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì, ¶Ç´Â ¿øÀÇ ÇàÀÇ ÄÁÅÙÃ÷ÀÇ ¸®¼Â½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìgetOriginalRow()
String getTableName() throws SQLException
CachedRowSet
°´Ã¼ÀÇ ÀÛ¼º¿¡ »ç¿ëµÈ °´Ã¼ (Å×À̺í)
ÀÇ ½Äº°ÀÚ¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ À̸§Àº ¹Ýº¹ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸§ÀÇ ¼³Á¤ ȸ¼ö³ª, Ç¥ÁØ ±¸ÇöÀÌ ÀÌÀüÀÇ Å×À̺í¸íÀ» ÃßÀûÇÒ Çʿ䰡 ÀÖÀ»Áö ¾î¶³Áö¿¡ ´ëÇØ¼´Â »ç¾ç¿¡
¹ãÁ¦ÇÑÀº ¾ø½À´Ï´Ù.
CachedRowSet
°´Ã¼ÀÇ µ¥ÀÌÅÍÀÇ ¼Ò½ºÀÎ Å×À̺í¸íÀ» ÁöÁ¤ÇÏ´Â String
°´Ã¼, ¶Ç´Â Å×À̺íÀÇ À̸§À» ¼³Á¤Çϰí ÀÖÁö ¾Ê´Â °æ¿ì´Â null
SQLException
- Å×À̺í¸íÀ» µ¹·ÁÁÙ ¶§ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìResultSetMetaData.getTableName(int)
void setTableName(String tabName) throws SQLException
CachedRowSet
°´Ã¼ÀÇ ÆÄ»ý¿øÀÇ Å×À̺íÀÇ ½Äº°ÀÚ¸¦, ÁöÁ¤ÀÇ Å×À̺í¸íÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. ¶óÀÌÅÍ´Â µ¿±â½Ã¿¡
ÀÌ À̸§À» »ç¿ëÇØ, µ¥ÀÌÅÍ ¼Ò½ºÀÇ °ª°ú CachedRowSet
°´Ã¼ÀÇ °ªÀ» ºñ±³ÇÒ ¶§¿¡ »ç¿ëÇÏ´Â Å×ÀÌ
ºÒÀ» ÆÇ´ÜÇÕ´Ï´Ù. Å×À̺íÀÇ ½Äº°ÀÚ´Â ÀÌ CachedRowSet
°´Ã¼·ÎºÎÅÍ º¯°æµÈ °ªÀ» Ãâ·ÂÇÏ´Â Àå¼Òµµ °¡¸®ÄÑ.
ÀÌ CachedRowSet
°´Ã¼ÀÇ ±¸Çö¿¡¼´Â ³»ºÎÀûÀ¸·Î RowSetMetaDataImpl
°´Ã¼¿¡ À̸§À» Ãëµæ½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù.
tabName
- ÀÌ
CachedRowSet
°´Ã¼°¡ ÆÄ»ýÇÑ Å×À̺íÀ» ½Äº°ÇÏ´Â String
°´Ã¼. null
Àº ºÒ°¡ ºñ¾îÀִ ij¸¯ÅÍ ¶óÀÎÀº °¡´É
SQLException
- Å×ÀÌ
ºÒÀÇ À̸§ºÎ·Î ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â tabName°¡ null
ÀÎ °æ¿ìRowSetMetaData.setTableName(int, java.lang.String)
,
RowSetWriter
,
SyncProvider
int[] getKeyColumns() throws SQLException
CachedRowSet
°´Ã¼ÀÇ ÇàÀ» ÀÏÀÇ¿¡ ½Äº°Çϴ Ű¸¦ ±¸¼ºÇÏ´Â ¿À» ³ªÅ¸³»´Â 1
°³ÀÌ»óÀÇ ¿¹øÈ£¸¦ Æ÷ÇÔÇÏ´Â ¹è¿À» ¸®ÅÏÇÕ´Ï´Ù.
CachedRowSet
°´Ã¼ÀÇ ÇàÀÇ ÁÖ۸¦ ±¸¼ºÇÏ´Â ¿À» ³ªÅ¸³»´Â ¿¹øÈ£¸¦ Æ÷ÇÔÇÏ´Â ¹è¿. ÁÖ۸¦ Ç¥ÇöÇÏ´Â ¿ÀÌ ¾ø´Â °æ¿ì, ÀÌ ¹è¿Àº ºñ¿î´Ù
SQLException
-¿Í
ÀÇ CachedRowSet
°´Ã¼°¡ ºñ¾îÀÖ´Â °æ¿ìsetKeyColumns(int[])
,
Joinable.getMatchColumnIndexes()
,
Joinable.getMatchColumnNames()
void setKeyColumns(int[] keys) throws SQLException
CachedRowSet
°´Ã¼ÀÇ keyCols
Çʵ忡
ÁöÁ¤µÈ ·Ä¹ø
È£ÀÇ ¹è¿ (ÀÌ CachedRowSet
°´Ã¼³»ÀÇ ÇàÀ» ÀÏÀÇ¿¡ ½Äº°Çϴ Ű¸¦ ±¸¼ºÇÑ´Ù)À» ¼³Á¤ÇÕ´Ï´Ù.
CachedRowSet
°´Ã¼°¡ JoinRowSet
°´Ã¼¿¡ Æ÷ÇԵǴ °æ¿ì, Ű¿·Î¼ ÁöÁ¤µÈ ¿ÀÌ ÀÏÄ¡¿ÀÌ µÇ¸é, ÀÌ ¸Þ¼µå·Î Á¤ÀÇµÈ Å°¿Í »ý¼ºµÈ Á¦¾àÀº º¸°ü À¯ÁöµË´Ï´Ù.
keys
- ÀÌ CachedRowSet
°´Ã¼ÀÇ ÁÖ۸¦ ±¸¼ºÇÏ´Â ¿À» ³ªÅ¸³»´Â int
¹è¿. ¹è¿³»ÀÇ °¢ ¿ä¼Ò´Â 0
º¸´Ù Å©°í, ÇÑÆí ÀÌ Çà ¼¼Æ®³»ÀÇ ·Ä¼öÀÌÇÏÀÏ Çʿ䰡 ÀÖ´Ù
SQLException
- ÁöÁ¤µÈ ¹è¿³»ÀÇ ¹øÈ£°¡ ÀÌ Çà ¼¼Æ®·Î À¯È¿ÇÏÁö ¾ÊÀº °æ¿ìgetKeyColumns()
,
Joinable.setMatchColumn(String)
,
Joinable.setMatchColumn(int)
RowSet createShared() throws SQLException
CachedRowSet
°´Ã¼¿Í °°Àº µ¥ÀÌÅÍ¿¡ÀÇÇØ ¹é¾÷ µÈ »õ·Î¿î RowSet
¿À
ºêÁ¦Å©Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. ½ÇÁ¦·Î ¾çÂÊ ¸ðµÎÀÇ CachedRowSet
°´Ã¼´Â °°Àº µ¥ÀÌÅÍ»ó¿¡ Ä¿¼¸¦ °¡Áý´Ï´Ù. ±× °á°ú, ¿øÀÇ °´Ã¼¿¡
ÇÑ º¯°æÀÌ, ±× ¸ðµç Áߺ¹¿¡ °¡½ÃÀÎ °Í°ú °°°Ô, Áߺ¹¿¡
ÇÑ ¸ðµç º¯°æÀÌ, ¿øÀÇ °´Ã¼¿Í ±× ¿ÜÀÇ ¸ðµç Áߺ¹¿¡ °¡´É
½Ã°¡ µË´Ï´Ù. Áߺ¹À¸·Î ºÎÇÏÀÇ µ¥ÀÌÅ͸¦ º¯°æÇÏ´Â ¸Þ¼µå¸¦ È£ÃâÇϸé, ±× ¸Þ¼µå´Â ¿øÀÇ CachedRowSet
¿Àºê
Á§Æ®¿¡ ÀÇÇØ È£ÃâµÇ´Â °æ¿ì¿Í ¿ÏÀüÈ÷ ¶È°°ÀÌ, µî·ÏµÈ ¸ðµç ¸®½º³Ê¿¡°Ô ÅëÁöÇÕ´Ï´Ù.
°Ô´Ù°¡ ÀÌ ¸Þ¼µå¿¡ ÀÇÇØ ÀÛ¼ºµÇ´Â RowSet
°´Ã¼´Â ÀÌ CachedRowSet
°´Ã¼¿Í °°Àº ÇÁ·ÎÆÛƼ¸¦ °¡Áý´Ï´Ù. ¿¹¸¦ µé¾îÀÌ CachedRowSet
°´Ã¼°¡ Àбâ Àü¿ë
ÀÇ °æ¿ì, ±× ¸ðµç Áߺ¹µµ Àбâ Àü¿ëÀÌ µË´Ï´Ù. À̰ÍÀ» °»½Å °¡´ÉÇÏ°Ô º¯°æÇϸé, Áߺ¹µµ °»½Å °¡´ÉÇÏ°Ô µË´Ï´Ù.
ÁÖ: º¹¼öÀÇ thread°¡ createShared()
¸Þ¼µå¿¡ ÀÇÇØ ÀÛ¼ºµÈ RowSet
°´Ã¼¿¡ ¾×¼¼½º ÇÏ´Â °æ¿ì, °øÀ¯ µ¥ÀÌÅÍÀÇ Á¤ÇÕ¼ºÀ» È®º¸Çϱâ À§ÇØ, ´ÙÀ½ÀÇ µ¿ÀÛÀÌ ÁöÁ¤µË´Ï´Ù. ¸ðµç °øÀ¯µÈ RowSet
°´Ã¼ÀÇ µ¶ÇØ¿Í Ãâ·ÂÀº °¢ °´Ã¼¿Í ºÎÇÏÀÇ ´ÜÀÏÀÇ °Ñ(Ç¥) ±¸Á¶°£¿¡ ¼ø¼´ë·Î ÇàÇØÁú Çʿ䰡 ÀÖ½À´Ï´Ù.
CachedRowSet
°´Ã¼¿Í °°Àº ÇÁ·ÎÆÛƼ¸¦ °¡Á®, °°Àº µ¥ÀÌÅÍ»óÀÇ Ä¿¼¸¦ °¡Áö´Â »õ·Î¿î °øÀ¯ RowSet
°´Ã¼
SQLException
- ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ºÎÇÏÀÇ Ç÷§Æû¿¡¼ º¹Á¦°¡ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ìRowSetEvent
,
RowSetListener
CachedRowSet createCopy() throws SQLException
CachedRowSet
°´Ã¼ÀÇ µ¥ÀÌÅÍÀÇ µö º¹»çÀÎ
RowSet
¿À
ºêÁ¦Å©Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. createShared
È£Ãâ¿¡ ÀÇÇØ »ý¼ºµÈ RowSet
¿À
ºêÁ¦Å©Æ®ÀÇ °æ¿ì¿Í´Â ´Þ¶ó, ¿øÀÇ RowSet
°´Ã¼ÀÇ º¹Á¦ÀÇ °»½ÅÀÌ, ¿øÀÇ RowSet
¿À
ºêÁ¦Å©Æ®¿¡ °¡½Ã¿© µÇÁö ¾Ê½À´Ï´Ù. ¶Ç, ¿øÀÇ RowSet
¿¡ µî·ÏµÈ À̺¥Æ® ¸®½º³ÊÀÇ ½ºÄÚÇÁ¿¡
»õ·Î¿î RowSet
ÄÚ
Çǰ¡ Æ÷ÇԵǾî ÀÖ¾î µÇÁö ¾Ê½À´Ï´Ù. ¶Ç, È®¸³ ³¡³ Á¦¾à Á¦ÇÑÀº º¸°ü À¯ÁöµÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
RowSet
°´Ã¼. CachedRowSet
°´Ã¼ÀÇ µö Ä«ÇÇÀ̸ç, ÀÌ CachedRowSet
(À¸)·ÎºÎÅÍ´Â ¿ÏÀüÇÏ°Ô µ¶¸³Çϰí ÀÖ´Ù
SQLException
- ÀÌ CachedRowSet
°´Ã¼ÀÇ º¹Á¦ÀÇ »ý¼º½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìcreateShared()
,
createCopySchema()
,
createCopyNoConstraints()
,
RowSetEvent
,
RowSetListener
CachedRowSet createCopySchema() throws SQLException
CachedRowSet
°´Ã¼ÀÇ ºñ¾îÀÖ´Â º¹»çÀÎ
CachedRowSet
¿À
ºêÁ¦Å©Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. Ä«ÇÇ¿¡´Â ¾Æ¹«°Íµµ Æ÷ÇÔÇÏÁö ¾Ê°í, ¿øÀÇ CachedRowSet
°´Ã¼ÀÇ °Ñ(Ç¥) ±¸Á¶¸¸À» Ç¥ÇöÇÒ ÇÊ¿ä
(ÀÌ)°¡ ÀÖ½À´Ï´Ù. °Ô´Ù°¡ ¿øÀÇ CachedRowSet
°´Ã¼·Î ¼³Á¤µÈ ÁÖŰ ¶Ç´Â ¿ÜºÎ ŰÀÇ Á¦¾àÀ» »õ·Î¿î ºñ¾îÀÖ´Â CachedRowSet
°´Ã¼¿¡µµ µ¿ÀÏÇÏ°Ô Àû¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. createShared
¸Þ
¼Úµå È£Ãâ¿¡ ÀÇÇØ »ý¼ºµÈ RowSet
°´Ã¼¿Í´Â ´Þ¶ó, createCopySchema
¸Þ
¼Úµå¿¡
ÇÑ ÀÌ CachedRowSet
°´Ã¼ÀÇ Ä«ÇÇ¿¡ÀÇ °»½ÅÀº °¡½ÃÀ¸·Î¼´Â µÇÁö ¾Ê½À´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀº ÀÌ ¸Þ¼µå¿¡ ÀÇÇØ ¸®ÅÏµÈ CachedRowSet
°´Ã¼·ÎºÎÅÍ WebRowSet
°´Ã¼¸¦ Çü¼ºÇØ, ³ªÁß¿¡ »ç¿ëÇϱâ À§Çؼ
RowSet
schema Á¤ÀǸ¦ XML¿¡ export ÇÒ ¼ö ÀÖ½À´Ï´Ù.
SQLException
- ÀÌ CachedRowSet
°´Ã¼ÀÇ ±¸Á¶ÀÇ º¹Á¦½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìcreateShared()
,
createCopySchema()
,
createCopyNoConstraints()
,
RowSetEvent
,
RowSetListener
CachedRowSet createCopyNoConstraints() throws SQLException
CachedRowSet
°´Ã¼ÀÇ µö Ä«ÇÇÀÌÁö¸¸, µ¶¸³Çϰí ÀÖ´Â CachedRowSet
¿À
ºêÁ¦Å©Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. createShared
¸Þ¼µå È£Ãâ¿¡ ÀÇÇØ »ý¼ºµÈ RowSet
¿À
ºêÁ¦Å©Æ®ÀÇ °æ¿ì¿Í´Â ´Þ¶ó, ÀÌ CachedRowSet
°´Ã¼ÀÇ Ä«ÇÇ¿¡ ´ëÇØ¼ ÇàÇØÁø º¯°æÀº °¡½Ã¿©
¼±. °Ô´Ù°¡ ÀÌ CachedRowSet
°´Ã¼¿¡ ÀÇÇØ µî·ÏµÈ ¸ðµç À̺¥Æ® ¸®½º³ÊÀÇ ½ºÄÚÇÁ¿¡ ½Å ÀÇÇØ ÀÖ°í RowSet
°´Ã¼°¡ Æ÷ÇԵǾî ÀÖ¾î µÇÁö ¾Ê½À´Ï´Ù. ¶Ç, ÀÌ CachedRowSet
¿À
ºêÁ¦Å©Æ®¿¡ ´ëÇØ¼ È®¸³µÈ Á¦¾à Á¦ÇÑÀº Ä«ÇÇ¿¡ À¯ÁöµÇ°í ÀÖ¾î µÇÁö ¾Ê½À´Ï´Ù.
CachedRowSet
°´Ã¼. CachedRowSet
°´Ã¼ÀÇ µö Ä«ÇÇÀ̸ç, ÀÌ CachedRowSet
°´Ã¼·ÎºÎÅÍ´Â ¿ÏÀüÇÏ°Ô µ¶¸³Çϰí ÀÖ´Ù
SQLException
- CachedRowSet
°´Ã¼ÀÇ º¹Á¦ÀÇ »ý¼º½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìcreateCopy()
,
createShared()
,
createCopySchema()
,
RowSetEvent
,
RowSetListener
RowSetWarning getRowSetWarnings() throws SQLException
RowSet
°´Ã¼¿¡ °üÇÑ È£Ãâ¿¡ ÀÇÇØ º¸°íµÇ´Â ÃÖÃÊÀÇ °æ°í¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÈļÓÀÇ RowSet
¿À
ºêÁ¦Å©Æ®ÀÇ °æ°í´Â ÀÌ ¸Þ¼µå°¡ µ¹·ÁÁÖ´Â RowSetWarning
°´Ã¼¿¡ üÀÎ µË´Ï´Ù.
°æ°í üÀÎÀº »õ·Î¿î ÇàÀÌ ÀÐÈú ¶§¸¶´Ù ÀÚµ¿ÀûÀ¸·Î Ŭ¸®¾î µË´Ï´Ù. ÀÌ ¸Þ¼µå´Â Ŭ·Î¿ìÁî µÈ RowSet
°´Ã¼ÀÇ È£Ãâ¿¡´Â »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. »ç¿ëÇϸé SQLException
°¡ ¹ß»ý µË´Ï´Ù.
RowSetWarning
°´Ã¼. ¾ø´Â °æ¿ì´Â null
SQLException
- ÀÌ ¸Þ¼µå°¡ ´ÝÇôÁø RowSet »ó¿¡¼ ºÒ·Á °¬À» °æ¿ìRowSetWarning
boolean getShowDeleted() throws SQLException
boolean
À» ÃëµæÇÕ´Ï´Ù. true
°¡ ¹Ý
µÇ¾úÀ» °æ¿ì, »èÁ¦ÇàÀº ÇöÀçÀÇ Çà°ú ÇÔ²² Ç¥½ÃµË´Ï´Ù. false
°¡ µ¹·ÁÁÖ°íÁ³À» °æ¿ì, »èÁ¦ÇàÀº ÇöÀçÀÇ Ç༼Ʈ³»¿¡ Ç¥½ÃŰ
ÀÀ. ±âº»°ª´Â false
ÀÔ´Ï´Ù.
Ç¥ÁØÇà ¼¼Æ® ±¸ÇöÀº º¸¾È»óÀÇ ¹è·Á ¶Ç´Â ƯÁ¤ÀÇ ¹èÄ¡ ½Ã³ª¸®¿À¿¡ ÀûÇÕ½Ã۱⠶§¹®¿¡ ÀÌ µ¿ÀÛÀ» Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù . À̰ÍÀº Á¤ÀÇ ³¡³ ±¸ÇöÀ¸·Î¼ ³²°ÜÁ® Ç¥ÁØÀÇ µ¿ÀÛÀ» ³ªÅ¸³»Áö ¾Ê½À´Ï´Ù.
ÁÖ: »èÁ¦µÈ ÇàÀ» Ç¥½ÃÇϸé, ÀϺÎÀÇ Ç¥ÁØ JDBC RowSet
±¸Çö ¸Þ¼µåÀÇ µ¿ÀÛÀÌ º¹ÀâÇÏ°Ô µË´Ï´Ù. ±×·¯³ª, »èÁ¦µÈ ÇàÀ» Ç¥½ÃÇÏ´Â ±â´ÉÀº ¸Å¿ì Àü¹®ÀûÀÎ ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ¹Û¿¡ »ç¿ëµÇÁö ¾Ê½À´Ï´Ù. µû¶ó¼,¿Í
¾î´À Çà ¼¼Æ® »ç¿ëÀÚ´Â ÀÌ ¼³Á¤À» ¹«½ÃÇØ ±¦Âú½À´Ï´Ù.
true
, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
SQLException
- Çà ¼¼Æ® ±¸ÇöÀÌ, »èÁ¦ÇàÀÌ Ç¥½ÃµÉÁö ¾î¶³Áö¸¦ ÆÇ´ÜÇÒ ¼ö ¾ø´Â °æ¿ìsetShowDeleted(boolean)
void setShowDeleted(boolean b) throws SQLException
showDeleted
ÇÁ·ÎÆÛƼ¿¡
ÁöÁ¤µÈ boolean
Ä¡¸¦ ¼³Á¤ÇÕ´Ï´Ù. À̰Ϳ¡, »èÁ¦ÇàÀ» ÇöÀçÀÇ Çà ¼¼Æ®³»¿¡ Ç¥½ÃÇÒÁö ¾î¶³Áö°¡ °áÁ¤µË´Ï´Ù. °ªÀÌ true
ÀÇ °æ¿ì, »èÁ¦µÈ ÇàÀÌ ÇöÀçÀÇ Çà ¼¼Æ®¿Í¶ó°íµµ¿¡ Ç¥½ÃµË´Ï´Ù. °ªÀÌ false
ÀÇ °æ¿ì, »èÁ¦µÈ ÇàÀº ÇöÀçÀÇ Çà ¼¼Æ®³»¿¡ Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.
Ç¥ÁØÇà ¼¼Æ® ±¸ÇöÀº º¸¾È»óÀÇ ¹è·Á ¶Ç´Â ƯÁ¤ÀÇ ¹èÄ¡ ½Ã³ª¸®¿À¿¡ ÀûÇÕ½Ã۱⠶§¹®¿¡ ÀÌ µ¿ÀÛÀ» Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù . À̰ÍÀº Á¤ÀÇ ³¡³ ±¸ÇöÀ¸·Î¼ ³²°ÜÁ® Ç¥ÁØÀÇ µ¿ÀÛÀ» ³ªÅ¸³»Áö ¾Ê½À´Ï´Ù.
b
- »èÁ¦µÈ ÇàÀ» °Ñ(Ç¥)
½Ã ÇÏ´Â °æ¿ì´Â true
, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
SQLException
- Çà ¼¼Æ® ±¸ÇöÀÌ, »èÁ¦ÇàÀÇ Ç¥½Ã ¶Ç´Â ºñÇ¥½ÃÀÇ ¼³Á¤À» ¸®¼Â ÇÒ ¼ö ¾ø´Â °æ¿ìgetShowDeleted()
void commit() throws SQLException
CachedRowSet
°´Ã¼ÀÇ SyncProvider
¿¡´Â ResultSet
ÀÇ Connection
°´Ã¼Àΰ¡ »ý¼ºÀÚ¿¡°Ô °Ç³×Áö´Â JDBC ÇÁ·ÎÆÛƼ°¡ Æ÷ÇԵ˴ϴÙ. ÀÌ ¸Þ¼µå´Â Connection
ÄÚ
¹ÌÆ® ¸Þ¼µå¸¦ ·¦ ÇØ, À¯¿¬ÇÑ ÀÚµ¿ À§Å¹ ¶Ç´Â ºñÀÚµ¿ À§Å¹ÀÇ Æ®·£Àè¼Ç(transaction) Á¦¾î Áö¿ø¸¦ Á¦°øÇÕ´Ï´Ù.
ÀüȸÀÇ À§Å¹/·Ñ¹é(rollback)ÀÇ µÚ, acceptChanges()
¸Þ¼µå¿¡ ÀÇÇØ ÇàÇØÁø ¸ðµç º¯°æÀ» ¿µ¼ÓÀûÀÎ °ÍÀ¸·Î ÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ÀÚµ¿ À§Å¹ ¸ðµå°¡ ¹«È¿°¡ µÇ¾î ÀÖÀ» ¶§ ¹Û¿¡ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
SQLException
- µ¥ÀÌŸº£À̽º ¾×¼¼½º ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ÀÌ CachedRowSet
³»ÀÇ Connection °´Ã¼°¡ ÀÚµ¿ À§Å¹ ¸ðµåÀÎ °æ¿ìConnection.setAutoCommit(boolean)
void rollback() throws SQLException
CachedRowSet
°´Ã¼ÀÇ SyncProvider
¿¡´Â ¿øÀÇ ResultSet
ÀÇ Connection
°´Ã¼Àΰ¡ °Å±â¿¡ °Ç³×¹Þ´Â JDBC ÇÁ·ÎÆÛƼ°¡ Æ÷ÇԵ˴ϴÙ.
ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)¿¡¼ÀÇ ¸ðµç º¯°æÀ» Ãë¼ÒÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ÀÚµ¿ À§Å¹ ¸ðµå°¡ ¹«È¿°¡ µÇ¾î ÀÖÀ» ¶§ ¹Û¿¡ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
SQLException
- µ¥ÀÌ
Ÿº£À̽º¾ÆÅ©¼¼½º¿¡¶ó°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ÀÌ CachedRowSet
³»ÀÇ Connection
°´Ã¼°¡ ÀÚµ¿ À§Å¹ ¸ðµåÀÎ °æ¿ìvoid rollback(Savepoint s) throws SQLException
CachedRowSet
°´Ã¼ÀÇ SyncProvider
¿¡´Â ¿øÀÇ ResultSet
ÀÇ Connection
°´Ã¼Àΰ¡ °Å±â¿¡ °Ç³×¹Þ´Â JDBC ÇÁ·ÎÆÛƼ°¡ Æ÷ÇԵ˴ϴÙ.
ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)¿¡¼ÀÇ ¸ðµç º¯°æÀ» Ãë¼ÒÇØ, ¸¶Áö¸· Savepoint
Æ®·£Àè¼Ç(transaction) ¸¶Ä¿¿¡ µÇµ¹¸³´Ï´Ù. ÀÌ ¸Þ¼µå´Â ÀÚµ¿ À§Å¹ ¸ðµå°¡ ¹«È¿°¡ µÇ¾î ÀÖÀ» ¶§ ¹Û¿¡ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
s
- Savepoint
Æ®·£Àè¼Ç(transaction) ¸¶Ä¿
SQLException
- µ¥ÀÌ
Ÿº£À̽º¾ÆÅ©¼¼½º¿¡¶ó°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ÀÌ CachedRowSet
³»ÀÇ Connection
°´Ã¼°¡ ÀÚµ¿ À§Å¹ ¸ðµåÀÎ °æ¿ìvoid rowSetPopulated(RowSetEvent event, int numRows) throws SQLException
numRows
ÆÄ
¶ó¸ÞÀÌŸ¿¡ÀÇÇØ ÀÌ À̺¥Æ®´Â numRow
¸¶´Ù Æ®¸®°ÅµË´Ï´Ù.
À̺¥Æ®ÀÇ ¼Ò½º´Â event.getSource ¸Þ¼µå·Î ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
event
- À̺¥Æ®
ÀÇ ¼Ò½ºÀÎ RowSet
°´Ã¼¸¦ Æ÷ÇÔÇÏ´Â RowSetEvent
°´Ã¼numRows
- Àбâ
Æ÷ÇÔ½ÃÀÇ ÇàÀÇ °£°Ý¼ö. ¿©±â¼, ÀÐÈù CachedRowSet
ÀÌ Æ®¸®°ÅµÈ´Ù. ±âº»°ª´Â Á¦·Î. fetchSize
º¸´Ù ÀÛÀº °ª°ú Á¦·Îº¸´Ù ÀÛÀº °ªÀº ÁöÁ¤ÇÒ ¼ö ¾ø´Ù
SQLException
void populate(ResultSet rs, int startRow) throws SQLException
ÀÌ CachedRowSet
°´Ã¼·Î ÁöÁ¤µÈ ResultSet
°´Ã¼ÀÇ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù. populate(ResultSet)
¸Þ¼µå¿¡ °ü·ÃµÈ
ÀÎ °æ¿ì, Ãß°¡ ÆÄ¶ó¹ÌÅÍ¿¡ÀÇÇØ CashedRowSet ÀνºÅϽºÀÇ read¸¦ °³½ÃÇÏ´Â ResultSet
¾ÈÀÇ °³½Ã À§Ä¡¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù
.
ÀÌ ¸Þ¼µå´Â ¾îÇø®ÄÉÀ̼ÇÀÌ ¿ÀÇÂÇϰí ÀÖ´Â ResultSet
°´Ã¼¿¡ Á¢¼ÓÇϰí ÀÖÀ» ¶§
execute
¸Þ¼µåÀÇ ´ëü·Î¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. »õ·Î¿î Á¢¼ÓÀ» ¿¾î ÀÌ CachedRowSet
°´Ã¼ÀÇ Ä¿¸àµå¸¦ Àç½ÇÇàÇÒ Çʿ䰡 ¾ø´Â Á¡À¸·Î½á, populate
¸Þ¼µå´Â ÆÄ¶ó¹ÌÅ͸¦ ÃëÇÏÁö ¾Ê´Â execute
¸Þ¼µåº¸´Ù È¿À²ÀûÀÔ´Ï´Ù. ¶Ç, populate
¸Þ¼µå¸¦ »ç¿ëÇÏ´Â °ÍÀº, ResultSet
°´Ã¼¸¦ ÃëÇÏ´Â execute
¸Þ¼µåº¸´Ù Æí¸®ÇÕ´Ï´Ù.
startRow
- rs
- ÀÌ CachedRowSet
°´Ã¼¿¡ ÀÐÈ÷´Â µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ResultSet
°´Ã¼
SQLException
- null
ResultSet
°´Ã¼°¡ Á¦°øµÇ¾úÀ» °æ¿ì, ¶Ç´Â ÀÌ CachedRowSet
°´Ã¼°¡ °ü·ÃµÈ ResultSetMetaData
°´Ã¼¸¦ ÃëµæÇÒ ¼ö ¾ø´Â °æ¿ìexecute(java.sql.Connection)
,
populate(ResultSet)
,
ResultSet
,
ResultSetMetaData
void setPageSize(int size) throws SQLException
CachedRowSet
°´Ã¼ÀÇ ÆäÀÌÁö »çÀÌÁ ¼³Á¤ÇÕ´Ï´Ù. CachedRowSet
´Â
ÀÚ½ÅÀ» ÆäÀÌÁö »çÀÌÁî·Î ¼³Á¤µÈ Çà¼öÀÇ Çà¿¡ ÀоîµéÀÌ´Â ¼³Á¤À¸·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù. populate()
¶Ç´Â execute()
°¡
ºÒ·Á°¡
¸é, CachedRowSet
´Â RowSet
read »ç¿ëÇÑ ¿øÀÇ SQL
Äõ¸®¿¡ µû¶ó, Ãß°¡ ÆäÀÌÁö¸¦ ÆäÄ¡ ÇÕ´Ï´Ù.
size
- CachedRowSet
ÀÇ ÆäÀÌÁö »çÀÌÁî
SQLException
- CachedRowSet
ÆäÀÌÁö »çÀÌÁîÀÇ ¼³Á¤½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ÆäÀÌÁö »çÀÌÁî°¡ Á¦·Îº¸´Ù ÀÛÀº °æ¿ìint getPageSize()
CachedRowSet
°´Ã¼ÀÇ ÆäÀÌÁö »çÀÌÁ ¸®ÅÏÇÕ´Ï´Ù.
int
boolean nextPage() throws SQLException
CachedRowSet
ÀÇ ÇöÀçÀÇ ÆäÀÌÁö¸¦ ÁõºÐ ÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ
CachedRowSet
¿¸Å
ÀåÀº ´ÙÀ½ÀÇ ÆäÀÌÁö »çÀÌÁî ºÐÀÇÇàÀ» ÆäÄ¡ ÇØ, RowSet¿¡ ÀоîµéÀÔ´Ï´Ù. ´Ù¸¸, ÀÌ ¶§¹®¿¡´Â ±× ¿ÜÀÇ ÇàÀÌ RowSet
ÀÇ read¿¡ »ç¿ëµÈ ¿øÀÇ SQL Äõ¸®ÀÇ ½ºÄÚÇÁ³»¿¡ ³²¾Æ ÀÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
SQLException
- ´ÙÀ½
ÀÇ ÆäÀÌÁöÀÇ ÆäÄ¡½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¼µå°¡ populate ³ª execute
½ÇÇàÀü¿¡ ³Ê¹« »¡¸® ºÒ·Á °¬À» °æ¿ìboolean previousPage() throws SQLException
CachedRowSet
ÀÇ ÇöÀçÀÇ ÆäÀÌÁö¸¦ °¨ ºÐ ÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ
CachedRowSet
¿¸Å
ÀåÀº ÀÌÀüÀÇ ÆäÀÌÁö »çÀÌÁî ºÐÀÇÇàÀ» ÆäÄ¡ ÇØ, RowSet¿¡ ÀоîµéÀÔ´Ï´Ù. ÀÌÀüÀÇ ÆäÀÌÁö³»°¡ ¸®ÅÏµÈ ÇàÀÇ ¾çÀº RowSet
ÀÇ read¿¡ »ç¿ëµÈ ¿øÀÇ SQL Äõ¸®ÀÇ ½ºÄÚÇÁ³»¿¡ ³²¾Æ ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.
SQLException
- ÀÌ
ÀüÀÇ ÆäÀÌÁöÀÇ ÆäÄ¡½Ã¿¡ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¼µå°¡ populate ³ª execute
½ÇÇàÀü¿¡ ³Ê¹« »¡¸® ºÒ·Á °¬À» °æ¿ì
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.