データベースのタイムゾーンを北京時間に設定するにはどうすればよいですか? java.util.Date の Date パラメータを SQL の Date の時刻形式に変換するにはどうすればよいですか?

データベースのタイムゾーンを北京時間に設定するにはどうすればよいですか? java.util.Date の Date パラメータを SQL の Date の時刻形式に変換するにはどうすればよいですか?

データベースはタイムゾーンを北京時間に設定します

まず、Java コードでデータベースに接続する基本的な方法を紹介します。

1. 引入jar文件. 

2. 加载数据库驱动 (JavaSE项目中可以省略 , JavaWeb项目必须编写此步骤)
	Class.forName("com.mysql.jdbc.Driver"); 
	
3. 通过驱动管理器, 获取JDBC连接对象. 
	Connection conn = DriverManager.getConnection("数据库连接地址URL","帐号","密码"); 
    // 数据库连接地址格式: 主协议:子协议://ip地址:端口号/数据库名称 
    // mysql的连接地址: jdbc:mysql://localhost:3306/java35 
    // oracle的连接地址: jdbc:oracle:thin:@localhost:1521:ORCL 
    
4. 通过连接对象, 创建SQL执行对象 (SQL执行环境) 
	Statement state = conn.createStatement(); 
	
5. 通过SQL执行对象 ,执行SQL语句. 
	state.execute(String sql语句); 
	
6. 释放资源,连接数据库所创建的端口都需要关闭
	//根据需求,有时会创建ResultSet 参数,最后也要记得释放该资源。
	state.close();
	conn.close();

データベースへの接続時にデータベース エラーの問題が発生した場合は、リンク https://blog.csdn.net/xiri_/article/details/108857758 の記事を参照してください。

データベースのタイム ゾーンを設定する場合、データベース接続アドレスの URL にタイム ゾーン パラメーターserverTimezone を追加または変更する必要があります。以下に、リンク データベースのアドレス設定を紹介します。

url=jdbc:mysql://localhost:3306/java?characterEncoding=utf8&serverTimezone=UTC

説明:

// データベース接続アドレス: jdbc:mysql://localhost:3306/java
// ? の後にデータベースを設定するためのパラメータが続き、異なるパラメータは & で接続されます
// CharacterEncoding=utf8 はエンコード方式を設定しますutf -8
//serverTimezone=UTC はデータベースのタイムゾーンを設定する関数です。UTC は世界時間です (北京時間は東八区時間です)。

データベース時間を北京時間に設定します

serverTimezone 時間パラメータを設定します。UTC を GMT%2B に置き換えるだけです。

url=jdbc:mysql://localhost:3306/java?characterEncoding=utf8&serverTimezone=GMT%2B

java.util.DateのDateパラメータをSQLのDateの時刻形式に変換します。

Java 環境

  1. 2 種類の時間オブジェクトを作成する

    //创建util包下的date对象
    	java.util.Date date=new java.util.Date();
    
  2. java.util.DateのDateパラメータをSQLのDateの時刻形式に変換します。

    	PreparedStatement ps;	//预编译语句
    	
    	//这里的Date是java.util.Date中的,得到的是日期(年-月-日)
    	ps.setDate(int parameterIndex, java.util.Date(date.getTime());
    	
    	//这里的Time是java.util.Time中的,得到的是时间(时:分:秒)
    	ps.setTime(int parameterIndex, java.util.Time(date.getTime());
    	
    	//这里的TimeStamp是java.util.TimeStamp中的,得到的是日期+时间(年-月-日 时:分:秒)
    	ps.setObject(int parameterIndex, java.util.TimeStamp(date.getTime())
    

知らせ:

setDate が取得するのは、java.util.Date の jar パッケージに対応する日付 (年-月-日) です。

setTime が取得するのは、java.util.Time の jar パッケージに対応する時刻 (時:分:秒) です。

setObjectが取得するのは日付+時刻(年-月-日:分:秒)で、java.util.TimeStampのjarパッケージに相当します。

おすすめ

転載: blog.csdn.net/xiri_/article/details/109673612