如何使用Java将时间数据按格式解析并写入MySQL?(代码亲测)

在MySQL数据库的开发中,经常会遇到需要提前按时间格式解析输入的数据,然后再将结果字符串以MySQL需要的时间格式写入到数据库中,这样才能将不同的时间格式根据需要导入到MySQL中并提供后续的MySQL查询支持。

目录

1 代码示例

2 代码解读


Java的代码编写可以使用idea进行代码的开发,SQL部分的语句测试可以使用SQLynx进行代码的开发和测试。

1 代码示例

以下是一个简单的Java示例,演示如何解析特定格式的时间字符串,并将其写入MySQL数据库中的日期时间列:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeInsertExample {

    public static void main(String[] args) {
        String jdbcUrl = "jdbc:mysql://localhost:3306/testdb";
        String username = "username";
        String password = "password";

        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = "2024-06-16 14:30:00";
        Date parsedDate;

        try {
            parsedDate = dateFormat.parse(dateString);

            try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password)) {
                String sql = "INSERT INTO events (event_time) VALUES (?)";
                try (PreparedStatement statement = connection.prepareStatement(sql)) {
                    statement.setTimestamp(1, new java.sql.Timestamp(parsedDate.getTime()));
                    statement.executeUpdate();
                    System.out.println("Inserted datetime into database.");
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

2 代码解读

  1. DateFormat 和 SimpleDateFormat

    • DateFormatSimpleDateFormat 用于定义和解析日期时间格式。在示例中,我们使用 "yyyy-MM-dd HH:mm:ss" 格式化字符串来定义日期时间格式。
    • dateFormat.parse(dateString) 将字符串 "2024-06-16 14:30:00" 解析为 Date 对象 parsedDate
  2. 数据库连接

    • 使用 DriverManager.getConnection(jdbcUrl, username, password) 建立到MySQL数据库的连接。
  3. SQL插入语句

    • INSERT INTO events (event_time) VALUES (?) 插入一行数据到名为 events 的表中,其中 event_time 是日期时间列。
  4. PreparedStatement 设置参数

    • statement.setTimestamp(1, new java.sql.Timestamp(parsedDate.getTime())) 将解析后的日期时间 parsedDate 转换为 java.sql.Timestamp 对象,并将其设置为PreparedStatement的参数。
  5. 执行SQL语句

    • statement.executeUpdate() 执行SQL插入语句。

这段代码假设您已经设置了正确的JDBC连接URL、用户名和密码,并且您的MySQL数据库中有一个名为 testdb 的数据库和一个名为 events 的表,表中包含一个 event_time 的日期时间列。

请根据您的实际情况调整数据库连接信息和表结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chat2tomorrow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值