package com.github.marschall.threeten.jpa; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import javax.sql.DataSource; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; import org.springframework.transaction.PlatformTransactionManager; import com.github.marschall.threeten.jpa.MysqlTest.LocalConfiguration; import com.github.marschall.threeten.jpa.configuration.MysqlConfiguration; @ContextConfiguration(classes = {MysqlConfiguration.class, LocalConfiguration.class}) public class MysqlTest extends AbstractTransactionalJUnit4SpringContextTests { @Autowired private DataSource dataSource; @Test public void getObject() throws SQLException { // TimeZone.setDefault(TimeZone.getTimeZone("UTC")); try (Connection connection = this.dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement( "SELECT ? = DATE '1988-12-25', ? = TIME '15:09:02', ? = TIMESTAMP '1980-01-01 23:03:20'")) { preparedStatement.setDate(1, java.sql.Date.valueOf("1988-12-25")); preparedStatement.setTime(2, java.sql.Time.valueOf("15:09:02")); preparedStatement.setTimestamp(3, java.sql.Timestamp.valueOf("1980-01-01 23:03:20")); try (ResultSet resultSet = preparedStatement.executeQuery()) { while (resultSet.next()) { System.out.println(resultSet.getBoolean(1)); System.out.println(resultSet.getBoolean(2)); System.out.println(resultSet.getBoolean(3)); } } preparedStatement.setObject(1, LocalDate.parse("1988-12-25")); preparedStatement.setObject(2, LocalTime.parse("15:09:02")); preparedStatement.setObject(3, LocalDateTime.parse("1980-01-01T23:03:20")); try (ResultSet resultSet = preparedStatement.executeQuery()) { while (resultSet.next()) { System.out.println(resultSet.getBoolean(1)); System.out.println(resultSet.getBoolean(2)); System.out.println(resultSet.getBoolean(3)); } } try (Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT VERSION()")) { while (resultSet.next()) { System.out.println(resultSet.getString(1)); } } } } @Configuration static class LocalConfiguration { @Autowired private DataSource dataSource; @Bean public PlatformTransactionManager txManager() { return new DataSourceTransactionManager(this.dataSource); } } }