Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ° oracle
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Oracle: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
ΠΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
SQLException: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
Π§ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ?
ΠΡΡΡ Π»ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠΈΠΉ, ΡΡΠΎ Π²ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Oracle ΠΈ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ?
ΠΠ’ΠΠΠ’Π«
ΠΡΠ²Π΅Ρ 1
ΠΡΠ»ΠΈ ΡΡΠΎ SQLException, Π±ΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ Java, ΡΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ResultSet, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π²Π°ΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎΠ»Π±Π΅Ρ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° 3 ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², Π½ΠΎ ΠΈΠ· SQL-Π·Π°ΠΏΡΠΎΡΠ° Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΡΠΎΠ»Π±ΡΠ°.
ΠΡΠ²Π΅Ρ 2
ΠΠΎΡ ΠΎΠΆΠ΅, Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ SELECT ΡΡΠΎΠ»Π±ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ORDER BY ΡΡΠΎΠ»Π±ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ?
ΠΡΠ±ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΌ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠΈ SQL?
ΠΡΠ²Π΅Ρ 3
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Spring SimpleJdbcTemplate, Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ» Π°ΡΠ³ΡΠΌΠ΅Π½Ρ queryForList, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π» Π·Π½Π°ΠΊΡ Π²ΠΎΠΏΡΠΎΡΠ° Π² SQL. ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° Π±ΡΡΡ:
ΠΡΠ²Π΅Ρ 4
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Spring Security 3.1.0. ΠΈ Oracle 11G. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΡΠΎΠ»Π±ΡΠ°:
ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ: «1 ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ» ΠΊ Π·Π°ΠΏΡΠΎΡΡ:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π² ββΠ±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ Spring JDBC.
ΠΡΠ²Π΅Ρ 5
Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΈΠΏΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π²ΡΠΎΠ΄Π΅: ΠΏΡΡΡΡ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ
ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° readyStatement (JDBC), Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π΄Π°Π΅ΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ
ΡΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ SQLException: Invalid column index
ΠΡΠ°ΠΊ, Ρ ΡΠ΄Π°Π»ΠΈΠ» ΡΡΡ Π²ΡΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΡΠ²Π΅Ρ 6
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ. Π― Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ «?» Π΄Π»Ρ «VALUES» ΠΌΠΎΠ΅ Π·Π°ΡΠΌΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π±ΠΈΠ»ΠΎΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΡΠΆΠ½ΡΡ ΡΡΠΌΠΌΡ ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ» ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎ ΠΌΠ½Π΅ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΏΠΎΠΊΠ° Ρ Π½Π΅ Π½Π°ΡΠ°Π» ΡΠ°ΡΡΠ΅ΡΡΠ²Π°ΡΡ SQL, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π» p.campbell.
ΠΡΠ²Π΅Ρ 7
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ssn, ΠΎΠ½ Π²ΡΠ΄Π°Π²Π°Π» Π½Π΅Π²Π΅ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΡΠΎΠ»Π±ΡΠ° ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΠΎΠ½ Π²ΡΠ·Π²Π°Π½ firstName, ΠΈΠΌΠ΅ΡΡΠΈΠΌ «Π²Π½ΡΡΡΠΈ»; ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΡΠ°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
ΠΡΠ²Π΅Ρ 8
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΎΡΠ°ΠΊΡΠ»Π° Ρ Π½ΠΈΠΆΠ΅ ΡΡΡΡΠΊΡΡΡΡ
Π― ΠΏΡΡΠ°Π»ΡΡ Π²ΡΡΠ°Π²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ
SQLException: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
ΠΠ΄Π΅ΡΡ 1 ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎΠ»Π±Π΅Ρ Π½Π΅Ρ Π² Π·Π°ΠΏΡΠΎΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ Π½Π΅ ΡΡΠΎΠ»Π±ΡΡ Π½Π΅Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Oracle: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
Π― ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
SQLException: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
Π΅ΡΡΡ Π»ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠΈΠΉ, ΡΡΠΎ Π²ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Oracle?
9 ΠΎΡΠ²Π΅ΡΠΎΠ²
ΠΡΠ»ΠΈ ΡΡΠΎ SQLException, Π±ΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ Java, ΡΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², Π½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎΠ»Π±Π΅Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ 3 ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ°, Π½ΠΎ ΠΈΠ· SQL-Π·Π°ΠΏΡΠΎΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΡΠΎΠ»Π±ΡΠ°.
ΠΏΠΎΡ ΠΎΠΆΠ΅, Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ SELECT ΡΡΠΎΠ»Π±Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ORDER BY ΡΡΠΎΠ»Π±Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ?
Π»ΡΠ±ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SQL?
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Simplejdbctemplate Spring, Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ» Π°ΡΠ³ΡΠΌΠ΅Π½Ρ queryForList, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π» Π·Π½Π°ΠΊΡ Π²ΠΎΠΏΡΠΎΡΠ° Π² SQL. ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° Π±ΡΡΡ:
Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ
ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° preparedStatement (JDBC), Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π΄Π°Π΅ΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ
ΡΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ SQLException: Invalid column index
ΠΡΠ°ΠΊ, Ρ ΡΠ΄Π°Π»ΠΈΠ» ΡΡΡ Π²ΡΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π°
Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Spring Security 3.1.0. ΠΈ Oracle 11G. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΡΠΎΠ»Π±ΡΠ°:
ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ:» 1 ΠΠ°ΠΊ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ » Π² Π·Π°ΠΏΡΠΎΡ:
ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ Spring JDBC core.
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ. Π― Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ «?»Π΄Π»Ρ» Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ » ΠΌΠΎΠ΅ Π·Π°ΡΠΌΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π±ΠΈΠ»ΠΎΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΡΠΆΠ½ΡΡ ΡΡΠΌΠΌΡ ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ» ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎ ΠΌΠ½Π΅ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΏΠΎΠΊΠ° Ρ Π½Π΅ Π½Π°ΡΠ°Π» ΠΏΡΠΎΡΠ΅ΡΡΠ²Π°ΡΡ SQL ΠΊΠ°ΠΊ p.- ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» ΠΡΠΌΠΏΠ±Π΅Π»Π».
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ssn, ΠΎΠ½ Π΄Π°Π΅Ρ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΡΠΎΠ»Π±ΡΠ° ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΡΡΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ firstName, ΠΈΠΌΠ΅ΡΡΠΈΠΌ ‘ Π²Π½ΡΡΡΠΈ; ΡΡΠΎ Π½Π°ΡΡΡΠ°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ sql ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΡΠΎ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΅ΠΉ SQL IDE, ΠΈ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
Π΄Π°Π»Π΅Π΅, Ρ ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Ρ java:
Π― ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΠ» ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π° Π±Π΅Π»ΠΎΠΌ ΡΠΎΠ½Π΅
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Oracle: Π½Π΅Π²Π΅ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
ΠΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
SQLException: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
Π§ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ?
ΠΡΡΡ Π»ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠΈΠΉ, ΡΡΠΎ Π²ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Oracle ΠΈ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ?
8 ΠΎΡΠ²Π΅ΡΠΎΠ²
ΠΡΠ»ΠΈ ΡΡΠΎ SQLException, Π±ΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ Java, ΡΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ResultSet, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π²Π°ΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎΠ»Π±Π΅Ρ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° 3 ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², Π½ΠΎ ΠΈΠ· SQL-Π·Π°ΠΏΡΠΎΡΠ° Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΡΠΎΠ»Π±ΡΠ°.
ΠΠΎΡ ΠΎΠΆΠ΅, Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ SELECT ΡΡΠΎΠ»Π±ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ORDER BY ΡΡΠΎΠ»Π±ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ?
ΠΡΠ±ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΌ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠΈ SQL?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Spring SimpleJdbcTemplate, Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ» Π°ΡΠ³ΡΠΌΠ΅Π½Ρ queryForList, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π» Π·Π½Π°ΠΊΡ Π²ΠΎΠΏΡΠΎΡΠ° Π² SQL. ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° Π±ΡΡΡ:
Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΈΠΏΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π²ΡΠΎΠ΄Π΅: ΠΏΡΡΡΡ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ
ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° readyStatement (JDBC), Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π΄Π°Π΅ΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ
ΡΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ SQLException: Invalid column index
ΠΡΠ°ΠΊ, Ρ ΡΠ΄Π°Π»ΠΈΠ» ΡΡΡ Π²ΡΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Spring Security 3.1.0. ΠΈ Oracle 11G. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΡΠΎΠ»Π±ΡΠ°:
ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ: «1 ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ» ΠΊ Π·Π°ΠΏΡΠΎΡΡ:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π² ββΠ±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ Spring JDBC.
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ. Π― Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ «?» Π΄Π»Ρ «VALUES» ΠΌΠΎΠ΅ Π·Π°ΡΠΌΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π±ΠΈΠ»ΠΎΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΡΠΆΠ½ΡΡ ΡΡΠΌΠΌΡ ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ» ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎ ΠΌΠ½Π΅ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΏΠΎΠΊΠ° Ρ Π½Π΅ Π½Π°ΡΠ°Π» ΡΠ°ΡΡΠ΅ΡΡΠ²Π°ΡΡ SQL, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π» p.campbell.
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ssn, ΠΎΠ½ Π²ΡΠ΄Π°Π²Π°Π» Π½Π΅Π²Π΅ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΡΠΎΠ»Π±ΡΠ° ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΠΎΠ½ Π²ΡΠ·Π²Π°Π½ firstName, ΠΈΠΌΠ΅ΡΡΠΈΠΌ «Π²Π½ΡΡΡΠΈ»; ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΡΠ°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΎΡΠ°ΠΊΡΠ»Π° Ρ Π½ΠΈΠΆΠ΅ ΡΡΡΡΠΊΡΡΡΡ
Π― ΠΏΡΡΠ°Π»ΡΡ Π²ΡΡΠ°Π²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ
SQLException: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
ΠΠ΄Π΅ΡΡ 1 ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎΠ»Π±Π΅Ρ Π½Π΅Ρ Π² Π·Π°ΠΏΡΠΎΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ Π½Π΅ ΡΡΠΎΠ»Π±ΡΡ Π½Π΅Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Oracle: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
Π― ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
SQLException: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°
Π§ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ?
ΠΡΡΡ Π»ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠΈΠΉ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π²ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Oracle ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ?
8 ΠΎΡΠ²Π΅ΡΠΎΠ²
Π£ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ PreparedStatement Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΠΌΠΎΡ ΡΠ°Π±Π»ΠΈΡΡ. Π― ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» Π·Π°ΠΏΡΠΎΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ SQL, ΠΈ ΠΎΠ½ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π», Π½ΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ PreparedStatement ΡΠ°Π±ΠΎΡΠ°ΡΡ. String sql = INSERT INTO table game(gamedate, type, world) values (TIMESTAMP.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠΎΠ»Π±ΡΠ° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, Π² oracle. ΠΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡ Π·Π°ΠΏΡΠΎΡ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΊΡΡΡΠΎΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, Π² ΡΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Ρ Π΄Π΅Π»Π°Ρ : CREATE OR REPLACE PROCEDURE etl_mergeEmployeeAttendee ( v_EmployeeNumber.
ΠΡΠ»ΠΈ ΡΡΠΎ SQLException, Π±ΡΠΎΡΠ΅Π½Π½ΡΠΉ Java, ΡΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ResultSet, Π½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎΠ»Π±Π΅Ρ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 3 ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ°, Π½ΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΡΠΎΠ»Π±ΡΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠ° SQL.
ΠΡΠΎ Π·Π²ΡΡΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ SELECT ΡΡΠΎΠ»Π±Π΅Ρ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ?
ΠΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΌ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠΈ SQL?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Spring SimpleJdbcTemplate, Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ» Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² queryForList, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π» Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π·Π½Π°ΠΊΡ Π² SQL. ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° Π±ΡΡΡ:
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ ΡΠΈΠΏΠ°, ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ
ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° preparedStatement (JDBC), Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π΄Π°Π΄ΠΈΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ
ΡΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ SQLException: Invalid column index
ΠΡΠ°ΠΊ, Ρ ΡΠ΄Π°Π»ΠΈΠ» ΡΡΡ Π²ΡΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° ΡΠ΅ΡΠ΅Π½Π°
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Spring Security 3.1.0. ΠΈ Oracle 11G. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΡΠΎΠ»Π±ΡΠ°:
ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ: «1 as enabled» Π² Π·Π°ΠΏΡΠΎΡ:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ Spring JDBC.
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ. Π― Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ «?» Π΄Π»Ρ «VALUES», ΠΌΠΎΠΉ eclipse ΡΠ°Π·Π±ΠΈΠ»ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΡΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ, ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ» ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎ ΠΌΠ½Π΅ ΠΈ Π² Π³ΠΎΠ»ΠΎΠ²Ρ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΏΠΎΠΊΠ° Ρ Π½Π΅ Π½Π°ΡΠ°Π» ΠΏΡΠΎΡΠ΅ΡΡΠ²Π°ΡΡ SQL, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π» p.campbell.
ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ sql Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ SQL IDE, ΠΈ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ java:
Π₯ΠΎΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ sql (ΠΏΠ΅ΡΠ²ΡΠΉ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ) ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ°Π²ΡΡΠΊΠΈ Π²ΠΎΠΊΡΡΠ³ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΎΠΉ, ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ Π² PreparedStatement, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ Π²ΠΎΠΊΡΡΠ³ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°?, ΠΈ ΠΎΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΎΠΉ.
Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΠ» ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π° Π±Π΅Π»ΠΎΠΌ ΡΠΎΠ½Π΅
ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΠ°Ρ Π΄Π°ΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ° oracle? Π― ΡΠΌΠΎΡΡΡ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ, Π΄Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π²Π½Π° 2011-10-03 22:09:16. ΠΠ·Π½Π°ΡΠ°Π΅Ρ Π»ΠΈ ΡΡΠΎ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΡΠ°Π»ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ssn, ΠΎΠ½ Π²ΡΠ΄Π°Π²Π°Π» ΠΎΡΠΈΠ±ΠΊΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΡΠΎΠ»Π±ΡΠ° ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΡΡΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ firstName ΠΈΠΌΠ΅Π΅Ρ ‘ Π²Π½ΡΡΡΠΈ; ΡΡΠΎ Π½Π°ΡΡΡΠ°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ². Π’Π°Π±Π»ΠΈΡΠ° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΌΡΠ»ΡΡΠΈΡΠ΅Π½Π°Π½ΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π·Π°ΠΊΠ°Π·Ρ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΠ΄Π°Π²ΡΠΎΠ². Π ΡΠ°Π±Π»ΠΈΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠΎΡΠ½ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ.
Π― ΠΏΠΎΠ»ΡΡΠ°Ρ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π²ΡΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠΎ ΠΌΠΎΠΉ DAO. ΠΠ΅ Π·Π½Π°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°. try< currentCon = JavaConnectionDB.getConnection();.
ΠΡΠΈΠ±ΠΊΠ°: ORA-32102: Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ OCI var oracle = require(‘oracle’); oracle.connect(< hostname: hostname, user: user, password: password >, function(err, connection) < if(err)<.
Π£ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ PreparedStatement Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΠΌΠΎΡ ΡΠ°Π±Π»ΠΈΡΡ. Π― ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» Π·Π°ΠΏΡΠΎΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ SQL, ΠΈ ΠΎΠ½ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π», Π½ΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠΎΠ»Π±ΡΠ° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, Π² oracle. ΠΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡ Π·Π°ΠΏΡΠΎΡ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΊΡΡΡΠΎΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, Π² ΡΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ.
ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΠ°Ρ Π΄Π°ΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ° oracle? Π― ΡΠΌΠΎΡΡΡ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ, Π΄Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π²Π½Π° 2011-10-03 22:09:16. ΠΠ·Π½Π°ΡΠ°Π΅Ρ Π»ΠΈ ΡΡΠΎ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
ΠΡΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡΡ.. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ excel ΠΈ Π²ΡΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΡ oracle Π΄Π. ΠΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ°. ΠΡΠΊΠ°Π» ΡΡΠ°ΡΡΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠ³.
Ρ ΠΏΡΡΠ°ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ Π·Π°ΠΏΠΈΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² 2 ΡΡΠΎΠ»Π±ΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠ»ΡΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring jdbctemplate. ΠΠΎ Ρ Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ Ρ Π½ΠΈΠΆΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π― ΡΠΏΠΎΠΌΡΠ½ΡΠ» ΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅. Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» Π².
ΠΠΎΠ³Π΄Π° Ρ ΠΈΠ·ΡΡΠ°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ oracle, Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Ρ Π½Π΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΠΎΠ½ΡΡΡ. create unique index u_index1 on table_a(case when code is not null then company_id end, code) Π― Π½Π΅ ΠΌΠΎΠ³Ρ.
ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ»Π±ΡΠ° oracle
ΠΠ΅ΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ Π½Π΅ Π±ΡΠ΄Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΅ΠΌΠΊΠΈΠΉ. ΠΠΏΠΈΡΡ ΡΠ°ΠΊ:
Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ conn = DriverManager.getConnection(.
Π΄Π°Π»Π΅Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ fillPerson(Connection conn, List persons)
Π² Π½Π΅ΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ ΠΠΠ Π‘ΠΠΠ«
ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠ΅ ΡΡΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊ:
Π΄Π°Π»Π΅Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ fillDocs(Connection conn, List persons)
Π² Π½Π΅ΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΠΠΠ£ΠΠΠΠ’Π« ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΠΠ Π‘ΠΠΠ« (ΠΠΠΠ£ΠΠΠΠ’Π«.ΠΠΠ_ΠΠΠ Π‘ΠΠΠ« = ΠΠΠ Π‘ΠΠΠ«.ΠΠΠ)
ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠ΅ ΡΡΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊ:
Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΡΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° fillPerson Π²ΡΠ΅ Π±Π΅Π· Π±Π°Π³ΠΎΠ², Π° Π²ΠΎΡ Π²ΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Ρ ΠΎΡΠ΅Ρ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ
Π― ΠΏΠΎΠ΄ΡΠΌΠ°Π» ΡΡΠΎ commit Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ (ΠΠΠ Π‘ΠΠΠ«) ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡΠ°Π²ΠΊΠ° Π²ΠΎ Π²ΡΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ (ΠΠΠΠ£ΠΠΠΠ’Π«, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ).
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² fillPerson ΠΈ fillDocs Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» conn.setAutoCommit(false);
Ρ.ΠΊ. ΠΏΡΠΎΡΠΈΡΠ°Π» Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΡΠΎ conn.commit() Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° auto-commit ΠΎΠΏΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°. Π ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Connection Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π°Π²ΡΠΎΠ·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎ ΠΈ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ.
Π― ΡΠ°ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ: commit Π΄Π΅Π»Π°Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ?!
ΠΡΡ
ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ:
1) ΠΎΡΠΊΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ setAutoCommit(false);
2) Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ fillPerson
3) Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ conn.commit()
4) Π·Π°ΠΊΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
5) ΠΎΡΠΊΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ setAutoCommit(false);
6) Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ fillDocs
7) Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ conn.commit()
8) Π·Π°ΠΊΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