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