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

OSCHINA-MIRROR/baomidou-hibernate-plus

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

Для упрощения разработки и повышения производительности

Введение | Intro

Hibernate-Plus — это набор инструментов для расширения, который не меняет, а только улучшает операции CRUD в постоянном слое.

Технические обсуждения в QQ группе 492238239. Если группа заполнена, добавьте группу 121472998 (есть деньги — поддержите деньгами, нет денег — поддержите личным участием).

Преимущества | Advantages

  • Чистая родословная: полностью наследует все характеристики оригинального Hibernate.
  • Минимум зависимостей: зависит только от Hibernate.
  • Автоматическое создание кода: упрощает работу и позволяет сосредоточиться на бизнес-логике.
  • Настраиваемые операции: предоставляет множество API для более удобной разработки.
  • Упрощение операций: сосредоточьтесь на бизнес-логике, а операции с базой данных доверьте Hibernate-Plus.
  • Бесшовное разбиение на страницы: основано на разбиении на страницы Hibernate, без необходимости конкретной реализации.
  • Дружественность к базам данных: основано на Hibernate, поддерживает большинство основных баз данных.
  • Предотвращение SQL-инъекций: встроенная защита от специальных символов, предотвращающая атаки SQL-инъекции.
  • Отсутствие конфигурационных файлов: не нужно писать SQL-конфигурационные файлы (например, XML в Mybatis), что упрощает работу.
  • Разделение мастер-данных: простая настройка для реализации разделения мастер-данных.

Примеры использования | Demo

Spring-MVC Spring-Boot

Скачать | Download

Нажмите здесь, чтобы скачать

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>hibernate-plus</artifactId>
        <version>1.0.0.Final</version>
    </dependency>

Общие методы | API

API-объяснение

Преимущества?

Hibernate-Plus значительно облегчает жизнь разработчикам. Можно свободно выбирать общие методы в соответствии со своими потребностями.

Это позволяет вам чувствовать себя так же комфортно при использовании Hibernate, как и при использовании Mybatis-Plus, значительно упрощая разработку.

Hibernate-Plus - Spring интеграция

${hibernate.dialect} ${hibernate.show_sql} ${hibernate.format_sql} ${hibernate.use_sql_comments}
<!-- Автоматическое сканирование аннотированных классов Hibernate -->
<property name="packagesToScan">
    <list>
        <value>com.baomidou.hibernate.model.po</value>
    </list>
</property>
##Hibernate-Plus - SpringBoot интеграция

Смотрите Spring-Boot.

###Слой DAO

/*Интерфейс класса DAO*/
public interface DemoDao расширяет IDao<Tdemo> {

}

/*Класс реализации интерфейса DAO*/
public class DemoDaoImpl расширяет DaoImpl<Tdemo> реализует DemoDao {

}

###Сервисный слой

/*Сервисный интерфейс класса*/
public interface DemoService расширяет IService<Vdemo> {

}

/*Сервис класс реализации интерфейса*/
public class DemoServiceImpl расширяет ServiceImpl<Tdemo, Vdemo> реализует DemoService {

}

###Аннотация сущности @Entity @Table(name = "demo") @DynamicInsert(true) @DynamicUpdate(true) public class Tdemo расширяет AutoPrimaryKey {

        private String demo1;
        private String demo2;
        private String demo3;
    
        @Column(name = "demo1")
        public String getDemo1() {
            return demo1;
        }
    
        public void setDemo1(String demo1) {
            this.demo1 = demo1;
        }
    
        @Column(name = "demo2")
        public String getDemo2() {
            return demo2;
        }
    
        public void setDemo2(String demo2) {
            this.demo2 = demo2;
        }
    
        @Column(name = "demo3")
        public String getDemo3() {
            return demo3;
        }
    
        public void setDemo3(String demo3) {
            this.demo3 = demo3;
        }
    }

####Поддержка аннотаций

Полная поддержка JPA аннотаций, нативный Hibernate способ использования.

####Подчеркнуть

Не нужно добавлять аннотацию @Transient для свойств, которые не являются атрибутами поля таблицы.

####Пример проекта

http://git.oschina.net/baomidou/springmvc-hibernate-plus

##Hibernate-Plus — простой пример использования

Все операции относятся к одной таблице, каждый класс сущности должен наследовать Convert для преобразования между PO и TO.

Пример кода:

    List<Vdemo> lists = new ArrayList<Vdemo>(); **Текст запроса:**

for (int i = 0; i <= 100; i++) { Vdemo vdemo = new Vdemo(); vdemo.setDemo1(i + ""); vdemo.setDemo2(i + ""); vdemo.setDemo3(i + ""); lists.add(vdemo); } // 批量插入 boolean insertBatch = demoService.insertBatch(lists); System.out.println(insertBatch); // Condition 链式查询列表 List vdemoList = demoService.selectList(SelectWrapper.instance().le("id", 10)); System.out.println(vdemoList); Map map = new HashMap<>(); map.put("id", 99L); // 根据Condition 查询单条记录 Vdemo vdemo = demoService.selectOne(SelectWrapper.instance().eq("id", 10)); System.out.println(vdemo); List<Map<String, Object>> mapList = demoService.selectMaps(SelectWrapper.instance().ge("id", 80)); System.out.println(mapList); // 根据属性查询单条记录 Vdemo vdemo1 = demoService.get("1"); if (vdemo1 != null) { vdemo1.setDemo1("999"); vdemo1.setDemo2("999"); vdemo1.setDemo3("999"); // 修改或保存 demoService.saveOrUpdate(vdemo1); }

