Как сопоставить стандартные типы Java с типами SQL? - PullRequest
5 голосов
/ 15 февраля 2011

Я хочу написать программу, которая автоматически создает RDBMS-таблицы через JDBC.Чтобы добавить столбцы в таблицу, мне нужно знать имя столбца и тип данных СУБД столбца.У меня уже есть названия столбцов.У меня нет типов RDBMS для столбцов, но у меня есть типы Java для этих столбцов.Поэтому мне нужно сопоставить эти типы Java с типами данных СУБД.Тип Java может быть одним из следующих:

  • типы примитивов
  • типы-оболочки типов примитивов
  • String

  • Итак, мой вопрос: как сопоставить эти типы Java с типами СУБД?

  • Есть ли часть JDBC или библиотека, которая уже обрабатывает это отображение?
  • Есть ликакие-нибудь классы, которые могут помочь мне частично?

Особенно я работаю с PostgreSQL.Поэтому, если нет универсального способа сделать это, было бы важно на данный момент запустить его с PG.

Заранее спасибо

Ответы [ 4 ]

5 голосов
/ 15 февраля 2011

Ну, всегда есть класс java.sql.Types , который содержит общие сопоставления типов SQL, но вам лучше использовать что-то вроде Hibernate для выполнения всехэто для тебя.

2 голосов
/ 15 февраля 2011

getTypeInfo () предназначен для получения представления драйвера о том, какой (родной) тип СУБД должен быть сопоставлен с каким типом JDBC.Но эти сопоставления не всегда точны, поэтому вам нужно будет найти способ определения «лучшего соответствия»

1 голос
/ 15 февраля 2011

В руководстве JDBC Sun / Oracle предлагается несколько отображений:

Отображение типов SQL и Java

0 голосов
/ 15 февраля 2011

Я не думаю, что есть какой-то общий способ сделать это.Дьявол кроется в деталях: вы хотите навязать какую-либо точность или масштаб?Какое максимальное число символов в ваших строках?

Отображение в простейшем виде может быть

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