如何解析用户输入的值的数据类型?

问题描述:

我想知道是否有方法从用户接收输入并找出其数据类型。如何解析用户输入的值的数据类型?

例如我想要的东西如下:

用户输入:5

程序解析5作为int

程序分配变量为:INT X = 5

另一种情况:

用户输入:简

程序分析简作为字符串

程序分配变量为:串x =简

等等

总的情况是,用户将在一个表名和某些标准来传递,得到一些行,进行一些更改,然后将这些通道提交给Oracle。由于我使用的DAO应该适用于任意数量的表格,因此我需要“即时”完成所有工作。希望这是有道理的。我不想过于细致,因为解释所有细节可能需要一段时间。

+1

使用用户输入来确定(猜测)数据库列的类型充满了危险。我认为你最好掌握结果集元数据并使用它来确定列的数据类型。 – DaveH 2011-05-09 14:58:15

+0

@DaveHowes:我同意。我最终采取了不同的方法。 – 2011-05-11 15:21:28

您可以让JDBC驱动程序根据数据模型来确定它。将它们视为Object并使用PreparedStatement#setObject()在SQL查询中设置它们。这样你就不需要转换它和/或使用特定的设置器。

另一方面,它看起来很像您正在开发(重新创建)数据库管理工具。如果这是真的,那么您也可以通过ResultSet#getMetaData()然后例如ResultSetMetaData#getColumnClassName()来获得每列的Java数据类型。