我有一个存放桌子的地方。 在这个地方,我有一张桌子。让'将其命名为表A.表A列中的所有列都是varchars。 我想创建一个进程,遍历每个表并在数据库中的不同位置创建一个新表。 但是,此表必须具有正确的数据类型而不是varchars。 因此,如果表A中的列是值为1234的列,我想创建一个INT而不是varchar的字段。
我不知道如何在java中做到这一点。有人可以指出我正确的方向,我必须学习什么,以及是否太难了
由于
答案 0 :(得分:0)
在我看来,你的问题有几个部分:
EASY - 获取现有表格信息。您必须从jdbc连接获取DatabaseMetaData。关于该课程的文档是here,Google就是如何首先获取该对象的朋友。 (提示:this question应该可以帮到你)
MEDIUM - 确定数据的真实数据类型。如果你试图将它缩小到几个简单的类型,如整数,字符串和日期,这可能实际上并不那么难。您只需为每列选择几行(该列不为空),然后尝试将其解析为不同的类型。如果成功,可能就是那种类型。如果它抛出异常,那么它不是。 Integer.parseInt(),LocalDateTimeFormatter等是你将要使用的东西。
如果您想获取表元数据,那么只需执行“SELECT * FROM< TABLE>”并且ResultSetMetaData将包含您需要继续使用的所有信息。