PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jaki jest odpowiednik encode(, 'escape') PostgreSQL w javie?

Czy chcesz tablicę ciągów, czy chcesz asdad\000asdasd\000 ? Czy pracujesz z tablicą bajtów, czy z rzeczywistym ciągiem?

Ciąg do tablicy bajtów (jeśli pracujesz z ciągiem)

String str = "\x61736461640061736461736400"
str = str.substring(2); //get rid of \x
byte [] bytes = new byte[str.length()/2];
for(int i = 0; i < result.length; i++) {
  String numberStr = str.substring(i*2,i*2+2);
  int numberInt = Integer.parseInt(numberStr);
  bytes[i] = (byte) numberInt;
}

tablica bajtów do String ArrayList

ArrayList<String> result = new ArrayList<String>();
int startIndex = 0;
for(int i = 0; i < bytes.length; i++) {
  if(bytes[i] == 0) {
    if(startIndex > i) {
      byte [] stringBytes = new byte[i - startIndex];
      for(int j = startIndex; j < i; j++) {
        stringBytes[j-startIndex] = bytes[j];
      }
      result.add(new String(stringBytes, "US-ASCII"));
    }
    startIndex = i+1;
  }
}

tablica bajtów do ciągu znaków ze znakami ucieczki ósemkowej

DecimalFormat formatter = new DecimalFormat("000");
StringBuilder resultBuilder = new StringBuilder();
for(byte b : bytes) {
  if(b > 0) {
    char c = (char) b;
    resultBuilder.append(c);
  } else {
    int bInt = b & 0xFF;
    String octal = Integer.toString(bInt, 8);
    int numPadZeroesNeeded = 3 - octal.length();
    resultBuilder.append('\');
    for(int i = 0; i < numPadZeroesNeeded; i++) {
      resultBuilder.append('0');
    }
    resultBuilder.append(octal);
  }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak obliczyć czas pomiędzy dwoma znacznikami czasu (PostgreSQL)

  2. Django prefetch_związane z limitem

  3. Czy dane w solr są wspierane przez postgres w ckan

  4. Problemy z połączeniem z SQLAlchemy i wieloma procesami

  5. Postgresql grupuj według dla wielu linii