我正在解析文本文件中的所有数据。通过解析它我将所有内容都抛入一个String数组,然后使用该数组插入我的MySQL数据库。大多数数据实际上是文本字符串,但有些是日期和整数。
如果我将一个像“4538762”这样的字符串插入到定义为INT的MySQL列中,那么它会被接受吗?
同样适用于日期。
答案 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。