Vdemo vdemo2 = demoService.get("1"); if (vdemo2 != null) { vdemo2.setId(null); demoService.saveOrUpdate(vdemo2); }

int selectCount2 = demoService.selectCount(SelectWrapper.instance().ge("id", 80)); System.out.println(selectCount2); Page page = new Page(1, 20); page.setOrderByField("id"); page.setAsc(false); // 查询分页 Page selectPage = demoService.selectPage(SelectWrapper.DEFAULT, page); System.out.println(selectPage); // Condition链式查询分页返回Map Page selectMapPage = demoService.selectMapPage(SelectWrapper.instance().ge("id", 50), page); System.out.println(selectMapPage); // Condition链式查询分页返回VO Page selectPage2 = demoService.selectPage(SelectWrapper.instance().ge("id", 50), page); System.out.println(selectPage2); // Condition链式 删除单条记录 demoService.delete(DeleteWrapper.instance().eq("id", 1)); List vdemos = demoService.selectList(SelectWrapper.instance()); Iterator iterator = vdemos.iterator(); while (iterator.hasNext()) { Vdemo vdemo3 = iterator.next(); vdemo3.setDemo1(vdemo3.getDemo1() + "Caratacus Plus 1"); vdemo3.setDemo2(vdemo3.getDemo2() + "Caratacus Plus 2"); vdemo3.setDemo3(vdemo3.getDemo3() + "Caratacus Plus 3"); } // 批量修改 demoService.updateBatch(vdemos); // Condition链式 删除所有记录 demoService.delete(DeleteWrapper.DEFAULT);

Перевод текста на русский язык:

Для (int i = 0; i <= 100; i ++) { Vdemo vdemo = новый Vdemo (); vdemo.setDemo1 (i + ""); vdemo.setDemo2 (i + ""); vdemo.setDemo3 (i + ""); lists.add (vdemo); } // Пакетная вставка логическое значение insertBatch = demoService.insertBatch (списки); Система.из.println (insertBatch); // Условный цепочечный запрос списка Список vdemoList = demoService.selectList (SelectWrapper.экземпляр ().le ("id", 10)); Система.из.println (vdemoList); Карта карта = новая HashMap <> (); карта.put ("id", 99L); // Запрос одной записи по условию Vdemo vdemo = demoService.selectOne (SelectWrapper.экземпляр ().eq ("id", 10)); Система.из.println (vdemo); Список <Map <String, объект >> mapList = demoService.selectMaps (SelectWrapper.экземпляр ().ge ("id", 80)); Система.из.println (mapList); // Запрос одной записи по атрибуту Vdemo vdemo1 = demoService.get ("1"); если (vdemo1! = ноль) { vdemo1.setDemo1 ("999"); vdemo1.setDemo2 ("999"); vdemo1.setDemo3 ("999"); // Изменить или сохранить demoService.saveOrUpdate (vdemo1); }

Vdemo vdemo2 = demoService.get ("1"); если (vdemo2! = ноль) { vdemo2.setId (ноль); demoService.saveOrUpdate (vdemo2); }

целое число selectCount2 = demoService.selectCount (SelectWrapper.экземпляр ().ge ("id", 80)); Система.из.println (selectCount2); Страница страница = новая Страница (1, 20); страница.setOrderByField ("id"); страница.setAsc (ложь); // Пейджинговый запрос Страница selectPage = demoService.selectPage (SelectWrapper.ПО УМОЛЧАНИЮ, страница); Система.из.println (selectPage); // Цепочечный запрос страницы с условием возвращает карту Страница selectMapPage = demoService.selectMapPage (SelectWrapper.экземпляр ().ge ("id", 50), страница); Система.из.println (selectMapPage); // Цепочечный запрос страницы с условием возвращает VO Страница selectPage2 = demoService.selectPage (SelectWrapper.экземпляр ().ge ("id", 50), страница); Система.из.println (selectPage2); // Цепочечное условие удаляет одну запись demoService.delete (DeleteWrapper.экземпляр ().eq ("id", 1)); Список vdemos = demoService.selectList (SelectWrapper.экземпляр ()); Итератор итератор = vdemos.итератор (); в то время как (итератор.hasNext ()) { Vdemo vdemo3 = итератор.следующий (); vdemo3.setDemo1 (vdemo3.getDemo1 () + «Caratacus Plus 1»); vdemo3.setDemo2 (vdemo3.getDemo2 () + «Caratacus Plus 2»); vdemo3.setDemo3 (vdemo3.getDemo3 () + «Caratacus Plus 3»); } // Массовое изменение demoService.updateBatch (vdemos); // Цепочное условие удаляет все записи demoService.delete (DeleteWrapper.ПО УМОЛЧАНИЮ);

Введение

Hibernate — пакет расширенных инструментов: только улучшения, без изменений, более упрощённые операции CRUD в слое персистентности. Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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