PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मैं Java और Postgres enums को अद्यतन के लिए एक साथ कैसे काम करूँ?

JDBC के दृष्टिकोण से, PostgreSQL एनम को एक स्ट्रिंग की तरह मानें।

जावा एनम और पोस्टग्रेएसक्यूएल एनम के बीच कन्वर्ट ब्लॉग को उद्धृत करना:

<ब्लॉकक्वॉट>

PostgreSQL आपको निम्नलिखित सिंटैक्स का उपयोग करके एनम प्रकार बनाने की अनुमति देता है:

CREATE TYPE animal_type AS ENUM('DOG', 'CAT', 'SQUIRREL');

अब आप अपनी टेबल में 'जानवर' को डेटाटाइप के तौर पर इस्तेमाल कर सकते हैं, उदाहरण के लिए:

create table pet (                         
    pet_id        integer         not null,
    pet_type      animal_type     not null,
    name          varchar(20)     not null
);

जावा में, आपके पास एक समान एनम प्रकार होगा:

public enum AnimalType {
    DOG,
    CAT,
    SQUIRREL;
}

Java और PostgreSQL एनम के बीच कनवर्ट करना सीधा है। उदाहरण के लिए, किसी एनम फ़ील्ड को सम्मिलित करने या अपडेट करने के लिए आप अपने SQL ReadyedStatement में CAST सिंटैक्स का उपयोग कर सकते हैं:

INSERT INTO pet (pet_id, pet_type, name) VALUES (?, CAST(? AS animal_type), ?);

--or

INSERT INTO pet (pet_id, pet_type, name) VALUES (?, ?::animal_type, ?);

पोस्टग्रेज आपको केवल एक स्ट्रिंग के रूप में इसके मान को पास करके एक एनम को सम्मिलित/अपडेट करने देगा।

कास्टिंग हो या न हो, जावा पक्ष समान है। आप इस तरह फ़ील्ड सेट करेंगे:

stmt.setInt(1, 1);
stmt.setString(2, AnimalType.DOG.toString());
stmt.setString(3, 'Rex');

एक सेलेक्ट स्टेटमेंट से एनम को पुनः प्राप्त करना इस तरह दिखता है:

AnimalType.valueOf(stmt.getString("pet_type"));

ध्यान रखें कि एनम केस-संवेदी हैं, इसलिए आपके पोस्टग्रेज एनम और जावा एनम के बीच किसी भी मामले के बेमेल होने का हिसाब देना होगा। यह भी ध्यान दें कि PostgreSQL enum प्रकार गैर-मानक SQL है, और इस प्रकार पोर्टेबल नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Psql सर्वर से कनेक्ट नहीं हो सका:ऐसी कोई फ़ाइल या निर्देशिका नहीं, 5432 त्रुटि?

  2. टाइप कैरेक्टर अलग-अलग के लिए बहुत लंबा मान (एन)

  3. पोस्टग्रेएसक्यूएल - संग्रहित प्रक्रिया में गतिशील एसक्यूएल लिखना जो परिणाम सेट देता है

  4. VPS/समर्पित सर्वर पर PostgreSQL कैसे प्राप्त करें

  5. अपाचे स्पार्क के साथ प्राथमिक कुंजी