12
June

Oracle DBMS Metadata (DDL)

Posted in: Java technologies (translated), Базы данных, SQL, Oracle | No Comments

The Russian version of this article can be found here.
All SQL statements are devided into two main categories:
DDL - data definition language;
DML - data manipulation languauge.
DML is used to change the data in the database tables. Instructions of DML are well-known for everyone: insert, update, delete. In order to save changes to database (so, the other users will see them), you need to execute commit operator. To discard all of your changes you have to execute rollback operator.
All database objects (triggers, tables, indices, etc.) have their definitions. DDL-expressions (metadata) of these objects can be extracted from the database schema. DDL-expressions will help you during database analysis and optimization.
This article will teach you, how objects’ definitions can be extracted from the Oracle database instance.
(more…)

29
May

Тестирование и внутренние классы (inner class)

Posted in: Тестирование кода, Java technologies, J2SE | No Comments

При тестировании отдельных классов Java-приложения, многие используют метод main или создают дополнительный тестовый класс. Отдельный класс лучше использовать при интегральных тестах, а метод main после выпуска новой версии класса/пакета чаще всего нужно удалять.
В этой статье я вновь возвращаюсь к внутренним классам (inner class) для решения описанной выше проблемы. На этот раз мы рассмотрим статические внутренние классы.
Статический внутренний класс описывается с модификатором static внутри декларации другого (обрамляющего) класса. Вот пример такого класса:
(more…)

26
May

Метаданные Oracle (DBMS_METADATA)

Posted in: Базы данных, SQL, Oracle | No Comments

Все выражения в SQL делятся на две основные категории:
DDL - data definition language - язык определения данных;
DML - data manipulation languauge - язык манипулирования данными.
Язык DML необходим для изменения содержимого таблиц. Его операторы - это всем известные insert, update, delete. Для того, чтобы изменения стали видны всем пользователям базы данных, требуется выполнение оператора commit, а для отката изменений - оператора rollback.
DDL-выражения (метаданные) можно получить из уже существующей схемы. Они очень полезны при оптимизации и анализе баз данных. О том, как получить метаданные из Oracle и будет эта статья.
(more…)

29
April

JUnit and Test Cases (Unit Testing)

Posted in: Java technologies (translated), Тестирование кода | No Comments

The Russian version of this article can be found here.
Testing is not a very interesting thing sometimes. Some developers use standard output or debugger in order to test their classes. But there is another way… In this article you’ll find the introduction into JUnit library. JUnit framework makes the process of test-writing much easier.
To show you the power of JUnit let me create the small class in Java and write some test cases for it. Consider the following code:
(more…)

25
April

Anonymous inner classes in Java

Posted in: Java technologies (translated), Java technologies, J2SE | No Comments

The Russian version of this article can be found here.
There are a lot of articles through Internet which have mistakes regarding anonymous inner classes in Java. Anonymous inner class:

  • has no name;
  • can’t be declared as static;
  • can be instantiated only once.

Let me show you the truth.
Consider the following code:
(more…)

21
April

Олег Митяев - “Соседка” (текст, аккорды)

Posted in: Ваш досуг. Полезные советы | 1 Comment

Мои музыкальные предпочтения довольно консервативны. Например, мне нравятся песни русских бардов. Хотя я наверное не один такой. Многие любят приятную музыку и добрые слова Митяева, Визбора, Дольского.
Когда-то подобрал аккорды к песне “Соседка” (Олег Митяев). Это наверное не самые точные аккорды, но тональность правильная. В любом случае, вы всегда можете меня поправить. Приведу полный текст песни с аккордами:
(more…)

9
April

Экстремальное программирование (XP)

Posted in: Project Management | 2 Comments

Возможно, это прозвучит странно, но около 75% програмного обеспечения вообще не выходит в люди. С другой стороны, существует множество компаний, которые производят софт в огромном количестве. Все это и многое другое обязывает программистов снижать стоимость разработки. А для этого нужно понимать интересы заказчика, постоянно сотрудничать с ним, чтобы в итоге создать именно то, что ему необходимо.

Методология разработки програмного обеспечения eXtreme Programming (изобретатель - Kent Beck) получает все большее признание благодаря максимальному упрощению процессов проектирования и непосредственной разработки програмных продуктов в среде с быстро изменяющимися требованиями.
(more…)

17
March

Использование SQL/XML функций в Oracle

Posted in: Технологии XML, XPath, Базы данных, SQL, Oracle | 10 Comments

Начиная с девятой версии, Oracle предоставляет набор XML-related функций. Используя эти функции в запросах к реляционным данным можно получить данные в формате XML.
В данной статье я хочу описать SQL/XML функции Oracle (9i и выше), которые встречаются наиболее часто. Итак…
(more…)

16
March

Быстрая сортировка на Java (Quick Sort)

Posted in: Java technologies, J2SE | 9 Comments

Алгоритм Quick Sort является одним из самых быстрых алгоритмов сортировки. Его среднее время выполнения - O(n log n). Quick Sort реализуется с помощью рекурсии.
В этой статье представлен демонстрационный пример алгоритма быстрой сортировки на Java.
(more…)

14
March

Velocity для создания библиотек тэгов (Taglib)

Posted in: Java open-source проекты, Java technologies, J2SE | 4 Comments

Данная статья является продолжением статьи о Velocity Framework.
Taglib – один из подпроектов Jakarta. Это репозиторий готовых библиотек тэгов (custom tags). Тэги в последствии могут быть использованы при создании JSP-страниц. Преимущество использования таких тегов - отделение отображения веб-приложения от его логики.
В этой статье На конкретном примере я покажу как создавать тэги используя Velocity. Конечно их можно создавать и без этого движка, но при использовании Velocity достигается небывалая гибкость в поддержке тэгов.
Для начала придумаем задание. Пусть нужно создать тэг, отображающий таблицу с именем пользователя и адресом его сайта. В качестве параметра тэга будет выступать необязательный атрибут count для оганичения кол-ва пользователей при выводе. Итак, начнем.
(more…)