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

जावा में यूयूआईडी को बाइनरी (16) के रूप में कैसे सहेजना है?

इसे बाइट्स के रूप में संग्रहीत करने का प्रयास करें:

UUID uuid = UUID.randomUUID();
byte[] uuidBytes = new byte[16];
ByteBuffer.wrap(uuidBytes)
        .order(ByteOrder.BIG_ENDIAN)
        .putLong(uuid.getMostSignificantBits())
        .putLong(uuid.getLeastSignificantBits());

con.createQuery("INSERT INTO TestTable(ID, Name) VALUES(:id, :name)")
    .addParameter("id", uuidBytes)
    .addParameter("name", "test1").executeUpdate();

थोड़ा सा स्पष्टीकरण:आपकी तालिका BINARY(16) का उपयोग कर रही है, इसलिए UUID को इसके कच्चे बाइट्स के रूप में क्रमबद्ध करना वास्तव में सीधा तरीका है। यूयूआईडी अनिवार्य रूप से कुछ आरक्षित बिट्स के साथ 128-बिट इनट्स हैं, इसलिए यह कोड इसे बड़े-एंडियन 128-बिट इंट के रूप में लिखता है। बाइटबफ़र दो लॉन्ग को बाइट ऐरे में बदलने का एक आसान तरीका है।

अब व्यवहार में, सभी रूपांतरण प्रयास और सिरदर्द आपके द्वारा प्रति पंक्ति सहेजे गए 20 बाइट्स के लायक नहीं होंगे।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php, pdo mysql आंतरिक जुड़ने के साथ सम्मिलित नहीं कर सकता

  2. MySQL के पुराने संस्करणों में TO_SECONDS() का अनुकरण करना (<5.5.0)

  3. डॉकर लिखें:mysql डेटाबेस के लिए स्प्रिंग बूट कनेक्शन ने मना कर दिया

  4. कमांड लाइन PHP mysql_connect () त्रुटि

  5. मुझे अपने लिस्टबॉक्स में वास्तविक मूल्यों के बजाय System.Data.DataRowView क्यों मिलता है?