jdbc - lagret procedure

, vi har lært at bruge, lagrede procedurer i jdbc, når vi diskuterer jdbc - erklæringer kapitel.dette kapitel svarer til den del, men det ville give dem yderligere oplysninger om jdbc sql flygte syntaks. ligesom en forbindelse objekt, skaber den erklæring og preparedstatement objekter, den skaber også callablestatement objekt, der skal anvendes til at udføre en opfordring til en database, opbevares procedure., skabe callablestatement objekt, hvis du har brug for til at udføre følgende oracle opbevares procedure − skabe eller erstatte procedure getempname (emp_id i antal, emp_first ud varchar) som begynde vælge først til emp_first fra arbejdstagere, hvor id = emp_id;;,, note: frem for oplagret procedure er blevet skrevet til oracle, men vi arbejder med mysql database, så lad vi skriver samme opbevares procedure for mysql som follows at skabe det i emp database −, skilletegn for $- procedure, hvis der er emp `. ` ` $getempname skabe procedure er emp `. ` getempname (i emp_id int, ud emp_first varchar (255) begynde vælge først til emp_first fra arbejdstagere, hvor id = emp_id; ende skilletegn for $og tre typer af parametre findes: in, out, og bistand.den preparedstatement formål bruger kun i parameter.den callablestatement genstand kan bruge alle de tre. her er definitioner for hver − parameter beskrivelse i et parameter, hvis værdi er ukendt, da sql erklæring er skabt.du binder værdier i parametre med setxxx() metoder.en parameter, hvis værdi er leveret af sql erklæring tilbage.du henter værdier fra parametre med getxxx() metoder.bistand en parameter, der giver både input - og output - værdier.du binder variabler med setxxx() metoder og hente værdier med de getxxx() metoder.følgende kode snippet viser, hvordan vi kan anvende, tilslutning. preparecall(), en metode til at instantiate en, callablestatement, genstand, baseret på den foregående opbevares procedure −, callablestatement cstmt = ugyldig; prøve (string sql = "(ringe getempname (??)} "cstmt = conn.preparecall (sql)....} fangst (sqlexception e) {....} endelig {....}, snoren variable sql er oplagret procedure med parameter placeholders. ved hjælp af callablestatement genstande er meget gerne bruger preparedstatement objekter.du skal binde værdier for alle de parametre, inden gennemførelsen af den erklæring, eller du vil modtage en sqlexception. hvis du har i parametre, følger de samme regler og teknikker, der anvendes til en preparedstatement objekt; anvendelse af setxxx() metode, der svarer til java - datatype, du er bindende, når du bruger og bistand parametre du skal bruge en ekstra callablestatement metode, registeroutparameter().den registeroutparameter() metode binder jdbc data type data type oplagret procedure forventes at vende tilbage, når du ringer til dine oplagret. proceduren, du henter værdien fra den parameter, med passende getxxx() metode.denne metode såede de fundne værdi af sql type til en java - datatype., lukning callablestatement mål, ligesom du tæt på andre indlæg genstand, af samme grund bør de også tæt på den callablestatement objekt. et enkelt opkald til close() metode vil gøre arbejdet.hvis du lukker den forbindelse objekt, for det første vil lukke callablestatement genstand som godt.men du bør altid udtrykkeligt tæt på den callablestatement formål for at sikre en ordentlig rengøring. callablestatement cstmt = ugyldig; prøve (string sql = "(ringe getempname (??)} "cstmt = conn.preparecall (sql)....} fangst (sqlexception e) {....} {cstmt endelig. close();}, studywe har undersøgt flere detaljer i indløses - f.eks., jdbc sql flygte syntaks, flygte syntaks giver dem fleksibilitet til at bruge database særlige karakteristika ikke dig ved anvendelse af standard jdbc metoder og egenskaber. de generelle sql flygte syntaks format er således &minus. {nøgleord parametre '}, her er følgende flugt sekvenser, som du ville finde meget nyttig under udførelsen af de jdbc programmering og minus; d t ts nøgleord, bidrager de til at identificere dato, tidspunkt og tidsstempling literals.som de ved, er der ikke to dbmss repræsenterer tid og dato på samme måde.denne flugt syntaks fortæller føreren for at gøre den dato eller det i den pågældende database er format.for eksempel − (d) åååå - mm - dd '), hvor yyyy = år, mm = måned; dd = dato.ved hjælp af denne syntaks (d '2009-09-03') er den 9. marts 2009. her er et simpelt eksempel, der viser, hvordan til dato indsættes i tabel − //skabe en erklæring imod stmt =. createstatement(); //sæt data = = > id, fornavn, efternavn, født snor sql = "indsætte i studerende værdier" + "(100,'zara ',' ali, (d 2001-12-16 '})". stmt. executeupdate (sql); på samme måde, som du kan bruge en af følgende to syntaxes, t eller t, −, {t' tt: mm: ss'), hvor tt = time; mm = øjeblik, ss = andet.ved hjælp af denne syntaks {t '13:30:29'} er 1:30:29 pm. {t 'åååå - mm - dd tt: mm: ss'), og dette er kombineret syntaks for de to ovennævnte syntaks for "d" og "t" til at repræsentere et tidsstempel. flygte nøgleord nøgleord, identificerer denne flugt karakter, der anvendes som klausuler.nyttige, når de anvender sql farlig%, hvilket svarer til en eller flere tegn.for eksempel −, snor sql = "vælg symbol fra mathsymbols, hvor symbol som" med 1% (flugt ". '}" stmt. henret (sql), hvis de bruger backslash karakter (er) som flugt karakter, må man også anvende to backslash 9 tegn i din java snor bogstavelige fordi backslash 9 er også en java flygte karakter. fodnote nøgleord nøgleord, repræsenterer dette scalar funktioner, der anvendes i et dbms.for eksempel, du kan bruge sql funktion, længde, for at få den længde af en række −, {i længde ('hello verden "), det vender tilbage til 11, længden af den tegnstreng," hej ". kald det nøgleord nøgleord er plejede at kalde den lagrede procedurer.for eksempel, en procedure, der kræver et parameter, oplagres, anvendes følgende syntaks −, {kalder my_procedure (?)}, til en procedure, der kræver et parameter, opbevares og returnerer et parameter, anvendes følgende syntaks −, {?= ringe my_procedure (?)} eft nøgleord, dette nøgleord er anvendes til at betegne den ydre skal.syntaksen er således − (eft ydre med}, hvor ydre med = tabel (venstre



Previous:
Next Page: