JDBC ResultSet getString всегда возвращает Строковое представление?

Я форматирую a ResultSet производить к файлу CSV. Как таковой я действительно не забочусь о типах Java набора результатов вне, возможно, знания, если это - текст или числа.

Делает гарантию JDBC getString, будет всегда давать строковое представление значений, по крайней мере для единственных значений (я не должен интересоваться о java.sql.Types.ARRAY,java.sql.Types.JAVA_OBJECT и немногие другие).

например, данный resultSetMetaData.getColumnType(i) a Types.FLOAT или a Types.BIGDECIMAL. будет rs.GetString(i) всегда приводите к некоторой Строке?

т.е. Есть ли случаи getString, бросит SQLException или возвратит пустой указатель, когда getXXX дал бы мне значение?

18
задан Anonym 15 January 2010 в 13:41
поделиться

2 ответа

Да, проверьте это: http://java.sun.com/docs/books/tutorial/jdbc/basics/retriving.html

JDBC позволяет много широты Насколько это методы GetXXX, вы можете использовать для получения различных типов SQL. Например, метод GetInt может использоваться для извлечения любого из типов числовых или символов. Данные, которые он извлекает, будет преобразован в INT; То есть, если тип SQL является Varchar, JDBC будет пытаться разбирать целое число из варга. Однако метод GetInt рекомендуется для извлечения только целых типов SQL, и его нельзя использовать для двоичных, Varbinary, Longvarbarbary, Date, или Timestamp.

Но будьте осторожны, другой драйвер JDBC может привести к разным результатам.

12
ответ дан 30 November 2019 в 09:11
поделиться

События DOM не происходят, когда значение для узла устанавливается программным путем через node.value; Найдите документацию API в библиотеке JavaScript и проверьте, есть ли у них какой-либо механизм уведомления.

ОТРЕДАКТИРОВАНО: Firefox? О, отлично, тогда есть такая интересная функция, как часы. Он отслеживает изменения свойств. Для вас это означает, что когда библиотека изменяет свойство «value» текстовой области, вы получаете уведомление. Что еще приятнее, так это то, что вы даже можете контролировать значение, установленное для свойства. Смотрите в действии.

var textnode = document.createElement('textarea');
textnode.watch('value', function(attr, oldv, newv){
    alert(newv);
    return newv; // you have to return correct value back.
});

//and now trigger the change to see that this works.
textnode.value = 'Bla';

Может быть, это помогает?:)

-121--4950813-

CAS не может сделать это, если код работает в режиме полного доверия.

Если код выполняется в режиме Full Trust (т.е. нормальное локальное приложение, а не приложение silverlight или что-либо запущенное из сети), то все проверки .NET CAS полностью обходятся; любой атрибут безопасности просто игнорируется.

CAS просто перемещает стек, чтобы определить разрешения, и вы также можете сделать это, как ранее указал Дарин, просто проверив StackTrace .

-121--2623130-

java.lang. Последовательность является конечным классом - он никогда не может иметь подкласс. Таким образом, любой метод, возвращающий Последовательности , возвращает либо экземпляр класса java.lang. Последовательность , либо null , либо создает исключение.

Для преобразования используется драйвер JDBC, если он позволяет выполнять преобразование из типов, отличных от непоследовательность. Я подозреваю, что у многих будут проблемы с этим.

Я бы предложил сделать это вместо этого:

Object item = resultSet.getObject(i);
String strValue = (item == null ? null : item.toString());

Это должно быть более надежным, поскольку getObject () всегда будет делать разумное.

5
ответ дан 30 November 2019 в 09:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: