sql >> Database >  >> RDS >> Oracle

Hoe UUID in de RAW (16) kolom in te voegen

U moet de UUID converteren naar een bytearray. Zie de methode asBytes hoe het te doen.

Daarna is de binding zo eenvoudig als het gebruik van setBytes .

Voorbeeld

def stmt = con.prepareStatement("insert into TAB_UUID (id, uuid) values (?,?)") 
// bind
stmt.setInt(1,1)
def uuid = UUID.randomUUID()
stmt.setBytes(2,asBytes(uuid)) 
def rowCount = stmt.executeUpdate()

Hier, voor het geval de link niet werkt, de conversiemethode UUID naar bytearray

  public static byte[] asBytes(UUID uuid) {
    ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
    bb.putLong(uuid.getMostSignificantBits());
    bb.putLong(uuid.getLeastSignificantBits());
    return bb.array();
  }


  1. Heroku on Rails - Ongeldige DATABASE_URL

  2. Voorkomen dat MySQL impliciete standaardwaarden in niet-nulkolommen invoegt

  3. MySQL-query gebruiken om rijen te doorkruisen om een ​​recursieve boom te maken

  4. Zend Framework en Mysql - erg traag