Установка переменной сеанса Mariadb в JDBC не работаетJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Установка переменной сеанса Mariadb в JDBC не работает

Сообщение Anonymous »

Следующее работает в DBeaver, но не в JDBC:
SET @@TIMESTAMP=UNIX_TIMESTAMP("2018-01-19 04:14:07.999999");
SELECT CURRENT_TIMESTAMP
Result: 2018-01-19 04:14:07.000000

Mariadb 10.11.6-MariaDB-0+deb
mariadb-java-client: 3.3.3
openjdk 19.0.2

JDBC:
final String timestampString = transientInstance.getValidFrom()
.format(DateTimeFormat);
try (Connection con = datasource.getConnection();
PreparedStatement timestampStatement = con.prepareStatement("SET @@SESSION.TIMESTAMP=UNIX_TIMESTAMP(?);");
PreparedStatement readTimestampStatement = con.prepareStatement("SELECT CURRENT_TIMESTAMP FROM DUAL")) {

LOGGER.atDebug()
.addArgument(timestampString)
.log("Setting @TIMESTAMP to {}");
// Result: Setting @TIMESTAMP to 2024-07-26 09:07:73.730084000
timestampStatement.setString(1, timestampString);
timestampStatement.execute();
timestampStatement.close();
readTimestampStatement.execute();
final ResultSet resultSetReadTimestamp = readTimestampStatement.getResultSet();
resultSetReadTimestamp.next();
LOGGER.atInfo()
.addArgument(resultSetReadTimestamp.getObject(1))
.log("Timestamp: {}");
// Result: Timestamp: 2024-07-29 09:58:27.0 - expected: 2024-07-26 09:07:73.730084000
resultSetReadTimestamp.close();


Подробнее здесь: https://stackoverflow.com/questions/788 ... s-not-work
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»