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

OSCHINA-MIRROR/felly822-wasdb

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

О WASDB

Открытый библиотечный проект, который предоставляет простое API поверх JDBC.

Упрощает разработку приложений с использованием JDBC, не снижая производительность программы, и обеспечивает высокую совместимость с JDBC.

  1. Для операций чтения данных таблицы он может преобразовать ResultSet в объекты кэша, где внутренний формат данных представлен в виде XML, а также может быть преобразован в List, Array, Set и другие коллекции Java, что делает работу программиста более удобной.

  2. Для операций записи данных таблицы процесс становится очень простым (необходимо только указать SQL-запрос).

  3. Поддержка использования источников данных, пулов соединений баз данных и других технологий для повышения производительности — повторное использование уже созданных объектов соединений с базой данных вместо затрат времени и усилий на постоянное создание и удаление таких объектов.

  4. Поддержка динамического изменения, добавления, удаления, модификации, поиска, сортировки и объединения ResultSet.

  5. Поддержка распределённых баз данных и нескольких источников данных.

Проект состоит из двух основных модулей: wasdb и wasdbtools:

  1. Модуль wasdb является ядром проекта и предназначен для реализации операций с использованием JDBC.2. Модуль wasdbtools представляет собой пример использования wasdb, включая конфигурацию источника данных, управление транзакциями, инструменты для чтения/записи данных, простые примеры и т.д.GitHub адрес: https://github.com/fellyvon/wasdb

Как использовать?

  1. Создайте новый проект и добавьте зависимости wasdb-1.0.0.jar и wasdbtools-1.0.0.jar.

    Можно использовать Maven для добавления зависимостей:

<dependency>
    <groupId>com.waspring.wasdb</groupId>
    <artifactId>wasdbtools</artifactId>
    <version>1.0.0</version>
</dependency>
  1. Создайте конфигурационный файл database.xml для настройки источника данных. Управление бинами осуществляется с помощью конфигурации Spring 3.2, а пул соединений использует Druid.

  2. Создайте новый класс и установите путь до конфигурационного файла. При запуске приложения выполните следующее:

com.waspring.wasdbtools.DatabaseConnection.setConnConfig("classpath:ваш_путь/database.xml");
  1. Используйте инструментальные классы для работы с данными:

    (1) Чтение данных:

/**
 * Пример запроса данных
 * @throws Exception
 */
public void queryData(String mainOrderNo) throws Exception {
    List<Object> para = new ArrayList<>();
    String sql = "SELECT * FROM d_order WHERE status = ?";
    para.add("001");
    if (mainOrderNo != null && !"".equals(mainOrderNo)) {
        sql += " AND main_order_no = ?";
        para.add(mainOrderNo);
    }
    sql += " LIMIT ?, ?";
    para.add(1);
    para.add(10);
    // Обратите внимание, что connName соответствует beanId в файле database.xml
    ResultSet rs = DaoUtil.queryData(connName, sql, para.toArray());
}

while (rs.next()) {
    System.out.println("data=" + rs.getString(1) + ":"
            + rs.getString(2)
            + ":" + rs.getDate("create_date")
            + ":" + rs.getDouble(1));
}

(2) Обновление, удаление и другие операции а. Операции с транзакциями

    i. Использование шаблона транзакций
/**
 * Использование шаблона транзакций
 */
public void testTrans() {
   // обратите внимание, что connName — это beanId в database.xml
   TransactionTemplate tmp = new TransactionTemplate(connName);

   Object o = tmp.executeTransaction(new TransactionCallback() {
      public Object doTransactionEvent() throws Exception {
         Exception e = new Exception();
         String sql = "insert into a_api_topy(topy_name,topy_value) values(?,?)";
         // обратите внимание, что connName — это beanId в database.xml
         DaoUtil.executeUpdate(connName, sql, new Object[]{"2", 4});
         // обратите внимание, что connName — это beanId в database.xml
         DaoUtil.executeUpdate(connName, sql, new Object[]{"4", OnClickListener});
         // обратите внимание, что connName — это beanId в database.xml
         DaoUtil.executeUpdate(connName, sql, new Object[]{"5", 7});
         // попробуйте здесь выбросить исключение для отката

         return "1";
      }
   });

   System.out.println(o);
}
ii. Ручное управление транзакциями
/**
 * Обработка с ручной декларацией транзакций
 */
public void testTrans2() {
   // обратите внимание, что connName — это beanId в database.xml
   TransactionManager trManager = new TransactionManager(connName);
```   Transaction transaction = null;
   String sql = "insert into a_api_topy(topy_name, topy_value) values (?, ?)";
   try {
      transaction = trManager.beginTransaction();
      // Note that connName is the beanId in database.xml
      DaoUtil.executeUpdate(connName, sql, new Object[]{"h1", 1});
      // Note that connName is the beanId in database.xml
      DaoUtil.executeUpdate(connName, sql, new Object[]{"h2", 2});
      // Note that connName is the beanId in database.xml
      DaoUtil.executeUpdate(connName, sql, new Object[]{"h3", 3});
      // Try throwing an exception here for rollback
      trManager.commitTransaction(transaction);
   } catch (Exception e) {
      trManager.rollbackTransaction(transaction, e);
   }}
б. Использование без управления транзакциями
/**
 * Обработка по умолчанию с автоматическим подтверждением
 */
public void testNoTras() {
   try {
String sql = "insert into a_api_topy(topy_name,topy_value) values(?,?)";
// Обратите внимание, что connName — это beanId в файле database.xml
DaoUtil.executeUpdate(connName, sql, new Object[] {"7", 1});
// Обратите внимание, что connName — это beanId в файле database.xml
DaoUtil.executeUpdate(connName, sql, new Object[] {"8", 2});
// Обратите внимание, что connName — это beanId в файле database.xml
DaoUtil.executeUpdate(connName, sql, new Object[] {"9", 3});
// Здесь можно попробовать выбросить исключение для отката транзакции
} catch (Exception e) {

}

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

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

Введение

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

Обновления

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

Участники

все

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

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