Spring µ÷ÓÃOracle´æ´¢¹ý³ÌµÄ½á¹û¼¯
oracle ¶ÔÓڸ߼¶ÌØÐÔ×ÜÊÇÓëÖÚ²»Í¬(ÎÒ¼«Á¦ÌÖÑáÕâÒ»µã,Èç¹ûʹÓÃËüµÄ²úÆ·¾ÍÒª¶ÔÕâÖÖ²úÆ·½øÐÐÌØ¶¨µÄ±à³Ì,ÕâÒ²ÊÇÎÒ´Ó²»¿´ºÃweblogicÖ®ÀàµÄƽ̨µÄÔÒò),´ó¶ÔÏó´æÈ¡Ò»Òª¶¨ÓÃËü×Ô¼ºµÄLOB¶ÔÏó,ËùÐÒÎÒ»¹ÄÜͨ¹ýLONG RAWÀ´´úÌæ¡£ÒÔ±ãÄÜʹ³ÌÐò²»ÐèÒªÌØ¶¨µÄ±àÂë¡£µ«¶ÔÓÚ´æ´¢¹ý³Ì(ÎÒÊÇ˵·µ»Ø½á¹û¼¯µÄ´æ´¢¹ý³Ì),ÎÒ»¹Ã»ÓÐʲô·½·¨ÄÜÓÃÒ»¸öͨÓõijÌÐòÀ´´¦ÀíORACLE¡£Ì«¶àµÄ½Ì²Ä»òÎÄÕÂÔÚ½²´æ´¢¹ý³ÌµÄµ÷ÓÃÖ»ÊDz»¸ºÔðÈεؼòµ¥Ö´ÐÐһЩºÊý»òÎÞ½á¹û·µ»ØµÄ´æ´¢¹ý³Ì,ʹ´ó¶àÊý¶ÁÕ߸ù±¾²»ÖªµÀµ½µ×ÈçºÎµ÷Óô洢¹ý³ÌµÄ½á¹û¼¯¡£¶øÔÚSpringÖÐ,¸ù±¾¾ÍûÓÐÕæÕýÍêÈ«µØ½éÉܶԴ洢¹ý³ÌµÄ½á¹û¼¯µÄ´¦Àí,¸ü±ð˵ÏóoracleÕâÖÖ"ÌØ±ð"µÄ´æ´¢¹ý³ÌµÄ½á¹û¼¯´¦Àí¡£ÏÈÀ´¼òµ¥¿´Ò»ÏÂÎÒÃÇÈçºÎÔÚJDBCÖд¦Àí´æ´¢¹ý³ÌµÄ½á¹û¼¯µÄͨÓÃÁ÷³Ì:
¡¡¡¡1¡¢»ñÈ¡CallableStatementÓï¾ä:
CallableStatement cs = conn. prepareCall("{call spName(?,?,?)}");
¡¡¡¡2¡¢´«ÈëÊäÈë²ÎÊýºÍ×¢²áÊä³ö²ÎÊý
cs. setXXX(index,value);//ÊäÈë²ÎÊý
cs. registerOutParameter(index,type);//Êä³ö²ÎÊý
¡¡¡¡3¡¢Ö´Ðд洢¹ý³Ì:
cs.execute();
¡¡¡¡¶ÔÓÚÒ»¸ö´æÖî¹ý³Ì,Èç¹û·µ»ØµÄ½á¹ûÊÇÎÒÃÇÔ¤ÏÈÖªµÀµÄ,ÄÇô¿ÉÒÔ¸ù¾Ý´æ´¢¹ý³Ì¶¨ÒåµÄ˳ÐòÀ´½øÐд¦Àí(ÊÂʵÉÏÒ»°ã²»»áÕâÑù),µ«¶ÔÓÚ¸´ÔӵĶà½á¹û¼¯µÄ´¦Àí,ÈçºÎ¶¨ÒåÒ»¸öͨÓõÄÁ÷³Ì?ÎÒÃÇÏÈ¿´Ò»ÏÂJDBC±¾ÉíÄÜΪÎÒÃÇÌṩʲô?
¡¡¡¡Ò»¸ö´æ´¢¹ý³ÌÖ´Ðк󷵻صÄÊÇbooleanÐÍ:
boolean flag = callableStatement. execute();
¡¡¡¡Èç¹ûflagΪtrue,ÄÇô˵Ã÷·µ»ØÁËÒ»¸ö½á¹û¼¯(ResultSet)ÀàÐÍ,Äã¿ÉÒÔÓÃgetResultSet()µÃµ½µ±Ç°ÐÐËùÔڵĽá¹û,¶øÈç¹û·µ»ØÎªflase,˵Ã÷Ê²Ã´ÄØ?Èç¹ûÄã²»½øÐд¦Àí,ʲôҲ²»ÄÜ˵Ã÷,Ö»ÄÜ˵Ã÷µ±Ç°Ö¸Õë²»ÊÇResultSet,ÓпÉÄÜÊǸüмÆÊý(updateCount)Ò²¿ÉÄÜʲôҲûÓз´Ó¦
ÄÇôÈç¹ûµ±Ç°Ö¸ÕëΪflaseʱÈçºÎ´¦Àí?ÎÒÃÇÓ¦¸ÃÏÈgetUpdateCount();Èç¹û·µ»Ø-1,¼È²»Êǽá¹û¼¯,ÓÖ²»ÊǸüмÆÊýÁË¡£ËµÃ÷ûµÄ·µ»ØÁË¡£¶øÈç¹ûgetUpdateCount()·µ»Ø0»ò´óÓÚ0,Ôò˵Ã÷µ±Ç°Ö¸ÕëÊǸüмÆÊý(0µÄʱºòÓпÉÄÜÊÇDDLÖ¸Áî)¡£ÎÞÂÛÊÇ·µ»Ø½á¹û¼¯»òÊǸüмÆÊý,ÄÇôÔò¿ÉÄÜ»¹¼ÌÐøÓÐÆäËü·µ»Ø¡£Ö»ÓÐÔÚµ±Ç°Ö¸Ö¸ÕëgetResultSet()==null && getUpdateCount() == -1²Å˵Ã÷ûÓÐÔÙ¶àµÄ·µ»Ø¡£
¡¡¡¡´æ´¢¹ý³ÌµÄ·µ»ØºÍResultSetÀàËÆ,ÿ´Î´¦ÀíµÄ·µ»Ø½á¹ûÏ൱ÓÚÊÇResultSetµÄRow,Ö»²»¹ý´æ´¢¹ý³ÌµÄRow£¬×îÏÈÔÚµÚÒ»Ðжø²»ÊÇÏóResultSetÒªÏÈnext²Åµ½µÚÒ»ÐÐ,´æ´¢¹ý³ÌÏòÏÂÒÆ¶¯Ò»ÐÐÓÃgetMoreResults(),Ï൱ÓÚResultSetµÄnext()¡£Í¬ÑùËü·µ»Øb
Ïà¹ØÎĵµ£º
±¾ÏµÁÐÎÄÕµ¼º½
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Ò»)--αÁÐROWNUMʹÓü¼ÇÉ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(¶þ)--±êÁ¿×Ó²éѯ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Èý)--PackageµÄÓŵã
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(ËÄ)--ÅúÁ¿´¦Àí
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Îå)--µ÷Óô洢¹ý³Ì·µ»Ø½á¹û¼¯
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Áù)- ......
SQL*PLus> desc emp;
Ãû³Æ &nbs ......
ÉùÃ÷£º
ÒÔϵÄÀý×Ó²»Ò»¶¨ÕýÈ·£¬Ö»ÊÇΪÁËÑÝʾ´ó¸ÅµÄÁ÷³Ì¡£
Ò»£ºÎÞ·µ»ØÖµµÄ´æ´¢¹ý³Ì
´æ´¢¹ý³ÌΪ£º
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
È»ºóÄØ£¬ÔÚjavaÀïµ÷ÓÃʱ¾ÍÓÃÏÂÃæµÄ´ ......
×Ô¼ºÔÚ×öÕâ¸ö³ÌÐòµÄʱºò¿´¹ýºÜ¶àµÄ×ÊÁÏ£¬ÉÏÍøÒ²²éÁ˲»ÉÙµÄ×ÊÁÏ£¬¿ÉÊǶà°ë˵µÄÊdzöÉñÈ뻯£¬ÔÆÀïÎíÀï...²»¹â¿´Á˲»Ã÷°×£¬¶øÇÒÊÇÓÐÃ÷°×Ò»µãµÄÈË£¬¿´ÁËÒ²±äµÄÓÐЩģºýÁË¡£
ÕâÀïÎÒÑÚÊÎÒ»Ì×ÍêÕûµÄjava jdbc Á¬½ÓOracle9iµÄ·¶Àý¡£
package com.lxh.dbcon;//´ò°ü
import ......
MySQL Data Type
Oracle Data Type
BIGINT
NUMBER(19, 0)
BIT
RAW
BLOB
BLOB, RAW
CHAR
CHAR
DATE
DATE
DATETIME
DATE
DECIMAL
FLOAT (24)
DOUBLE
FLOAT (24)
DOUBLE PRECISION
FLOAT (24)
ENUM
VARCHAR2
FLOAT
FLOAT
INT
NUMBER(10, 0)
INTEGER
NUMBER(10, 0)
LONGBLOB
BLOB, RAW
LONGTEX ......