Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
}
s.close();
con.close();
}
catch( Exception,e ) { e. printStackTrace();
}
finally 
{
if( con != null ) 
{
try { con.close();
}
catch( SQLException e ) { } 
} 
} 
} 
}
Для каждого результирующего набора обеспечивается получение экземпляра 
ResultSetMetaData с помощью метода getMetaData(). При динамическом доступе к 
базе данных необходимо узнать, сколько колонок в результирующем наборе, чтобы с 
уверенностью извлечь все колонки и их имена для вывода пользователю. Метаданные 
нашего результирующего набора обеспечивают получение всех этих данных с помощью 
методов getColumnCount() и getColumnLabel().
Обработка динамического SQL
В примере 14-6 введено понятие динамического вызова SQL. Поскольку мы не знаем, 
будет это запрос на получение данных или обновление, нужно передать вызов SQL 
через метод execute (). Этот метод возвращает true, если команда возвратила 
результирующий набор, и false в противном случае. В нашем примере, если 
возвращается true, то приложение получает возвращаемый ResultSet через вызов 
метода getResultSet(). Затем приложение может перейти к обычной обработке 
результирующего набора. Если, напротив, команда произвела какую-либо 
модификацию базы данных, можно вызвать метод getUpdateCu-unt() для подсчета 
числа строк, модифицированных командой.
Серверное приложение гостевой книги
Вы, вероятно, немало слышали об апплетах Java. Однако в главе 8 мы говорили о 
том, что доступ к базам данных на стороне клиента является плохой идеей. В 
примеры к этой книге мы включили реальное приложение, использующее сведения о 
JDBC, изложенные в этой главе, для создания класса Java на стороне сервера. 
Такие приложения называются сервлеты (servlet). Хотя серверные приложения сами 
по себе не являются частью трехзвенной архитектуры, обсуждавшейся нами в главе 
8, данный пример хорошо иллюстрирует возможности использования JDBC. Это 
серверное приложение является Web-страницей, позволяющей посетителям вашего 
сайта оставить свое мнение о нем. Оставленные комментарии могут просматриваться 
другими посетителями. Все, что вам нужно знать о серверных приложениях для 
понимания этого примера, это то, что метод doPost() обрабатывает события HTTP 
POST, a de-Get () обрабатывает события HTTP GET.
В этом приложении две части: часть get и часть post. В обеих частях 
производится вызов метода printComments() для показа комментариев, оставленных 
в гостевой книге. В этом методе мы находим нечто, не встречавшееся нам в 
простых предыдущих примерах: вызов метода wasNull() после каждого извлечения 
значения колонки. Как и можно предположить из названия, wasNull() возвращает t 
rue, если последнее извлеченное значение было NULL в смысле SQL. В вызовах, 
возвращающих объект Java, значение обычно будет NULL, если при чтении из базы 
данных был получен NULL. Использование wasNull() в таких случаях может 
показаться излишним. Однако для простых типов данных выборка может возвращать 
допустимое значение. Метод wasNull() позволяет узнать, не было ли в базе данных 
значения NULL. Например, NULL в колонке целого типа возвращает 0 при вызове 
getlnt(). Чтобы узнать, что было в колонке - 0 или NULL, нужно вызвать 
wasNull().
)
Возвращает абсолютное значение числа number (например, ABS (-10) возвращает 10).

АCOS(number)
Возвращает арккосинус числа number в радианах (например, ACOS (0) возвращает 1.
570796).
ASCII(char)
Возвращает ASCII код данного символа (например, ASCII (' h') вернет 104).
ASIN(number)
Возвращает арксинус числа number в радианах (например, ASIN (0) вернет 0.
000000).
ATAN(number)
Возвращает арктангенс числа number в радианах (например, ATAN (1) вернет 0.
785398).
ATAN2(X, Y)
Возвращает арктангенс точки (X, Y) (например, ATAN (-3,3) возвращает-0.785398).
СHAR(num1[,num2,. . .])
Возвращает строку, полученную в результате преобразования каждого из чисел в 
знак, соответствующий числовому ASCII коду (например, CHAR (122) возвращает'z').

CONCAT(string 1, string2 [, strings,. . . ])
 
<<-[Весь Текст]
Страница: из 157
 <<-