如何将标准Java类型映射到SQL类型?

时间:2011-02-15 19:10:22

标签: java postgresql jdbc types relational-database

我想编写一个程序,它自动通过JDBC创建RDBMS表。要向表中添加列,我需要知道列的名称和列的RDBMS数据类型。我已经有了列的名称。我没有列的RDBMS类型,但我有这些列的Java类型。所以我需要将这些Java类型映射到RDBMS数据类型。 Java类型可以是以下之一:

  • primitve types
  • 原始类型的包装类型
  • 字符串

  • 所以我的问题是:如何将这些java类型映射到RDBMS类型?

  • 是否有一部分JDBC或库已处理此映射?
  • 是否有任何课程可以帮助我?

特别是我正在使用PostgreSQL。因此,如果没有基本方法可以做到这一点,那么让它与PG一起运行将是非常重要的。

提前致谢

4 个答案:

答案 0 :(得分:5)

嗯,总有java.sql.Types类包含通用的SQL类型映射,但是使用像Hibernate之类的东西可以更好地为你做这一切。

答案 1 :(得分:2)

getTypeInfo()旨在获取驱动程序关于哪个(本机)DBMS类型应映射到哪种JDBC类型的视图。但是这些映射并不总是精确的,所以你需要找到一些方法来检测“最佳匹配”

答案 2 :(得分:1)

Sun / Oracle的JDBC指南提出了一些映射:

Mapping SQL and Java Types

答案 3 :(得分:-1)

我认为没有任何通用方法可以做到这一点。魔鬼在细节中:你想要施加任何精确度或规模吗?字符串中字符的最大数量是多少?

最简单形式的映射可以是

Java char    --> varchar(1)
Java String  --> varchar
Java number  --> numeric
Java boolean --> boolean