JDBC接続MySQLデータベースの失敗の解決策

1476 ワード

解決方法:
1.次のエラーメッセージが表示されたら、JDBCドライババージョンとMySQLバージョンが対応しているかどうかを確認する.
  : Servlet.service() for servlet [jsp] in context with path [/jspex] threw exception [javax.servlet.ServletException: java.sql.SQLException: Unknown system variable 'query_cache_size'] with root cause
java.sql.SQLException: Unknown system variable 'query_cache_size'

MySQL 5およびその低バージョン:
Class.forName("com.mysql.jdbc.Driver");

MySQL 6およびそれ以降のバージョン:
Class.forName("com.mysql.cj.jdbc.Driver");

JDBCドライバのすべてのバージョンのダウンロードリンク:
http://central.maven.org/maven2/mysql/mysql-connector-java/
 
2、接続文が正しいかどうかを確認する.
次のエラーメッセージが表示される場合は、serverTimezoneパラメータが欠けていることを示します.
Stacktrace:] with root cause
com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

追加する必要があります:
serverTimezone=UTC

UTCは世界標準時間を表し、中国では北京時区、つまり東八区を使用し、UTCを8時間リードしている.
//       
serverTimezone=GMT%2B8 
//        
serverTimezone=Asia/Shanghai

理由:
例えばjavaコードに挿入された時間は、2018-06-24 17:29:56ですが、データベースに表示されている時間は、2018-06-24 09:29:56です.