CachedRowSet

 

<%@ page import="sun.jdbc.rowset.*" %>

<%@ page import="java.io.*" %>

 

<%  

    //import   : sun.jdbc.rowset.*

    //½ÇÁ¦jar¸í : rowset.jar

    //À§Ä¡      :WebLogicÀÏ °æ¿ì ÁÖ·Î - bea\wlserver6.1\config\mydomain\mydomainApp\serverclasses\others

    //                                ±×´ë½Å startWebLogic.cmd ¿¡¼­ CLASSPATH ¿¡ Ãß°¡ ÇØ¾ß µÊ

    CachedRowSet rowSet = new CachedRowSet();

 

    AnyCompCTL anyCTL = new AnyCompCTL(new HeaderVO(sysLogData));

    rowSet = anyCTL.getMapList(....);

 

    if(rowSet != null) {    

        while(rowSet.next()) {

            º¯¼ö = rowSet.getString("COMP_GUBUN").trim();

            ......

        }

    }

%>  

 

<%//-------------------------------------------------------------------------------------------------->

     //»ç¿ë°¡´ÉÇÑ ÇÔ¼ö

     //------------------------------------------------------------------------------------------------->

%>

  1. CachedRowSetÀº java.sql.ResultSetÀ» implementÇÑ °ÍÀ̹ǷΠjava.sql.ResultSet¿¡¼­ »ç¿ëÇÏ´Â ¸ðµç ¸Þ¼Òµå »ç¿ë °¡´É

  2. java.sql.Date = getDate(int columnIndex);

     java.sql.Date = getDate(String columnName);

     double        = getDouble(int columnIndex);

     double        = getDouble(String columnName);

     À§¿Í µ¿ÀÏÇÏ°Ô   = getFloat() / getInt() / getLong() /  getShort() / getString() /

     java.sql.item = getTime(..);

 

     int           = getRow(); //ÇöÀçÀÇ ÇàÀÇ ¹øÈ£¸¦ ¸®ÅÏ

 

     //DB°ü·Ã

     Statement     = rowset.getStatement()  //ÀÌ ResultSet ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇÑ Statement ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÕ´Ï´Ù.

     void          : rowset.insertRow();    //»ðÀÔÇàÀÇ ³»¿ëÀ», ÀÌ ResultSet ¿ÀºêÁ§Æ® ¹× µ¥ÀÌŸº£À̽º¿¡ »ðÀÔÇÕ´Ï´Ù.

 

 

<%//-------------------------------------------------------------------------------------------------->

     //¾Æ·¡ ³»¿ëÀº ¼³¸í

     //-------------------------------------------------------------------------------------------------->

%>

 

  SunÀÇ early access release ½Ã¸®Á »ìÆìº¸¸é jdbc¸¦ ´Ù·ç´Âµ¥ ±ä¿äÇÑ ±â´ÉÀÌ Çϳª ÀÖ´Ù. ±×°ÍÀº CachedRowSet¸¦ ÀÌ¿ëÇÑ

  ResultSetÀÇ Ä³½¬È­ÀÌ´Ù. ÀÌ Å¬·¡½º´Â javax.sql.RowSetÀ» implementÇϴµ¥ ÀÌ RowSetÀº java.sql.ResultSet¸¦ È®ÀåÇÑ´Ù.

  ÀÌ CachedRowSetÀº ADOó·³ ResultSetÀÇ ¾ÕµÚ¸¦ ¿À°¥ ¼ö ÀÖ´Ù. ±×·¡¼­ °¢ ¼¼¼ÇÀº »ç¿ëÀÚ°¡ ·¹Äڵ带 ¿À°¥ ¶§ µ¥ÀÌÅͺ£À̽º¿¡

  Á¢¼ÓÀ» À¯ÁöÇϰí ÀÖ¾î¾ß ÇÑ´Ù. ±×·¸Áö¸¸ µ¥ÀÌŸº£À̽ºÀÇ ¼º´ÉÀ» ÃÖ´ëÈ­Çϱâ À§Çؼ­´Â ÀÌ·± ½ÄÀ¸·ÎÇÏ¸é ¾ÈµÇ°í Á¤¸»·Î ÇÊ¿äÇÒ ¶§¸¸

  Á¢¼ÓÀ» ÇØ¾ß¸¸ ÇÑ´Ù. CachedRowSetÀÌ ÀÌ·± Á¡À» ÇØ°áÇØ ÁØ´Ù. Äõ¸®¸¦ ½ÇÇàÇÒ ¶§³ª ¾÷µ¥ÀÌÆ®ÇÒ ¶§¸¸ Á¢¼ÓÀ» ÇÏ°Ô µÈ´Ù.

 

   http://developer.java.sun.com/developer/earlyAccess/crs/ ¿¡¼­ jar ÆÄÀÏÀ» ´Ù¿î·Îµå¹ÞÀ» ¼ö ÀÖ´Ù.

 

