将Java中的字符串插入MySQL。数据类型如何接收?

时间:2014-06-17 15:13:02

标签: java mysql types

我正在解析文本文件中的所有数据。通过解析它我将所有内容都抛入一个String数组,然后使用该数组插入我的MySQL数据库。大多数数据实际上是文本字符串,但有些是日期和整数。

如果我将一个像“4538762”这样的字符串插入到定义为INT的MySQL列中,那么它会被接受吗?

同样适用于日期。

2 个答案:

答案 0 :(得分:3)

这取决于您如何运行插入。

应该将其作为PreparedStatement运行。使用预准备语句时,可以根据其数据类型添加值。请参阅下面的示例。有一个很好的教程,你应该查看:http://tutorials.jenkov.com/jdbc/preparedstatement.html

String sql = "update people set firstname=? , lastname=? where id=?";

PreparedStatement preparedStatement = connection.prepareStatement(sql);

preparedStatement.setString(1, "Gary");
preparedStatement.setString(2, "Larson");
preparedStatement.setLong  (3, 123);

int rowsAffected = preparedStatement.executeUpdate();

答案 1 :(得分:1)

您可以按原样传递字符串:

preparedStatement.setString(1, "4538762") ;

或将其转换为int并传递int:

preparedStatement.setInt(1, Integer.parseInt("4538762")) ;

MySQL可以同时处理这两个问题。在前一种情况下,它会将String解析为int。