DB2 Universal Database¿¡¼´Â µÎ Ç¥ÁØ Java ÇÁ·Î±×·¡¹Ö Áï, JDBC(Java Database Connectivity) ¹× SQLJ(Embedded SQL for Java)¸¦ ±¸ÇöÇÕ´Ï´Ù. ÀÌ Àå¿¡¼´Â JDBC ¹× SQLJ ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇØ °³¿äÀÌÁö¸¸, DB2 °íÀ¯ÀÇ Ãø¸é¿¡ ÃÊÁ¡À» ¸ÂÃä´Ï´Ù. JDBC ¹× SQLJ ½ºÆåÀÇ ¸µÅ©¿¡ ´ëÇØ¼´Â ÀÇ
DB2 Universal Database Java À¥ »çÀÌÆ® ¸¦ ÂüÁ¶ÇϽʽÿÀ.
JDBC API¸¦ ÅëÇØ µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ µ¿Àû SQL È£ÃâÀ» ÀÛ¼ºÇÏ´Â Java ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. SQLJ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼´Â µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇÏ¿© SQL ¿À·ù¸¦ Á¶ÀýÇϴ Ÿ½ºÅ©ÀÇ ±âÃÊ·Î JDBC¸¦ »ç¿ëÇÏÁö¸¸ SQLJ ¼Ò½º ÆÄÀÏ¿¡ Á¤Àû Embedded SQL¹®µµ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. °á°ú Java ¼Ò½º ÆÄÀÏÀ» ÄÄÆÄÀÏÇÏ·Á¸é ¸ÕÀú SQLJ º¯È¯ÇÁ·Î±×·¥À¸·Î SQLJ ¼Ò½º ÆÄÀÏÀ» º¯È¯ÇØ¾ß ÇÕ´Ï´Ù.
JDBC ¹× SQLJ ÀÀ¿ëÇÁ·Î±×·¥ ºôµå¿¡ ´ëÇØ¼´Â ÀÀ¿ëÇÁ·Î±×·¥ ºôµå ¾È³»¼¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
Embedded SQLÀ» Æ÷ÇÔÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ È£½ºÆ® ¾ð¾î¶ó°í ÇÕ´Ï´Ù. Java´Â SQLÀ» EbedÇÏ´Â ¹æ¹ý¿¡ »ó´çÇÑ ¿µÇâÀ» ÁÖ´Â ¹æ½Ä¿¡¼ ÀüÇüÀûÀΠȣ½ºÆ® ¾ð¾î C, COBOL ¹× FORTRAN°ú ´Ù¸¨´Ï´Ù.
±âº»ÀûÀ¸·Î JDBC ÇÁ·Î±×·¥Àº ÇÁ·Î±×·¥À» ¼öÇàÇÏ´Â »ç¶÷¿¡°Ô ÇÒ´çµÈ Ư±ÇÀ¸·Î SQL¹®À» ½ÇÇàÇÕ´Ï´Ù. ¹Ý´ë·Î SQLJ ÇÁ·Î±×·¥Àº µ¥ÀÌÅͺ£À̽º ÆÐŰÁö¸¦ ÀÛ¼ºÇÑ »ç¶÷¿¡°Ô ÇÒ´çµÈ Ư±ÇÀ¸·Î SQL¹®À» ½ÇÇàÇÕ´Ï´Ù.
¼Ò½º ÆÄÀÏÀÇ È®ÀåÀÚ´Â ´ÙÀ½°ú °°½À´Ï´Ù.
ÇØ´ç Ãâ·Â ÆÄÀÏÀÇ È®ÀåÀÚ´Â ´ÙÀ½°ú °°½À´Ï´Ù.
SQLJ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇØ¼ ¼öÇàÇÏ´Â ¹æ¹ýÀÇ ¿¹´Â SQLJ ÇÁ·Î±×·¥ ÄÄÆÄÀÏ ¹× ¼öÇà¿¡¼ º¼ ¼ö ÀÖ½À´Ï´Ù.
DB2 Universal Database¿¡¼´Â JDBC ¹× SQLJ Áö¿ø¿ë Ŭ·¡½º ¶óÀ̺귯¸®¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ·± ¶óÀ̺귯¸®´Â CLASSPATH¿¡ Á¦°øÇϰųª ´ÙÀ½°ú °°ÀÌ ¾ÖÇø´À¸·Î Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.
»ç¿ëÀÚÀÇ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ DB2¿¡ Æ÷ÇÔµÈ Å¬·¡½º ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ·Á¸é ¼Ò½º ÆÄÀÏÀÇ ¸Ç À§¿¡ ÇØ´ç import package¹®À» Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. Java ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ´ÙÀ½ ÆÐŰÁö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç¥ 31Àº µ¥ÀÌÅÍ À¯Çü ¸ÊÇο¡ ´ëÇÑ JDBC ½ºÆå¿¡ ±âÃÊÇÏ¿© °¢ SQL µ¥ÀÌÅÍ À¯Çü¿¡ ÇØ´çÇÏ´Â Java µ¥ÀÌÅÍ À¯ÇüÀ» ³ªÅ¸³À´Ï´Ù. ÀϺΠ¸ÊÇÎÀº JDBC ¹öÀü 1.22 ¶Ç´Â ¹öÀü 2.0 µå¶óÀ̹ö »ç¿ë ¿©ºÎ¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ÀÌ Á¡¿¡ ÁÖÀÇÇϽʽÿÀ. JDBC µå¶óÀ̹ö´Â ´ÙÀ½ ¸ÊÇÎ ½ºÅ°¸¶¸¦ »ç¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥°ú µ¥ÀÌÅͺ£À̽º »çÀÌ¿¡¼ ±³È¯µÇ´Â µ¥ÀÌÅ͸¦ º¯È¯ÇÕ´Ï´Ù. »ç¿ëÀÚÀÇ Java ÀÀ¿ëÇÁ·Î±×·¥°ú PARAMETER STYLE JAVA ÀúÀå ÇÁ·Î½Ãµà¾î ¹× UDF¿¡¼ ÇØ´ç ¸ÊÇÎÀ» »ç¿ëÇϽʽÿÀ. PARAMETER STYLE DB2GENERAL ÀúÀå ÇÁ·Î½Ãµà¾î¿Í UDFÀÇ µ¥ÀÌÅÍ À¯Çü ¸ÊÇο¡ ´ëÇØ¼´Â Áö¿øµÇ´Â SQL µ¥ÀÌÅÍ À¯ÇüÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
ÁÖ: | DB2¿¡¼ Áö¿øÇÏ´Â ¸ðµç ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼ DATALINK µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇÑ È£½ºÆ® º¯¼ö Áö¿øÀº ¾ø½À´Ï´Ù. |
Ç¥ 31. Java ¼±¾ð¿¡ ¸ÊÇεǴ SQL µ¥ÀÌÅÍ À¯Çü
SQL Ä÷³ À¯Çü | Java µ¥ÀÌÅÍ À¯Çü | SQL Ä÷³ À¯Çü ¼³¸í |
---|---|---|
SMALLINT (500 ¶Ç´Â 501) | short | ºÎÈ£ÀÖ´Â 16ºñÆ® Á¤¼ö |
INTEGER (496 ¶Ç´Â 497) | int | ºÎÈ£ÀÖ´Â 32ºñÆ® Á¤¼ö |
BIGINT (492 ¶Ç´Â 493) | long | ºÎÈ£ÀÖ´Â 64ºñÆ® Á¤¼ö |
REAL (480 ¶Ç´Â 481) | float | ´ÜÁ¤¹Ð ºÎµ¿ ¼Ò¼öÁ¡ |
DOUBLE (480 ¶Ç´Â 481) | double | ¹èÁ¤¹Ð ºÎµ¿ ¼Ò¼öÁ¡ |
DECIMAL(p,s) (484 ¶Ç´Â 485) | java.math.BigDecimal | ÆÑµÈ 10Áø¼ö |
CHAR(n) (452 ¶Ç´Â 453) | String | n ±æÀÌÀÇ °íÁ¤ ±æÀÌ ¹®ÀÚ¿. ¿©±â¼ nÀÇ ¹üÀ§´Â 1 - 254ÀÔ´Ï´Ù. |
VARCHAR(n) (448 ¶Ç´Â 449) | String | °¡º¯ ±æÀÌ ¹®ÀÚ¿ |
LONG VARCHAR (456 ¶Ç´Â 457) | String | ±ä °¡º¯ ±æÀÌ ¹®ÀÚ¿ |
CHAR(n) FOR BIT DATA | byte[] | n ±æÀÌÀÇ °íÁ¤ ±æÀÌ ¹®ÀÚ¿. ¿©±â¼ nÀÇ ¹üÀ§´Â 1 - 254ÀÔ´Ï´Ù. |
VARCHAR(n) FOR BIT DATA | byte[] | °¡º¯ ±æÀÌ ¹®ÀÚ¿ |
LONG VARCHAR FOR BIT DATA | byte[] | ±ä °¡º¯ ±æÀÌ ¹®ÀÚ¿ |
BLOB(n) (404 ¶Ç´Â 405) |
JDBC 1.22: byte[] JDBC 2.0: java.sql.Blob | ´ëÇü ¿ÀºêÁ§Æ®(LOB) °¡º¯ ±æÀÌ 2Áø ¹®ÀÚ¿ |
CLOB(n) (408 ¶Ç´Â 409) |
JDBC 1.22: String JDBC 2.0: java.sql.Clob | ´ëÇü ¿ÀºêÁ§Æ®(LOB) °¡º¯ ±æÀÌ ¹®ÀÚ¿ |
DBCLOB(n) (412 ¶Ç´Â 413) |
JDBC 1.22: String JDBC 2.0: java.sql.Clob | ´ëÇü ¿ÀºêÁ§Æ®(LOB) °¡º¯ ±æÀÌ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿ |
DATE (384 ¶Ç´Â 385) | java.sql.Date | 10¹ÙÀÌÆ® ¹®ÀÚ¿ |
TIME (388 ¶Ç´Â 389) | java.sql.Time | 8¹ÙÀÌÆ® ¹®ÀÚ¿ |
TIMESTAMP (392 ¶Ç´Â 393) | java.sql.Timestamp | 26¹ÙÀÌÆ® ¹®ÀÚ¿ |
SQL ¿À·ù°¡ ¹ß»ýÇϸé JDBC¿Í SQLJ ÇÁ·Î±×·¥Àº SQLExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù. SQLException¿¡¼ SQLSTATE, SQLCODE ¶Ç´Â SQLMSG °ªÀ» °Ë»öÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇØ´ç ÀνºÅϽº ¸Þ¼Òµå¸¦ È£ÃâÇϽʽÿÀ.
¿¹¸¦ µé¾î ´ÙÀ½°ú °°½À´Ï´Ù.
int sqlCode=0; // Variable to hold SQLCODE String sqlState="00000"; // Variable to hold SQLSTATE try { // JDBC statements may throw SQLExceptions stmt.executeQuery("Your JDBC statement here"); // SQLJ statements may also throw SQLExeptions #sql {..... your SQLJ statement here ......}; } /* Here's how you can check for SQLCODEs and SQLSTATE */ catch (SQLException e) { sqlCode = e.getErrorCode() // Get SQLCODE sqlState = e.getSQLState() // Get SQLSTATE if (sqlCode == -190 || sqlState.equals("42837")) { // Your code here to handle SQLCODE -190 or SQLSTATE 42837 } else { // Your code here to handle other errors } System.err.println(e.getMessage()) ; // Print the exception System.exit(1); // Exit }
CLI/ODBC/JDBC ÃßÀû ±â´É°ú DB2 ÃßÀû ±â´É db2trc¸¦ »ç¿ëÇÏ¿© JDBC ¶Ç´Â SQLJ ÇÁ·Î±×·¥¿¡ °ü·ÃµÈ ¹®Á¦¸¦ Áø´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ ÃßÀûÀ» ½ÇÇàÇÏ´Â ¹æ¹ýÀº ¹®Á¦Á¡ ÇØ°á ¾È³»¼¿¡ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.
SQLJ ÇÁ·Î±×·¥¿¡ ·±Å¸ÀÓ È£Ãâ ÃßÀû ±â´ÉÀ» ¼³Ä¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. À¯Æ¿¸®Æ¼´Â ÇÁ·Î±×·¥°ú ¿¬°üµÈ ÇÁ·ÎÆÄÀÏÀ» ÀÛµ¿ÇÕ´Ï´Ù. ÇÁ·Î±×·¥¿¡¼ App_SJProfile0À̶ó ÇÏ´Â ÇÁ·ÎÆÄÀÏÀ» »ç¿ëÇÑ´Ù°í °¡Á¤Çغ¾½Ã´Ù. ÇÁ·Î±×·¥¿¡ È£Ãâ ÃßÀûÀ» ¼³Ä¡ÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇϽʽÿÀ.
profdb App_SJProfile0.ser
profdb À¯Æ¿¸®Æ¼´Â JVMÀ» »ç¿ëÇÏ¿© sqlj.runtime.profile.util.AuditorInstaller Ŭ·¡½ºÀÇ main() ¸Þ¼Òµå¸¦ ¼öÇàÇÕ´Ï´Ù. AuditorInstaller Ŭ·¡½º »ç¿ë ¹× ¿É¼Ç¿¡ ´ëÇØ¼´Â ÀÇ
DB2 Java À¥ »çÀÌÆ® ¸¦ ÂüÁ¶ÇϽʽÿÀ.
ÀÀ¿ëÇÁ·Î±×·¥ ¶Ç´Â ¾ÖÇø´¿¡¼ JDBC ¶Ç´Â SQLJ¸¦ »ç¿ë¿©ºÎ¿¡ µû¶ó JDBC ½ºÆåÀº Sun Microsystems¿¡¼ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. JDBC ¹× SQLJ ÀÚ¿øÀÇ ¸µÅ©¿¡ ´ëÇØ¼´Â ÀÇ
DB2 Java À¥ »çÀÌÆ® ¸¦ ÂüÁ¶ÇϽʽÿÀ. ÀÌ ½ºÆå¿¡¼´Â JDBC API¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅͺ£À̽º¿¡ ¾×¼¼½ºÇÑ ´ÙÀ½ ±× µ¥ÀÌÅͺ£À̽ºÀÇ µ¥ÀÌÅ͸¦ Á¶ÀÛÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
¶ÇÇÑ ÀÌ ÀýÀ» Àоî JDBC¿¡ ´ëÇÑ DB2ÀÇ È®Àå°ú ±× Á¦ÇÑ»çÇ׿¡ ´ëÇØ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. JDBC 2.0¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. Java·Î UDF³ª ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ ÀÛ¼ºÇÏ·Á´Â °æ¿ì Java »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ÀÛ¼º ¹× »ç¿ë ¹× Java ÀúÀå ÇÁ·Î½Ãµà¾î ¹× UDF¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. ¿©±â¼´Â ´Ù¸¥ ¾ð¾îº¸´Ù JavaÀÇ °æ¿ì ´Þ¶óÁö´Â °í·Á»çÇ×À» ´Ù·ì´Ï´Ù.
JDBC ¹× SQLJ ÀÀ¿ëÇÁ·Î±×·¥ ¹× ¾ÖÇø´À» ºôµåÇÏ·Á¸é ÀÀ¿ëÇÁ·Î±×·¥ ºôµå ¾È³»¼ÀÇ Áöħ¿¡ µû¶ó »ç¿ëÀÚÀÇ ¿î¿µ üÁ¦ ȯ°æÀ» ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.
DB2ÀÇ Java Áö¿ø¿¡´Â ¼¼ °¡Áö µ¶¸³ ±¸¼º¿ä¼Ò°¡ ÀÖ½À´Ï´Ù.
±×¸² 21Àº DB2 JDBC ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ÀÛ¾÷ ¹æ½ÄÀ» ³ªÅ¸³À´Ï´Ù. DB2 JDBC ÀÀ¿ëÇÁ·Î±×·¥À» DB2 CLI ÀÀ¿ëÇÁ·Î±×·¥À¸·Î °£ÁÖÇÒ ¼ö ÀÖÀ¸¸ç Java ¾ð¾î¸¦ »ç¿ëÇÏ¿© ÀÛ¼ºÇÕ´Ï´Ù. Java ¿ø½Ã ¸Þ¼Òµå¸¦ ÅëÇØ JDBC¿¡ ´ëÇÑ È£ÃâÀº DB2 CLI¿¡ ´ëÇÑ È£Ãâ·Î º¯È¯µË´Ï´Ù. JDBC¿¡¼´Â DB2 Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ DB2 CLI¸¦ ÅëÇØ DB2 ¼¹ö¿¡ À̸£´Â È帧À» ¿äûÇÕ´Ï´Ù.
SQLJ ÀÀ¿ëÇÁ·Î±×·¥Àº ÀÌ JDBC Áö¿øÀ» »ç¿ëÇϸç, »çÀü ó¸® ÄÄÆÄÀÏ ¹× ¹ÙÀεù ´Ü°è¿¡¼ µ¥ÀÌÅͺ£À̽º¿¡ ¹ÙÀεåµÈ ¸ðµç SQL ÆÐŰÁö¸¦ ÀÎÁõÇÏ°í ½ÇÇàÇϵµ·Ï SQLJ ·±Å¸ÀÓ Å¬·¡½º¿¡ ¿ä±¸ÇÕ´Ï´Ù.
±×¸² 21. DB2ÀÇ Java ÀÀ¿ëÇÁ·Î±×·¥ ±¸Çö
![]() |
±×¸² 22Àº ³×Æ® µå¶óÀ̹ö¶ó´Â JDBC ¾ÖÇø´ µå¶óÀ̹öÀÇ ÀÛ¾÷ ¹æ½ÄÀ» ¼³¸íÇÕ´Ï´Ù. µå¶óÀ̹ö´Â JDBC Ŭ¶óÀÌ¾ðÆ®¿Í JDBC ¼¹ö db2jd·Î ±¸¼ºµË´Ï´Ù. JDBC Ŭ¶óÀÌ¾ðÆ® µå¶óÀ̹ö´Â ¾ÖÇø´°ú ÇÔ²² À¥ ºê¶ó¿ìÀú¿¡ ·ÎµåµË´Ï´Ù. ¾ÖÇø´¿¡¼ DB2 µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ¿¬°áÀ» ¿äûÇϸé Ŭ¶óÀÌ¾ðÆ®¿¡¼ À¥ ¼¹ö°¡ ¼öÇà ÁßÀÎ ¸Ó½ÅÀÇ JDBC ¼¹ö¿¡ ´ëÇÑ TCP/IP ¼ÒÄÏÀ» ¿±´Ï´Ù. ¿¬°áÀ» ¼³Á¤Çϸé Ŭ¶óÀÌ¾ðÆ®°¡ TCP/IP ¿¬°áÀ» ÅëÇØ ¾ÖÇø´¿¡¼ JDBC ¼¹ö·ÎÀÇ ÈÄ¼Ó µ¥ÀÌÅͺ£À̽º ¾×¼¼½º ¿äûÀ» Àü¼ÛÇÕ´Ï´Ù. ±×·± ´ÙÀ½ JDBC ¼¹ö¿¡¼ ÇØ´ç CLI(ODBC)¸¦ È£ÃâÇÏ¿© Ÿ½ºÅ©¸¦ ¼öÇàÇÕ´Ï´Ù. ¿Ï·á½Ã JDBC ¼¹ö¿¡¼ ¿¬°áÀ» ÅëÇØ Ŭ¶óÀÌ¾ðÆ®·Î °á°ú¸¦ ´Ù½Ã Àü¼ÛÇÕ´Ï´Ù.
SQLJ ¾ÖÇø´¿¡¼ JDBC Ŭ¶óÀÌ¾ðÆ® µå¶óÀ̹ö À§¿¡ SQLJ Ŭ¶óÀÌ¾ðÆ® µå¶óÀ̹ö¸¦ Ãß°¡ÇÏÁö¸¸ ±×·¸Áö ¾ÊÀº °æ¿ì JDBC ¾ÖÇø´°ú °°Àº ÀÛ¾÷À» ÇÕ´Ï´Ù.
DB2 JDBC ¼¹ö ½ÃÀÛ¿¡ ´ëÇÑ ³»¿ëÀº Command ReferenceÀÇ db2jstrt ¸í·ÉÀ» ÂüÁ¶ÇϽʽÿÀ.
![]() |