1. CachedRowSet »ý¼º

 

CachedRowSet´Â JavaBeanÀÌ´Ù. ±×·¯¹Ç·Î property¸¦ ÅëÇØ¼­ µ¥ÀÌÅ׺£À̽º¿¡ Á¢¼ÓÇÏ°í µ¥ÀÌÅ͸¦ °¡Á®¿Â´Ù. ¾Æ·¡´Â »ç¿ëÇÒ ¼ö ÀÖ´Â propertyÀÌ´Ù.

 

Username : µ¥ÀÌÅͺ£À̽º »ç¿ëÀÚ¸í

Password : µ¥ÀÌÅͺ£À̽º »ç¿ëÀÚ ¾ÏÈ£

URL : µ¥ÀÌÅͺ£À̽º JDBC URL

Command : SQL Äõ¸®

 

JavaBeanÀ¸·Î½á constructor·Î °£´ÜÈ÷ ÀνºÅϽº¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù.

 

CachedRowSet crs = new CachedRowSet();

 

±×·¯³ª ¾îµð±îÁö³­ javaBeanÀÎ ¸¸Å­ useBeanÀ» »ç¿ëÇÏÀÚ

 

<jsp:useBean id="Contacts" class="sun.jdbc.rowset.CachedRowSet" scope="session">

<%

// µ¥ÀÌÅͺ£À̽º µå¶óÀ̹ö ·Îµù

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

 

// CachedRowSet bean ÃʱâÈ­

Contacts.setUsername("dbuser"); // example userid

Contacts.setPassword("dbpassword"); // example password

Contacts.setUrl("jdbc:odbc:ContactDB"); // example DSN

Contacts.setCommand("SELECT name, telephone from Contacts");

Contacts.execute();

%>

</jsp:useBean>

 

<jsp:useBean... °ú </jsp:useBean> »çÀÌ¿¡ ÀÖ´Â scriptlet´Â ¿ÀÁ÷ Çѹø¸¸ ½ÇÇàµÈ´Ù. Áï useBeanÀÌ session¿¡ óÀ½À¸·Î ¸¸µé¾îÁú ¶§ ´Ü Çѹø¸¸ ½ÇÇàµÈ´Ù. ±×·¯¹Ç·Î °è¼Ó ÆäÀÌÁö¸¦ Á¢¼ÓÇØµµ CachedRowSetÀÌ session¿¡ Àֱ⠶§¹®¿¡ ½ÇÇàµÇÁö ¾Ê°í ³Ñ¾î°¡°Ô µÈ´Ù.

J2EE Ä¿³Ø¼Ç Ç®¸µÀ» Áö¿øÇÏ´Â JSP ÄÁÅ×À̳ʸ¦ »ç¿ëÇÑ´Ù¸é, dataSourceName¸¦ »ç¿ëÇÏ·Á°í ÇÒ °ÍÀÌ´Ù. dataSourceName¸¦ ¼¼ÆÃÇϸé CachedRowSetÀº JNDI·ÎºÎÅÍ Ä¿³Ø¼ÇÀ» ¾òÀ¸·Á°í ÇÒ °ÍÀÌ´Ù. Æ®·¡ÇÈÀ» °í·ÁÇÑ´Ù¸é dataSourceName¸¦ »ç¿ëÇÏ´Â °ÍÀÌ Çö¸íÇÏ´Ù.

 

<%

// get connection from pool

InitialContext ctx = new InitialContext();

javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup ("Databases/ContactsDB/DataSource");

java.sql.Connection con = ds.getConnection();

Contacts.setCommand("SELECT name, telephone from Contacts");

// supply the connection to the RowSet

Contacts.execute(con);

%>

 

2. µ¥ÀÌÅÍ »ç¿ëÇϱâ

 

