1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mgang-mgds4j

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

mgds4j

Мечты о мечтах, самостоятельно реализованный источник данных и пул соединений для Java, полное название — mgang datasource for java##2015-04-23

  1. Обновлены возможности логирования в mgds4j с использованием log4j.
    Для этого достаточно указать константы constant key=openLog value=true в секции factory файла mgds4j.xml.

##2014-12-01

  1. Создана документация javadoc, а также выполнены небольшие коррективы в javadoc-комментариях.
  2. Экспортированный jar-файл mgds4j-2.1.jar помещён в папку outjar для удобства использования зависимостей.

##2014-11-28 Обновление до версии v1.1:

  1. Время ожидания вынесено в конфигурационный файл, значение по умолчанию — 2000 миллисекунд.

Обновление до версии v2.0:
Учитывая понятия источника данных и пула соединений, источник данных представляет собой объект-инструмент, использующий технологию пула соединений для кэширования соединений с базой данных для внешнего использования.
Поэтому файлы MgDataSource.java и MgConnectionPool.java были объединены в один файл MgDataSource.java.
Тестирование прошло успешно.

Обновление до версии v2.1:

  1. Конфигурационные файлы properties заменены на xml.

  2. Добавлена реализация через шаблоны проектирования: фабрика, одиночка и рефлексия.
    Одиночка:

    private static MgDataSource mgds = null; private MgDataSource() { // Приватный конструктор }

    /**

    • Получение единого экземпляра MgDataSource
    • @return */ public static MgDataSource getInstance() { if (mgds == null) { mgds = new MgDataSource(); } return mgds; }Фабрика:
// Создание фабрики
MgDataSourceFactory.build();
// Получение источника данных из фабрики
ds = MgDataSourceFactory.getMgDataSource("ds");

Рефлексия:

// Вызов статического метода getInstance для получения единственного экземпляра
Class dsClass = Class.forName(clazz);
ds = (MgDataSource) dsClass.getMethod("getInstance", new Class[0]).invoke(null, new Object[0]);
factory.put(name, ds);

// Получение узлов property из dataSource
Iterator ps = dsElement.elementIterator("property");
while (ps.hasNext()) {
    Element propertyElement = (Element) ps.next();
    String key = propertyElement.attributeValue("key");
    String value = propertyElement.attributeValue("value");
    String type = propertyElement.attributeValue("type");
    if (type.equals("string")) {
        Method m = MgDataSource.class.getMethod("set" + UpperFirst(key), String.class);
        m.invoke(ds, value);
    } else if (type.equals("int")) {
        Method m = MgDataSource.class.getMethod("set" + UpperFirst(key), int.class);
        m.invoke(ds, Integer.parseInt(value.trim()));
    }
}

27 ноября 2014 года

Сегодня я планировал решить проблему передачи параметров Struts2, которая иногда приводит к значению null, но вместо этого столкнулся с проблемами, связанными с временем отклика в 45 секунд и отказом подключения к базе данных. Затем, борясь с этими проблемами, я занялся этим вопросом. К счастью, были достигнуты некоторые успехи. Проблема со временем 45 секунд была решена онлайн, но я всё равно собираюсь написать об этом на своём блоге NetEase. Второй проблемой стало соединение с базой данных. После изучения некоторых материалов выяснилось, что это может быть связано с источником данных, после чего я начал работать над источниками данных и пула соединений.Успешно использовался обычный источник данных dbcp и c3p0.
Затем я решил попробовать создать свой собственный источник данных, используя технологию пула соединений. Конечно, возможно, мне не удастся сделать его таким же удобным, как dbcp и c3p0, но я всё равно намерен реализовать это самому. Даже если в будущем я буду использовать профессиональные источники данных, этот опыт будет значительным шагом вперёд.

Таким образом, проект mgds4j родился.


Сегодня можно считать завершённой версией 1.0.

  1. Реализовано кэширование соединений с базой данных в пуле соединений
  2. Источник данных получает соединение и возвращает его обратно
  3. При отсутствии доступных соединений пул автоматически увеличивается до определённого размера

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mgang-mgds4j.git
git@api.gitlife.ru:oschina-mirror/mgang-mgds4j.git
oschina-mirror
mgang-mgds4j
mgang-mgds4j
master