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

OSCHINA-MIRROR/noear-weed3

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
文章_Weed3 xIf接口的应用.md 1.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 06:09 5b6a449

Применение некоторых новых интерфейсов

whereIf(), andIf(), orIf()

На примере andIf():

  • Код в старом стиле:
public Object searchBy(Integer id, String name, Integer type) throws Exception {
    DbTableQuery qr = db.table("user").whereTrue();
    if (id != null) {
        qr.and("id=?", id);
    }

    if (name != null) {
        qr.and("name=?", name);
    }

    if (type != null && type > 2) {
        qr.and("type=?", type);
    }

    return qr.limit(50).select("*").getMapList();
}
  • Новый стиль кода:
public Object searchBy(Integer id, String name, Integer type) throws Exception {
    return db.table("user")
            .whereTrue()
            .andIf(id != null, "id=?", id)
            .andIf(name != null, "name=?", name)
            .andIf(type != null && type > 2, "type=?", type)
            .limit(50)
            .select("*")
            .getMapList()
}

setIf(), setMapIf(), setEntityIf()

Пример setMapIf():

  • Старый стиль кода:
public void insertUser(Map<String, Object> map) throws Exception {
    DbTableQuery qr = db.table("user");
    map.forEach((k, v) -> {
        if (v != null) {
            qr.set(k, v);
        }
    });
    qr.insert();
}
  • Новый стиль кода:
public void insertUser(Map<String, Object> map) throws Exception {
    db.table("user").setMapIf(map, (k, v) -> v != null).insert();
}
1
https://api.gitlife.ru/oschina-mirror/noear-weed3.git
git@api.gitlife.ru:oschina-mirror/noear-weed3.git
oschina-mirror
noear-weed3
noear-weed3
master