gpt4 book ai didi

java - 如何在从txt解析器插入的mysql中将字符串转换为日期? - JAVA

转载 作者:行者123 更新时间:2023-11-29 13:07:59 24 4
gpt4 key购买 nike

我正在使用解析器从txt文件中读取数据,并将它们记录在数据库中,如下所示:

BufferedReader reader = new BufferedReader(new FileReader("C:/Users/RPR/Desktop/test.txt"));

String data[] = new String[6];
String line = reader.readLine();

while (line != null) {

StringTokenizer st = new StringTokenizer(line, ";\"");

data[0] = st.nextToken();
data[1] = st.nextToken();
data[2] = st.nextToken();
data[3] = st.nextToken();
data[4] = st.nextToken();
data[5] = st.nextToken();

stm.executeUpdate(new StringBuilder().append("replace into records (date_record, hour, IdSensor, Temp, Hum, dew_point) values ('").append(data[0]).append("','").append(data[1]).append("','").append(data[2]).append("','").append(data[3]).append("','").append(data[4]).append("','").append(data[5]).append("')").toString());

line = reader.readLine();

日期采用 varchar 格式,我想将其打开为日期类型。我一直在寻找并看到这样的方式:

date_format(str_to_date(date_record, '%d-%m-%Y'), '%Y-%m-%d')

但是,当我将其放入代码中时,会出现插入错误。

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '%d-%Y')'、'10:32:53'、'BrgTH002'、'21.9'、'53.1'、'11.9' 附近使用的正确语法)' 在第 1 行

有人可以帮我吗?我是 MYSQL 新手:S

如果我正在做的问题更多针对java,我深表歉意。

我尝试输入该代码。date_format(str_to_date(date_record, '%d-%m-%Y'), '%Y-%m-%d') 但它给了我插入错误。实际上错误现在在java中,有人可以帮助我吗?

如果我是对的,我需要更改该功能

stm.executeUpdate(new StringBuilder().append("replace into records (date_record, hour, IdSensor, Temp, Hum, dew_point) values ('").append(data[0]).append("','").append(data[1]).append("','").append(data[2]).append("','").append(data[3]).append("','").append(data[4]).append("','").append(data[5]).append("')").toString());

但我不知道该怎么办:S

最佳答案

使用 PreparedStatement 。除了让你免受SQL Injection attacks的影响,它使得处理各种数据类型变得更加容易:

DateFormat dateFormat = new SimpleDateFormat("M/d/yy");

PreparedStatement stmt = con.prepareStatement("replace into records"
+ " (date_record, hour, IdSensor, Temp, Hum, dew_point) values (?,?,?,?,?,?)");

stmt.setDate(1, new java.sql.Date(dateFormat.parse(data[0]).getTime()));
stmt.setInt(2, data[1]);
// etc...

stmt.executeUpdate();

关于java - 如何在从txt解析器插入的mysql中将字符串转换为日期? - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22452559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com