Применение бинов JDBCBEAN и HTTPJDBCBEAN для реализации доступа к базе данных
В состав JBuilder Enterprise входит сервер IAS (версия сервера зависит от версии среды JBuilder), по умолчанию инсталлируемый в каталог \Inprise\AppServer.
Данный WEB-сервер содержит в каталоге Inprise\AppServer\examples\beans\inpriseexamples\beans файлы JDBCBean.java и HttpJDBCBean.java, которые можно использовать для упрощения процесса публикации данных на JSP-страницах. Файл JDBCBean.java представляет собой бин, содержащий свойства, определяющие подключение к базе данных, и выполняемый SQL-оператор. Файл HttpJDBCBean.java применяется для определения параметров, используемых бином JDBCBean.
Для того, чтобы выполнить публикацию данных на JSP-странице с использованием существующих файлов с классами бинов, следует:
- Открыть в среде JBuilder файл JDBCBean.java.
- Добавить в проект новый компонент JavaBean, выполнив команду меню File|New, а затем на вкладке New указав пиктограмму JavaBean.
- В поле ClassName ввести имя создаваемого бина (например, JDBCBean).
- В качестве наследуемого класса указать java.lang.Object.
- Скопировать в созданный файл вместо собственного кода код из ранее открытого файла JDBCBean.java, а затем закрыть скопированный файл.
- Отредактировать первую строку, содержащую директиву package, указав имя текущего пакета проекта.
-
Перейти на вкладку Bean окна содержания и в редакторе бинов перейти на вкладку Properties.
Эта вкладка содержит следующие свойства бина, позволяющие выполнить SQL-запрос:
classname - имя используемого JDBC-драйвера;
url - расположение источника данных;
username - имя пользователя, подключаемого к базе данных;
password - пароль пользователя;
query - выполняемый SQL-оператор.
Для каждого из перечисленных свойств существует get-метод и set-метод.
Свойства cols и rows (число столбцов и строк в результирующем наборе) используются как простые переменные только внутри бина. Для доступа к их значениям служат свойства columnCount и rowCount, имеющие get-методы.
Свойство result используется для формирования отображаемого результата.
-
Создать второй компонент JavaBean и аналогичным образом скопировать в него файл HttpJDBCBean.java.
Класс HttpJDBCBean наследует классу JDBCBean.
Бин HttpJDBCBean использует свой метод processRequest для обработки запроса. Этот метод должен быть непосредственно вызван из JSP-файла для определения значений всех свойств бина JDBCBean. - Создать JSP-файл, использующий бины JDBCBean и HttpJDBCBean.
В файле JDBCBean.java выполнение SQL-запроса осуществляется методом go на основе значений, установленных для свойств данного бина. Так, этот метод реализует следующие основные действия:
- Выполняет загрузку класса драйвера: Class.forName(classname);
- Устанавливает соединение с источником данных, указываемым свойством url: Connection con=DriverManager.getConnection(url,username,password);
- Создает объект типа Statement: Statement stmt = con.createStatement();
- Выполняет SQL-запрос, определяемый свойством query: ResultSet rs = stmt.executeQuery(query);
- Записывает в свойства cols, rows и result метаданные текущего запроса: ResultSetMetaData rsmd = rs.getMetaData(); cols = rsmd.getColumnCount(); rows = 0;
В файле HttpJDBCBean.java. метод processRequest выполняет присвоение значений всем свойствам бина JDBCBean, получая эти значения из параметров запроса.
Метод processRequest определяет значения параметров запроса через объект request типа HttpServletRequest:
if ((_p = request.getParameter("classname")) != null) { classname = _p; }
Так, если параметр classname определен, то значение одноименного свойства устанавливается равным его значению.
Если все необходимые параметры заданы, то вызывается метод go бина JDBCBean: this.go();
Класс HttpJDBCBean наследует классу JDBCBean.
Бин HttpJDBCBean использует свой метод processRequest для обработки запроса. Этот метод должен быть непосредственно вызван из JSP-файла для определения значений всех свойств бина JDBCBean.
В файле JDBCBean.java выполнение SQL-запроса осуществляется методом go на основе значений, установленных для свойств данного бина. Так, этот метод реализует следующие основные действия:
- Выполняет загрузку класса драйвера: Class.forName(classname);
- Устанавливает соединение с источником данных, указываемым свойством url: Connection con=DriverManager.getConnection(url,username,password);
- Создает объект типа Statement: Statement stmt = con.createStatement();
- Выполняет SQL-запрос, определяемый свойством query: ResultSet rs = stmt.executeQuery(query);
- Записывает в свойства cols, rows и result метаданные текущего запроса: ResultSetMetaData rsmd = rs.getMetaData(); cols = rsmd.getColumnCount(); rows = 0;
В файле HttpJDBCBean.java. метод processRequest выполняет присвоение значений всем свойствам бина JDBCBean, получая эти значения из параметров запроса.
Метод processRequest определяет значения параметров запроса через объект request типа HttpServletRequest:
if ((_p = request.getParameter("classname")) != null) { classname = _p; }
Так, если параметр classname определен, то значение одноименного свойства устанавливается равным его значению.
Если все необходимые параметры заданы, то вызывается метод go бина JDBCBean: this.go();