Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Документальные модели. Работа с XML на языке Java.




Документальные модели данных соответствуют представлению о слабоструктурированной информации, ориентированной в основном на свободные форматы документов, текстов на естественном языке. XML (Extensible Markup Language) — это язык разметки, описывающий целый класс объектов данных, называемых XML-документами. Он используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов.

 

6

То есть сам по себе XML не содержит никаких тегов, предназначенных для разметки, он просто определяет порядок их создания. Очень часто Java разработчику необходимо вынести настройку программы за пределы исходного текста, чтобы конфигурирование можно было проводит без перекомпиляции всей системы. К подобным настройкам можно отнести сетевые порты, адреса серверов, пути на жестком диске и даже внешний вид приложения. Многие разработчики придумывают свою систему: текстовые файлы, xml файлы, механизм properties.

Для самого широкого применения больше всего подходит xml. Как правило, большинство администраторов и программистов с xml уже знакомы, и редактирование настроек будет весьма тривиальным процессом. Да и иерархическая модель xml позволяет лучше скомпоновать настройки в группы.  Примером подобного xml файла с настройками может служить фрагмент:

   <config>

   <listen>

   <ip>192.168.5.2</ip>

   <port>5677</port>

   </listen>

   <mail>

   <smtp>mail.acme.com</smtp>

   <login>username</login>

   <password>12345</password>

   </mail>

   <performance>

   <threads>10</threads>

   <openfiles>50</openfiles>

   <sessions>100</sessions>

   <sessionTimeout>1h</sessionTimeout>

   </performance>

   </config>

7

Далее приведен пример приложения, которое прочитает подобный файл, и позволит читать все параметры. Для исполнения примеров Вам понадобится JDK 1.5 или выше (хотя примеры сработают и в среде 1.4). Основная библиотека доступна для скачивания с сайта http://configloader.sourceforge.net/ где Вы можете скачать и исходные текста, и уже скопилированную библиотеку в виде JAR. ConfigLoader поддерживает загрузку конфигураций из файлов и текстовых переменных. Загрузка из текстовых переменных удобна при получении настроек с сервера, по сети.

Сами примеры были написаны в IDE Eclispe, но аналогичные действия можно произвести в любой другой среде разработке, или при работе с командной строки.

Скачаем все необходимые библиотеки

ConfigLoader – доступен на сайте по адресу: http://configloader.sourceforge.net/index.php/Downloads

файл configloader_*.jar

Дополнительно нам понадобится библиотека, реализующая SAX – simple api for XML. В мире java представлено множество подобных разработок, но для определенности воспользуемся xerces – решением от сообщества apache.

Актуальную версию можно скачать здесь:

http://xerces.apache.org/xerces2-j/download.cgi

понадобится файл - Xerces-J-bin.*.zip

       На самом деле в ходе выполнении лабораторной работы Вам не потребуется скачивать все эти библиотеки, для их получения необходимо обратиться к преподавателю.

Класс

Для определенности мы хотим, чтобы наш первый класс читал секцию mail из файла конфигурации: smtp, login и password; и выдавал эти данные на консоль. Создадим новый класс “Example1” в пакете “configartice”. Для начала нам необходимо импортировать нужные классы, точнее класс:

8

   import om.romanenco.configloader.ConfigLoader;

В самом теле класса создадим метод main

 

    public static void main(String[] args) {

    ...

    ...

    }

 

Наши дальнейшие строки кода мы будем добавлять в тело этого метода. Первая наша строка – создание объекта, который и позволит нам удобно работать с конфигурациями.

    ConfigLoader config = new ConfigLoader();

Следующим шагом будет загрузка самой конфигурации, сделать это тоже весьма просто:

    config.LoadFromFile("xml/example1.xml");

 

Теперь самое интересное, нам надо прочитать значения трех тегов smtp, login и password, которые вложены в тэги mail и config.

Код при этом прост:

    System.out.println("Host = " +

   config.getTagValue("config.mail.smtp"));

 

    System.out.println("Username = " +

   config.getTagValue("config.mail.login"));

 

    System.out.println("Password = " +

   config.getTagValue("config.mail.password"));

 

Не трудно заметить, как нам обратиться нужному тегу: надо просто задать цепочку имен тегов, начиная от корневого и так до него нужного нам.

Полный текст нашего примера будет таким:

 

9

 

   package configarticle;

   import com.romanenco.configloader.ConfigLoader;

 

       public class Example1 {

 

       public static void main(String[] args) {

 

       ConfigLoader config = new ConfigLoader();

    config.LoadFromFile("xml/example1.xml");

    System.out.println("Host = " +

   config.getTagValue("config.mail.smtp"));

    System.out.println("Username = " +

   config.getTagValue("config.mail.login"));

    System.out.println("Password = " +

   config.getTagValue("config.mail.password"));

    }

 

   }

Как мы видим, подобный подход к оформлению конфигурационных файлов создает удобства и для разработчика, и для конечного пользователя.

Разработчик может использовать простой и надежный подход во всех проектах, а пользователь (даже не высококвалифицированный) будет иметь возможность ясно настраивать приложение.

Ini файлы

Ini файлы – это простые текстовые файлами с расширением .ini (в принципе можно и с любым другим). Ini файлы предназначены для хранения настроек программы. Ini файлы разделены на разделы, содержащие идентификаторы, которым, в свою очередь, можно присвоить значения. В общем виде структура Ini файла такова:
  10   [Раздел1] Идентификатор1=Значение1 Идентификатор2=Значение2 [Раздел2] Идентификатор1=Значение1 И т.д.

 

 

Задание на лабораторную работу № 1

1. Создать класс, представляющий собой модель данных «Студент», «Автомобиль». В каждом таком классе должно быть не менее 5 полей и соответственно по два метода доступа к ним (set и get методы).

2. Создать модель данных в виде ini файла и в виде xml файла. Написать программу на языке java, выполняющую чтение данных из этих файлов. Для чтения данных из ini файла использовать класс java.util.Properties и его метод load. После создания экземпляра класса Properties (например ini) и запуска его метода load можно получить имена полей (идентификаторов) и их значения следующим образом:

Enumeration e = ini.propertyNames() ;

    while (e.hasMoreElements()) {

    Object element=e.nextElement();

    System.out.print(element+"=");

    System.out.println(ini.getProperty((String)element));

}

 

Для работы с xml файлом использовать класс ConfigLoader, пакеты xerces.jar, configloader_1_5.jar.    

3. Создать модели данных для визуальных компонент JTable и JList. Написать программу на языке java, отображающие компоненты JTable и JList. Для компонента JList использовать AbstractListModel:

 

JList  l=new JList(new AbstractListModel() {

 

       public int getSize() {

//

       }

 

       public Object getElementAt(int index) {

//

       }

   });

           

Для компонента JTable использовать AbstractTableModel:

JTable  t = new JTable(new AbstractTableModel() {

 

       public int getRowCount() {

 //

       }

 

       public int getColumnCount() {

//

       }

 

       public Object getValueAt(int rowIndex, int columnIndex) {

//

       }

   });

 

ЛАБОРАТОРНАЯ РАБОТА № 2

Работа с реляционными моделями данных.

Цель работы

Создание моделей данных для представления информации из базы данных. Визуальное отображение ее в компоненте JTable c использованием модели javax.swing.table.TableModel.

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 286.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...