2017-08-23 1 views
0

printemps mvc + mybatis + mysql 5.7 + jdk8
J'utilise mysql 5.7 pour sauvegarder les données json.
J'utilise l'API jdk8 time LocalDateTime now = LocalDateTime.now(); pour obtenir la date et l'enregistrer dans la base de données.
Mais je finance le résultat de la base de données sont moins de temps pour environ 8 heures.
Mon processus de traitement 1, problèmes de code, le déboguer, et je trouve l'heure dans l'objet est juste avant de sauvegarder dans la base de données.
2, problème de fuseau horaire du système, l'enquête sur le système informatique local, système de serveur, système de base de données et d'autres systèmes informatiques, les fuseaux horaires sont tous les huit East District pas de problème. (Je suis chinois)
3, Vue console SQL impressionprintemps mvc + mybatis + mysql5.7 économiser moins de temps pendant 8 heures

DEBUG [ 2017-08-23 12:42:35 970 ]: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:145) - ==> Preparing: insert into log_user_operation (pk_id, user_code, user_name, login_ip, url, operation_type, operation_content, remark, create_time) values (?, ?, ?, ?, ?, ?, ?, ?, ?) 
DEBUG [ 2017-08-23 12:42:36 005 ]: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:145) - ==> Parameters: null, admin(String), Admin(String), 127.0.0.1(String), http://localhost:8080/bi/login-check(String), SELECT(String), 用户登录(String), (String), 2017-08-23 12:42:32.9(Timestamp) 
DEBUG [ 2017-08-23 12:42:36 016 ]: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:145) - <== Updates: 1 
DEBUG [ 2017-08-23 12:42:36 020 ]: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:145) - ==> Preparing: SELECT LAST_INSERT_ID() 
DEBUG [ 2017-08-23 12:42:36 021 ]: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:145) - ==> Parameters: 
TRACE [ 2017-08-23 12:42:36 039 ]: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.trace(BaseJdbcLogger.java:151) - <== Columns: LAST_INSERT_ID() 
TRACE [ 2017-08-23 12:42:36 039 ]: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.trace(BaseJdbcLogger.java:151) - <==  Row: 47 
DEBUG [ 2017-08-23 12:42:36 042 ]: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:145) - <==  Total: 1 
DEBUG [ 2017-08-23 12:42:36 047 ]: org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:193) - Closing non transactional SqlSession [[email protected]] 
DEBUG [ 2017-08-23 12:42:36 048 ]: org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:332) - Returning JDBC Connection to DataSource 

Je pense que tout est OK, mais la base de données de sauvegarde est erroné.
the test result of right now

+0

donc 'LocalDateTime.now()' vous donne l'heure.? –

+0

@JackFlamp Oui, et le sql a raison aussi. Mais quand je vois la base de données mysql, c'est faux. – DMH

+0

On dirait que l'erreur est dans la base de données. Vérifiez les paramètres de la colonne d'heure dans votre tableau –

Répondre

0

Le problème qui dérange depuis deux jours est finalement réglé ce soir.
Cela est dû à la spécification URL du nouveau package de lecteur de MySQL:

jdbc:mysql://localhost:3306/ss?characterEncoding=utf8&useSSL=true&serverTimezone=UTC&nullNamePatternMatchesAll=true 

Modifier serverTimezone=UTC-serverTimezone=Hongkong peut résoudre le problème avec succès