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

OSCHINA-MIRROR/yisin-jpabatis

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

jpa-batis

Введение

На основе mybatis был разработан плагин jpa-batis, который позволяет проектам, использующим JPA, легко и удобно обрабатывать сложные SQL-запросы, подобно использованию mybatis. Основное назначение — обработка сложных запросов, поэтому поддержка операций insert, update и delete была исключена, оставшись только поддержка операции select.

Так как плагин основан на mybatis, то синтаксис в файле mapper.xml полностью соответствует mybatis, а взаимодействие с базой данных реализовано с использованием класса EntityManager из JPA.

Если вам полезен этот плагин, пожалуйста, оставьте звездочку, а также вы можете форкнуть проект и доработать его. Если вы считаете, что этот плагин бесполезен, не забрасывайте его негативными комментариями, спасибо.

Архитектура программного обеспечения

Описание архитектуры программного обеспечения Основано на:

  1. mybatis-3
  2. Spring Data JPA

Инструкции по установке

Текущая версия основана на версии springboot 1.5.10.RELEASE, если вы хотите использовать более позднюю версию springboot, просто измените версию родительского проекта.

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.5.10.RELEASE</version>
</parent>

Добавьте в ваш проект jpa-batis.jar

<dependency>
    <groupId>com.yinsin</groupId>
    <artifactId>jpabatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

Инструкции по использованию### 1. Добавьте конфигурацию пути к файлу mapper.xml в springboot-файл конфигурации

batis:
    mapper: mappers # Предположим, что mapper.xml находится в директории src/main/resources/mappers/

или

batis.mapper=mappers # Предположим, что mapper.xml находится в директории src/main/resources/mappers/

2. Создайте файл mapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yinsin.lifechess.domain.game.CllUserGameInfo">
    <resultMap id="BaseResultMap" type="java.util.Map">
        <result column="row_id" jdbcType="BIGINT" property="rowId" />
        <result column="account" jdbcType="VARCHAR" property="account" />
        <result column="name" jdbcType="VARCHAR" property="name" />
        <result column="mobile" jdbcType="VARCHAR" property="mobile" />
        <result column="email" jdbcType="VARCHAR" property="email" />
        <result column="headimage" jdbcType="VARCHAR" property="headimage" />
        <result column="status" jdbcType="INTEGER" property="status" />
        <result column="game_integral" jdbcType="INTEGER" property="gameIntegral" />
        <result column="game_level" jdbcType="INTEGER" property="gameLevel" />
    </resultMap>
    
    <select id="loadCChessRankingList" parameterType="String" resultMap="BaseResultMap">
        выбрать 
          ui.row_id, ui.account, ui.name, ui.mobile,
          ui.email, ui.headimage, ui.status,
          ugi.game_integral, ugi.game_level
        из
          cll_user_info ui 
          левое соединение cll_user_game_info ugi 
            по ui.row_id = ugi.user_id 
        где ugi.game_no = #{gameNo,jdbcType=VARCHAR}
        упорядочить по ugi.game_integral убыванию,
          ugi.game_level убыванию,
          ui.lastlogindate убыванию
    </select>
</mapper>

3. Необходимо использовать класс JpaSession для инжекции в классах, использующих jpabatis:

@JpaMapper
private JpaSession session;
```### 4. Выполнение запроса:
#### 4.1 Запрос одной записи
```java
Map<String, Object> param = new HashMap<>();
param.put("gameNo", "xx");
// mapperid -> пространство имен маппера + id тега <select>
// Например: com.yinsin.lifechess.domain.game.CllUserGameInfo.loadCChessRankingList
Map<String, Object> result = session.selectOne("mapperid", param);
// TODO ...
```#### 4.2 Запрос нескольких записей
```java
Map<String, Object> param = new HashMap<>();
param.put("gameNo", "xx");
// mapperid -> пространство имен маппера + id тега <select>
// Например: com.yinsin.lifechess.domain.game.CllUserGameInfo.loadCChessRankingList
List<Map<String, Object>> dataList = session.selectList("mapperid", param);
// TODO ...

4.3 Запрос нескольких записей с пагинацией

// Запрос с пагинацией и без пагинации отличаются только параметром Pageable
Map<String, Object> param = new HashMap<>();
param.put("gameNo", "xx");
Pageable pageable = new PageRequest(0, 10); // 1.x версия
// Pageable pageable = Pageable.of(0, 10); // 2.x версия
// mapperid -> пространство имен маппера + id тега <select>
// Например: com.yinsin.lifechess.domain.game.CllUserGameInfo.loadCChessRankingList
Page<Map<String, Object>> dataList = session.selectList("mapperid", param, pageable);
// TODO ...

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

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

Введение

На основе mybatis была создана оболочка плагина jpa-batis. Это позволяет проектам, использующим jpa, удобно и легко работать со сложными операторами SQL, как если бы они использовали mybatis. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

Язык

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

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