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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
  // Извлекаем из файла индексов смещение записи
      // в файле данных
      idxFilePointer = idx.readLong();

      // Выполняем позиционирование на нужную запись
      // в файле данных
      dat.seek(idxFilePointer);
  
      // Извлекаем поля записи
      str = dat.readLine();
      account = new Integer(dat.readInt());

      // Объединяем значения полей в текстовую строку
      sRecord = new String("> " + account + ", " + str);
    }
    catch(Exception ioe)
    {
      System.out.println(ioe.toString());
    }

    // Возвращаем извлеченную запись
    return sRecord;
  }
}
   Описание исходных текстов
   Для работы с базой данных мы создали класс SimpleDBMS, определив в нем 
конструктор, методы для добавления записей, извлечения записей по их 
порядковому номеру, а также метод для закрытия базы данных.
   Метод main
   Сразу после запуска метод main приложения DirectFileAccess создает базу 
данных, передавая конструктору имена файла индекса dbtest.idx и файла данных 
dbtest.dat:
SimpleDBMS db = new SimpleDBMS("dbtest.idx", "dbtest.dat");
   После этого с помощью метода AddRecord, определенного в классе SimpleDBMS, в 
базу добавляются три записи, состоящие из текстового и числового полей:
db.AddRecord("Ivanov",   1000);
db.AddRecord("Petrov",   2000);
db.AddRecord("Sidoroff", 3000);
   Сразу после добавления записей приложение извлекает три записи с номерами 2, 
1  и 0, вызывая для этого метод GetRecordByNumber, также определенный в классе 
SimpleDBMS:
System.out.println(db.GetRecordByNumber(2));
System.out.println(db.GetRecordByNumber(1));
System.out.println(db.GetRecordByNumber(0));
   Извлеченные записи отображаются на системной консоли.
   После завершения работы с базой данных она закрывается методом close из 
класса SimpleDBMS:
db.close();
   Класс SimpleDBMS
   Рассмотрим теперь класс SimpleDBMS.
   В этом классе определено три поля с именами idx, dat и idxFilePointer, а 
также три метода.
   Поля класса SimpleDBMS
   Поля idx dat являются объектами класса RandomAccessFile и представляют собой,
 соответственно, ссылки на файл индекса и файл данных. Поле idxFilePointer типа 
long используется как рабочее и хранит текущее смещение в файле.
   Конструктор класса SimpleDBMS
   Конструктор класса SimpleDBMS выглядит достаточно просто. Все, что он делает,
 - это создает два объекта класса RandomAccessFile, соответственно, для индекса 
и данных:
idx = new RandomAccessFile(IndexFile, "rw");
dat = new RandomAccessFile(DataFile, "rw");
   Так как в качестве второго параметра конструктору класа RandomAccessFile 
передается строка "rw", файлы открываются и для чтения, и для записи.
   Метод close
   Метод close закрывает файлы индекса и данных, вызывая метод close из класса 
RandomAccessFile:
idx.close();
dat.close();
   Метод AddRecord
   Метод AddRecord добавляет новую запись в конец файла данных, а смещение это
 
<<-[Весь Текст]
Страница: из 275
 <<-