ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому
ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€

πŸ§ͺ Π—Π°Ρ‡Π΅ΠΌ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² SQL?

πŸ§ͺ Π—Π°Ρ‡Π΅ΠΌ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² SQL? БСгодня ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Ρ‚Ρ€ΡŽΠΊ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ слоТныС запросы Π² PostgreSQL (ΠΈΠ»ΠΈ любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ SQL-Π΄Π²ΠΈΠΆΠΊΠ΅) ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΡ… Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ Π΄ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Если Ρƒ тСбя Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ слоТная Π»ΠΎΠ³ΠΈΠΊΠ° Π² JOIN, CASE, ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… функциях ΠΈΠ»ΠΈ CTE β€” протСстируй это Π½Π° сторонС Π±Π°Π·Ρ‹, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. πŸ”Ή Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² PostgreSQL: CREATE OR REPLACE FUNCTION test_discount(user_id INT) RETURNS NUMERIC AS $$ BEGIN RETURN ( SELECT CASE WHEN u.vip = true THEN 0.2 ELSE 0.05 END FROM users u WHERE u.id = user_id ); END; $$ LANGUAGE plpgsql; πŸ”Ή ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ прямо Π² Π±Π°Π·Π΅: SELECT test_discount(101); -- Π²Π΅Ρ€Π½Ρ‘Ρ‚ 0.2 ΠΈΠ»ΠΈ 0.05 βœ… Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π°: - Π’Ρ‹ Ρ…ΠΎΡ‡Π΅ΡˆΡŒ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ Π±Π΅Π· запуска всСго прилоТСния; - Π£ тСбя CI/CD запускаСт SQL-тСсты ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ (Ρ‡Π΅Ρ€Π΅Π· pgTAP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€); - Π’Ρ‹ Ρ…ΠΎΡ‡Π΅ΡˆΡŒ быстро ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ запрос Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΌΠ»ΠΈΠ΄Ρƒ Π±Π΅Π· Java-контСкста. πŸ’‘Π›Π°ΠΉΡ„Ρ…Π°ΠΊ: Ссли Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ Liquibase/Flyway β€” ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прямо Π² changelog'Π°Ρ… ΠΊΠ°ΠΊ test-only objects, Π½Π΅ влияя Π½Π° runtime-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ β€” экономит массу Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π΅Π²ΡŒΡŽ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ запросов! πŸ‘‰ @BookJava

705 просмотров

Канал Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€Π°

1Β 607 подписчиков Β· Наука

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

Π•Ρ‰Ρ‘ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ «Наука»

Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Π”Π²Π° Ρ€Π°Π·Π° Π² нСдСлю свСТиС посты этого ΠΊΠ°Π½Π°Π»Π° β€” Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ Π² Π»ΠΈΡ‡Π½ΡƒΡŽ Π»Π΅Π½Ρ‚Ρƒ. Π‘Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска ΠΊΠ°Π½Π°Π»Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.