Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DATA_TYPE ассоциировать с его java.sql.Types 
V
    Опции темы
Entwickler
Дата 6.8.2009, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 14.4.2007

Репутация: нет
Всего: 2



Всем привет!!!

Вот такой вопрос, как можно ассоциировать DATA_TYPE полученный в результате getColumns запросе, int type = rs.getInt("DATA_TYPE");
я получаю номер, 12 там или 91, а хотелось бы что то типа varchar или double... 
почитал API там стоит что это SQL type from java.sql.Types... как можно связать их вместе?

PM MAIL   Вверх
Entwickler
Дата 6.8.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 14.4.2007

Репутация: нет
Всего: 2



как то не очень красиво...
Код

private String getSqlType(int index){
        Map<Integer, String> sqlTypes = new HashMap<Integer, String>();

        sqlTypes.put(java.sql.Types.ARRAY, "ARRAY");
        sqlTypes.put(java.sql.Types.BIGINT, "BIGINT");
        sqlTypes.put(java.sql.Types.BINARY, "BINARY");
        sqlTypes.put(java.sql.Types.BIT, "BIT");
        sqlTypes.put(java.sql.Types.BLOB, "BLOB");
        sqlTypes.put(java.sql.Types.BOOLEAN, "BOOLEAN");
        sqlTypes.put(java.sql.Types.CHAR, "CHAR");
        sqlTypes.put(java.sql.Types.CLOB, "CLOB");
        sqlTypes.put(java.sql.Types.DATALINK, "DATALINK");
        sqlTypes.put(java.sql.Types.DATE, "DATE");
        sqlTypes.put(java.sql.Types.DECIMAL, "DECIMAL");
        sqlTypes.put(java.sql.Types.DISTINCT, "DISTINCT");
        sqlTypes.put(java.sql.Types.DOUBLE, "DOUBLE");
        sqlTypes.put(java.sql.Types.FLOAT, "FLOAT");
        sqlTypes.put(java.sql.Types.INTEGER, "INTEGER");
        sqlTypes.put(java.sql.Types.JAVA_OBJECT, "JAVA_OBJECT");
        sqlTypes.put(java.sql.Types.LONGNVARCHAR, "LONGNVARCHAR");
        sqlTypes.put(java.sql.Types.LONGVARBINARY, "LONGNVARBINARY");
        sqlTypes.put(java.sql.Types.LONGVARCHAR, "LONGVARCHAR");
        sqlTypes.put(java.sql.Types.NCHAR, "NCHAR");
        sqlTypes.put(java.sql.Types.NCLOB, "NCLOB");
        sqlTypes.put(java.sql.Types.NULL, "NULL");
        sqlTypes.put(java.sql.Types.NUMERIC, "NUMERIC");
        sqlTypes.put(java.sql.Types.NVARCHAR, "NVARCHAR");
        sqlTypes.put(java.sql.Types.OTHER, "OTHER");
        sqlTypes.put(java.sql.Types.REAL, "REAL");
        sqlTypes.put(java.sql.Types.REF, "REF");
        sqlTypes.put(java.sql.Types.ROWID, "ROWID");
        sqlTypes.put(java.sql.Types.SMALLINT, "SMALLINT");
        sqlTypes.put(java.sql.Types.SQLXML, "SQLXML");
        sqlTypes.put(java.sql.Types.STRUCT, "STRUCT");
        sqlTypes.put(java.sql.Types.TIME, "TIME");
        sqlTypes.put(java.sql.Types.TIMESTAMP, "TIMESTAMP");
        sqlTypes.put(java.sql.Types.TINYINT, "TIMYINT");
        sqlTypes.put(java.sql.Types.VARBINARY, "VARBINARY");
        sqlTypes.put(java.sql.Types.VARCHAR, "VARCHAR");
        
        return new String(sqlTypes.get(index));
    }


неужели это единственный выход?!!
PM MAIL   Вверх
LSD
Дата 6.8.2009, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



1. Зачем же так извращаться с Map, простой switch, будет гораздо уместнее.
2. Есть такая штука как DatabaseMetaData, которая позволяет много чего узнать о БД:
Код

    DatabaseMetaData databaseMetaData = conn.getMetaData();
    ResultSet resultSet = databaseMetaData.getTypeInfo();
    while(resultSet.next())
    {
      System.out.printf("Name: %1$-10s id %2$5d %n", resultSet.getString(1), resultSet.getInt(2));
    }


P.S. И используй правильный тег Код, раз уж ты вставляешь Java код, то ни к чему использовать подсветку синтаксиса SQL  smile 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Entwickler
  Дата 7.8.2009, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 14.4.2007

Репутация: нет
Всего: 2



хорошо, а если только определённой таблици?

Добавлено через 7 минут и 31 секунду
всё спасибо, сделал через ResultSetMetaData.getColumnType / .getColumnTypeName 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.