我想编写一个程序,它自动通过JDBC创建RDBMS表。要向表中添加列,我需要知道列的名称和列的RDBMS数据类型。我已经有了列的名称。我没有列的RDBMS类型,但我有这些列的Java类型。所以我需要将这些Java类型映射到RDBMS数据类型。 Java类型可以是以下之一:
字符串
所以我的问题是:如何将这些java类型映射到RDBMS类型?
特别是我正在使用PostgreSQL。因此,如果没有基本方法可以做到这一点,那么让它与PG一起运行将是非常重要的。
提前致谢
答案 0 :(得分:5)
嗯,总有java.sql.Types类包含通用的SQL类型映射,但是使用像Hibernate之类的东西可以更好地为你做这一切。
答案 1 :(得分:2)
getTypeInfo()旨在获取驱动程序关于哪个(本机)DBMS类型应映射到哪种JDBC类型的视图。但是这些映射并不总是精确的,所以你需要找到一些方法来检测“最佳匹配”
答案 2 :(得分:1)
Sun / Oracle的JDBC指南提出了一些映射:
答案 3 :(得分:-1)
我认为没有任何通用方法可以做到这一点。魔鬼在细节中:你想要施加任何精确度或规模吗?字符串中字符的最大数量是多少?
最简单形式的映射可以是
Java char --> varchar(1)
Java String --> varchar
Java number --> numeric
Java boolean --> boolean