Основы проектирования приложений баз данных

       

Применение бинов 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-странице с использованием существующих файлов с классами бинов, следует:

  1. Открыть в среде JBuilder файл JDBCBean.java.
  2. Добавить в проект новый компонент JavaBean, выполнив команду меню File|New, а затем на вкладке New указав пиктограмму JavaBean.
  3. В поле ClassName ввести имя создаваемого бина (например, JDBCBean).
  4. В качестве наследуемого класса указать java.lang.Object.
  5. Скопировать в созданный файл вместо собственного кода код из ранее открытого файла JDBCBean.java, а затем закрыть скопированный файл.
  6. Отредактировать первую строку, содержащую директиву package, указав имя текущего пакета проекта.
  7. Перейти на вкладку Bean окна содержания и в редакторе бинов перейти на вкладку Properties.

    Эта вкладка содержит следующие свойства бина, позволяющие выполнить SQL-запрос:

    classname - имя используемого JDBC-драйвера;

    url - расположение источника данных;

    username - имя пользователя, подключаемого к базе данных;

    password - пароль пользователя;

    query - выполняемый SQL-оператор.

    Для каждого из перечисленных свойств существует get-метод и set-метод.

    Свойства cols и rows (число столбцов и строк в результирующем наборе) используются как простые переменные только внутри бина. Для доступа к их значениям служат свойства columnCount и rowCount, имеющие get-методы.

    Свойство result используется для формирования отображаемого результата.

  8. Создать второй компонент JavaBean и аналогичным образом скопировать в него файл HttpJDBCBean.java.


    Класс HttpJDBCBean наследует классу JDBCBean.

    Бин HttpJDBCBean использует свой метод processRequest для обработки запроса. Этот метод должен быть непосредственно вызван из JSP-файла для определения значений всех свойств бина JDBCBean.

  9. Создать JSP-файл, использующий бины JDBCBean и HttpJDBCBean.


В файле JDBCBean.java выполнение SQL-запроса осуществляется методом go на основе значений, установленных для свойств данного бина. Так, этот метод реализует следующие основные действия:

  1. Выполняет загрузку класса драйвера: Class.forName(classname);
  2. Устанавливает соединение с источником данных, указываемым свойством url: Connection con=DriverManager.getConnection(url,username,password);
  3. Создает объект типа Statement: Statement stmt = con.createStatement();
  4. Выполняет SQL-запрос, определяемый свойством query: ResultSet rs = stmt.executeQuery(query);
  5. Записывает в свойства 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.

  • Создать JSP-файл, использующий бины JDBCBean и HttpJDBCBean.


  • В файле JDBCBean.java выполнение SQL-запроса осуществляется методом go на основе значений, установленных для свойств данного бина. Так, этот метод реализует следующие основные действия:

    1. Выполняет загрузку класса драйвера: Class.forName(classname);
    2. Устанавливает соединение с источником данных, указываемым свойством url: Connection con=DriverManager.getConnection(url,username,password);
    3. Создает объект типа Statement: Statement stmt = con.createStatement();
    4. Выполняет SQL-запрос, определяемый свойством query: ResultSet rs = stmt.executeQuery(query);
    5. Записывает в свойства 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();


    Содержание раздела