¾Õ¿¡¼­µµ ¾ð±ÞÇÏ¿´µíÀÌ CachedRowSetÀº java.sql.ResultSetÀ» implementÇÑ °ÍÀ̹ǷΠ¾Æ·¡¿Í °°ÀÌ ¶È°°ÀÌ »ç¿ëÇÏ¸é µÈ´Ù.

 

Contacts.getString(1);

 

Contacts.getRow()À» »ç¿ëÇϸé ÇöÀç row ¹øÈ£¸¦ ¾òÀ» ¼ö ÀÖ°í Contacts.size()¸¦ »ç¿ëÇϸé Å©±â¸¦ ¾Ë ¼ö ÀÖ´Ù. ³×ºñ°ÔÀÌ¼Ç ¶ÇÇÑ ResultSet¿¡¼­ »ç¿ëÇÏ´Â °Íó·³ previous(), first(), and last()¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

 

3. ¾÷µ¥ÀÌÆ® Çϱâ

 

µ¥ÀÌÅ͸¦ ¾÷µ¥ÀÌÆ®Çϱâ À§Çؼ­´Â Àû¾îµµ 3´Ü°è¸¦ °ÅÄ¡°Ô µÈ´Ù.

 

1´Ü°è

¾÷µ¥ÀÌÆ®ÇÒ À§Ä¡¿¡ Ä¿¼­°¡ À§Ä¡ÇØ ÀÖ´ÂÁö È®ÀÎÇÑ ÈÄ update ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù.

 

Contacts.updateString(1, "new value");

 

ÇÊ¿äÇÏ´Ù¸é ¸ðµç Ä÷³¿¡ Àú ÀÏÀ» ¹Ýº¹ÇÒ ¼ö ÀÖ´Ù.

 

2´Ü°è

Ä¿¼­¸¦ À̵¿Çϱâ Àü¿¡ RowSet¿¡ º¯°æ »çÇ×À» Àû¿ëÇÒ °ÍÀÎÁö¸¦ ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù. ij½¬µÈ ºÎºÐ¿¡¸¸ ¾÷µ¥ÀÌÆ®¸¦ ÇÏ´Â °ÍÀ¸·Î °áÄÚ µ¥ÀÌÅͺ£À̽º¿¡ ¾÷µ¥ÀÌÆ®¸¦ ÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù.

 

Contacts.updateRow();

 

3´Ü°è

½ÇÁ¦·Î µ¥ÀÌÅͺ£À̽º¿¡ ¾÷µ¥ÀÌÆ®¸¦ ½ÃŰ´Â ´Ü°èÀÌ´Ù. óÀ½¿¡ ÇÑ °Íó·³ Çß´Ù¸é ´ÙÀ½À» »ç¿ëÇÑ´Ù.

 

Contacts.acceptChanges();

 

±×·¸Áö ¾Ê°í J2EE Ä¿³Ø¼Ç Ç®¸µÀ» »ç¿ëÇß´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

 

Contacts.acceptChanges(connection);

 

µ¥ÀÌÅ͸¦ »ðÀÔÇÒ ¶§µµ ¸ÕÀú ÀûÀýÇÑ °÷(Àϸí insert row)À¸·Î Ä¿¼­¸¦ À̵¿½ÃŰ°í ³ª ÈÄ ´ÙÀ½°ú °°Àº ÀÛ¾÷À» ÇÑ´Ù.

 

rowSet.moveToInsertRow(); // Ä¿¼­¸¦ ºñ¾îÀÖ´Â ºó row·Î insert row·Î Ä¿¼­¸¦ À̵¿½ÃŲ´Ù.

rowSet.updateString(1, "New Contact"); // nameÀ» ÃʱâÈ­ ÇÑ´Ù.

rowSet.updateString(2, "(111) 111-1111");// phoneÀ» ÃʱâÈ­ÇÑ´Ù.

rowSet.insertRow(); // row¸¦ insert ÇÑ´Ù.

rowSet.moveToCurrentRow(); // Ä¿¼­¸¦ Àü À§Ä¡·Î À̵¿ÇÑ´Ù.

 

¹°·Ð ÀÌ ÀÛ¾÷ ÈÄ¿¡´Â À§¿¡¼­ ó·³ acceptChanges()¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.

 

Ãâó : http://jspgeek.com