如何解析用户输入的值的数据类型?
问题描述:
我想知道是否有方法从用户接收输入并找出其数据类型。如何解析用户输入的值的数据类型?
例如我想要的东西如下:
用户输入:5
程序解析5作为int
程序分配变量为:INT X = 5
另一种情况:
用户输入:简
程序分析简作为字符串
程序分配变量为:串x =简
等等
总的情况是,用户将在一个表名和某些标准来传递,得到一些行,进行一些更改,然后将这些通道提交给Oracle。由于我使用的DAO应该适用于任意数量的表格,因此我需要“即时”完成所有工作。希望这是有道理的。我不想过于细致,因为解释所有细节可能需要一段时间。
答
您可以让JDBC驱动程序根据数据模型来确定它。将它们视为Object
并使用PreparedStatement#setObject()
在SQL查询中设置它们。这样你就不需要转换它和/或使用特定的设置器。
另一方面,它看起来很像您正在开发(重新创建)数据库管理工具。如果这是真的,那么您也可以通过ResultSet#getMetaData()
然后例如ResultSetMetaData#getColumnClassName()
来获得每列的Java数据类型。
使用用户输入来确定(猜测)数据库列的类型充满了危险。我认为你最好掌握结果集元数据并使用它来确定列的数据类型。 – DaveH 2011-05-09 14:58:15
@DaveHowes:我同意。我最终采取了不同的方法。 – 2011-05-11 15:21:28