Я прочитал H2 документы о хранении объектов в базе данных. Существует специальный тип SQL OTHER и методы setObject
и getObject
. Я попробовал этот код:Как вставить объект в h2
PreparedStatement statement = null;
try {
statement = connection.prepareStatement("CREATE TABLE PUBLIC.foo (name VARCHAR(64) NOT NULL, data OTHER NULL);");
statement.execute();
} finally {
statement.close();
}
statement = null;
try {
statement = connection.prepareStatement("INSERT INTO PUBLIC.foo (name, data) VALUES(?,?);");
statement.setString(1, "lololo");
statement.setObject(2, new String[]{"foo", "bar"});
statement.execute();
}finally {
statement.close();
}
Но у меня есть исключение:
org.h2.jdbc.JdbcSQLException: ШÐμÑÑ,нР° Ð'Ñ † Ð ° Ñ,Ð¸Ñ € Ð¸Ñ ‡ нР° Ñ Ñ Ñ,Ñ € окР° Ñ Ð¾Ð'ÐμÑ € жиÑ, нÐμÑÐμÑ Ñ,нР° Ð'Ñ † Ð ° Ñ,и Ñ € Ð¸Ñ ‡ Ð½Ñ <Ðμ Ñ Ð¸Ð¼Ð²Ð¾Ð »Ñ <:" (foo, bar) " Шестнадцатеричная строка содержит шестнадцатеричный символ:" (foo, bar) "; SQL заявление: (?,) INSERT INTO PUBLIC.foo (имя, данные) ЦЕННОСТИ - (? 1, 2) [90004-191]
Что не так?
здесь смотрите: http://stackoverflow.com/questions/31964209/h2-other-data-type-throws-exception-when-storing -string-or-boolean – Seelenvirtuose
Большое спасибо. –