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

OSCHINA-MIRROR/wangwei123-JdbcQuery

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

JdbcQuery

Технический чат QQ: 162695864
JdbcQuery — это библиотека, которая упрощает выполнение сложных SQL запросов и хранимых процедур в Java, делая это так же просто, как Hibernate, и позволяющая легко получать результаты в виде списков, карт и массивов.

1. Пример вызова хранимой процедуры:

String strSql = "{call callcenter_pack.Get_TaskCaseCount(:P_UserID,:P_ErrorInfo,:P_OutData)}";
JdbcQuery query = JdbcUtils.createNativeQuery(super.getConnection(), strSql);
query.setParameter("P_UserID", 5);
query.setOutParameter("P_ErrorInfo", OracleTypes.VARCHAR);        
query.setOutParameter("P_OutData", OracleTypes.CURSOR);
query.executeProcedure();

Параметры: P_UserID, P_ErrorInfo, P_OutData.

P_ErrorInfo — выходной параметр, который используется для получения ошибок из хранимой процедуры. P_OutData — курсор.

String strError = query.getString("P_ErrorInfo");
List<TaskBarCounter> dataList = query.getResultList("P_OutData", TaskBarCounter.class);
query.closeCallableStatement();
```### Можно легко получить список результатов.
2\. Пример вызова SQL-запроса:
-------
```java
public Result findCollect(final QueryMap qMap) {
    final StringBuilder sb = new StringBuilder();
    StringBuilder sbWhere = new StringBuilder();
    // Сборка необходимых колонок для агрегированного запроса
    sb.append("select c.store_id, s.name, SUM(c.total_recharge) as total_recharge,");
    sb.append("SUM(c.total_payment) as total_payment,");
    sb.append("SUM(c.total_reversal) as total_reversal ");
    // Условия запроса
    sbWhere.append("from collect c inner join store s on c.store_id = s.id ");
    sbWhere.append("where c.created >= :start ");
    sbWhere.append("and c.created <= :end ");
    sbWhere.append("and s.parent_id = :parentId ");
    sbWhere.append("and s.name like :storeName");
    sbWhere.append("GROUP BY c.store_id, s.name ");
    // Запрос количества записей
    final String countSQL = "select count(c.id)" + sbWhere.toString();
    // Пагинация
    sb.append(sbWhere).append("limit :pageStart,:pageSize");
    // QueryMap - мощная реализация HashMap с различными типами преобразований,
    // например: String -> Integer, String -> Date и т. д.
    qMap.convertsInt("pageIndex", "pageSize");
    // Вычисление параметров пагинации: limit :pageStart,:pageSize
    qMap.setProperty("pageStart", qMap.getPageIndex() * qMap.getPageSize());
    // Установка параметра parentId, например: and s.parent_id = :parentId
    qMap.setProperty("parentId", 5);
    // метод getLikeValue может быть преобразован в формат LIKE, например: test => '%test%'
    qMap.setProperty("storeName", qMap.getLikeValue("storeName"));
    final Result result = new Result();
    // получаем соединение с базой данных через Hibernate, используя super.getSession().connection
    // устанавливаем параметры метода: соединение с базой данных, SQL-запрос, параметры
    JdbcQuery query = JdbcUtils.createNativeQuery(super.getSession().connection, countSQL, qMap);
}
``````markdown
      // получаем количество записей
      int count = query.getCount();
      // устанавливаем параметры метода: соединение с базой данных, SQL-запрос, параметры
      JdbcQuery querys = JdbcUtils.createNativeQuery(super.getSession().connection, sb.toString(), qMap);
      // получаем список результатов List<? extends HashMap>
      List<?> list = querys.getResultList();
      // сохраняем результаты в объекте result и возвращаем его
      result.setTotal(count);
      result.setData(list);
      Log.i("result", result);
      return result;
  }
    //===========================================================================================
  //============= Получение соединения с базой данных Hibernate4.x начало ======================
    super.getCurrentSession().doWork(new Work() {
        public void execute(Connection connection) {
            // получаем соединение с базой данных через Hibernate
            // устанавливаем параметры метода: соединение с базой данных, SQL-запрос, параметры
            JdbcQuery query = JdbcUtils.createNativeQuery(connection, countSQL, qMap);
            // получаем количество записей
            int count = query.getCount();
            // устанавливаем параметры метода: соединение с базой данных, SQL-запрос, параметры
            JdbcQuery querys = JdbcUtils.createNativeQuery(connection, sb.toString(), qMap);
            // получаем список результатов List<? extends HashMap>
            List<?> list = querys.getResultList();
            // сохраняем результаты в объекте result и возвращаем его
            result.setTotal(count);
            result.setData(list);
            Log.i("result", result);
        }
    });
  //============= Получение соединения с базой данных Hibernate4.x конец =======================
    return result;
  }
# Пример кода

Пример кода ниже демонстрирует использование метода `getLikeValue` для форматирования значений в формате LIKE.
``````java
setProperty("parentId", 5);
    // метод getLikeValue может быть преобразован в формат LIKE, например: test => '%test%'
qMap.setProperty("storeName", qMap.getLikeValue("storeName"));
final Result result = new Result();
// получаем соединение с базой данных через Hibernate, используя super.getSession().connection
// устанавливаем параметры метода: соединение с базой данных, SQL-запрос, параметры
JdbcQuery query = JdbcUtils.createNativeQuery(super.getSession().connection, countSQL, qMap);
// получаем количество записей
int count = query.getCount();
// устанавливаем параметры метода: соединение с базой данных, SQL-запрос, параметры
JdbcQuery querys = JdbcUtils.createNativeQuery(super.getSession().connection, sb.toString(), qMap);
// получаем список результатов List<? extends HashMap>
List<?> list = querys.getResultList();
// сохраняем результаты в объекте result и возвращаем его
result.setTotal(count);
result.setData(list);
Log.i("result", result);
return result;
}
//===========================================================================================
//=== Получение соединения с базой данных Hibernate4.x начало =================================
super.getCurrentSession().doWork(new Work() {
public void execute(Connection connection) {
// получаем соединение с базой данных через Hibernate
// устанавливаем параметры метода: соединение с базой данных, SQL-запрос, параметры
JdbcQuery query = JdbcUtils.createNativeQuery(connection, countSQL, qMap);
// получаем количество записей
int count = query.getCount();
// устанавливаем параметры метода: соединение с базой данных, SQL-запрос, параметры
JdbcQuery querys = JdbcUtils.createNativeQuery(connection, sb.toString(), qMap);

Здесь все необходимые строки переведены на русский язык, сохранив структуру и форматирование исходного текста.```java // получаем список результатов List extends HashMap> List> list = querys.getResultList(); // сохраняем результаты в объекте result и возвращаем его result.setTotal(count); result.setData(list); Log.i("result", result); }); //============= Получение соединения с базой данных Hibernate4.x конец ======================= return result; }


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

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

Введение

JdbcQuery — это оболочка для операций JDBC, которая делает выполнение сложных SQL-запросов и хранимых процедур в JAVA таким же простым, как в hibernate, и позволяет удобно возвращать результирующий набор в виде List, Map или Array. *Техническая коммуникация: QQ группа 162695864.* Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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