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

将Java中的字符串插入MySQL。如何接收数据类型?,java,mysql,types,Java,Mysql,Types,我正在解析文本文件中的一些数据。通过解析它,我将所有内容放入一个字符串数组,然后使用该数组插入我的MySQL数据库。大多数数据实际上是文本字符串,但有些是日期和整数 如果我在定义为INT的MySQL列中插入一个类似“4538762”的字符串,这会被接受吗 日期也是如此。这取决于您如何运行插入 您应该以PreparedStatement的形式运行它。当您使用准备好的语句时,您会根据它们的数据类型添加值。请参见下面的示例。有一个很好的教程,您可以在以下网址查阅: 您可以按原样传递字符串: prepa

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

如果我在定义为INT的MySQL列中插入一个类似“4538762”的字符串,这会被接受吗


日期也是如此。

这取决于您如何运行插入

您应该以PreparedStatement的形式运行它。当您使用准备好的语句时,您会根据它们的数据类型添加值。请参见下面的示例。有一个很好的教程,您可以在以下网址查阅:


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

preparedStatement.setString(1, "4538762") ;
或将其转换为int并传递int:

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

MySQL可以处理这两个问题。在前一种情况下,它会自己将字符串解析为int。

你自己试试怎么样?@pingw33n是的,我会,但这不是我现在能做的,所以我想在这里发布会节省我一点时间。读一点这篇文章怎么样?这会为其他人节省一点时间。@VMai我收到的数据并不总是一致的。我试图为每个文本文件编写一个解析器。所以我实际上不知道什么时候转换类型。好吧,假设我有这样的东西:preparedStatement.setInt(1,stringArray[0]),这有效吗?抱歉,在我完成键入之前,我一直按enter键正确的方式是->preparedStatement.setInt(1,Integer.parseInt(stringArray[0]);还要注意,propearedStatement.setXXX()函数是基于1的,而不是基于0的。如果可以按原样传递字符串,为什么要转换它?@user3521471我会自己转换它,以检查字符串是否有效(只包含数字,不太长等等)。否则,当使用无法转换为int的字符串运行语句时,您可能会从MySQL获得一些错误。
preparedStatement.setInt(1, Integer.parseInt("4538762")) ;