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

OSCHINA-MIRROR/JesusSlim-slimmysql

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

slimmysql

Полезный инструмент для выполнения запросов к MySQL.

Исходный код на Go, который отказался от использования ORM.

Связаться со мной: 755808379@qq.com

GitHub адрес: https://github.com/jesusslim/slimmysql

Пример использования:

Полный пример полный пример:

Slimgotest

Инициализация (регистрация соединений)

conf, _ := goconfig.LoadConfigFile("./conf/db.ini")
conf_sq := "local"
slimmysql.RegisterConnectionDefault(conf.MustBool(conf_sq, "rwseparate"), conf.MustValue(conf_sq, "host"), conf.MustValue(conf_sq, "port"), conf.MustValue(conf_sq, "db"), conf.MustValue(conf_sq, "user"), conf.MustValue(conf_sq, "pass"), conf.MustValue(conf_sq, "prefix"), false)

Файл конфигурации должен выглядеть следующим образом:

Пример файла конфигурации

[local]
rwseparate = true
user = root
pass = root
host = 127.0.0.1,127.0.0.1,127.0.0.1
port = 3307
db = testgo,testgo2,testgo3
prefix = go_

Множество хостов указывает на разделение на главный и репликационные серверы. Первый адрес является основным сервером, а остальные — репликами.

Затем получите экземпляр при необходимости его использования.

slimsql, err := slimmysql.NewSqlInstanceDefault()

Условия для запроса

Используются map[string]interface{} как условие для запроса. Ключ карты представляет собой поле, значение — значение поля. Операторы сравнения (LIKE, >, <, BETWEEN) добавляются после имени поля с помощью префиксов _like, _gt, _lt, _between. Например, nickname LIKE: ключ=nickname__like.

По умолчанию используется оператор =. Другие операторы:

  • LIKE: __like
  • >: __gt
  • >=: __egt
  • <: __lt
  • <=: __elt
  • !=: __neq
  • BETWEEN: __between
  • IN: __in
  • NOT IN: __notin
  • IS NULL: __isnull
  • IS NOT NULL: __isnotnull

Ключ relation указывает на логическое соединение (AND, OR). По умолчанию используется AND. Для вложенных условий используйте ключ "_" и передайте map[string]interface{}.

Пример:

condition := map[string]interface{}{
    "relation":       "or",
    "nickname__like": "Jesus",
    "_": map[string]interface{}{
        "id__gt": 10385,
        "_": map[string]interface{}{
            "relation": "or",
            "_": map[string]interface{}{
                "status":    1,
                "acoin__gt": 200,
            },
            "type": 2,
        },
        "create_time__between": "1431619200|1433088000",
    },
    "id__egt": 10575,
}

stds, err := slimsql.Table("students").Where(condition).Page(1, 10).Order("id desc").Fields("id,nickname,nickname_cn,acoin,mobile").Select()

// SQL: Select: SELECT id,nickname,nickname_cn,acoin,mobile FROM `pre_students` WHERE ( id > 14385 AND ( ( status = '1' AND acoin > 200 ) OR type = '2' ) AND ( create_time >= 1431619200 AND create_time <= 1433088000 ) ) OR id >= 10575 OR nickname LIKE '%Jesus%' ORDER BY id desc LIMIT 0,10

Функции:

  • where
  • group
  • having
  • order
  • page
  • pk (установка первичного ключа)
  • join: slimsql.Table("A").Join("left join B on A.id = B.aid")
  • count
  • find (выбор одного значения, возвращает map)
  • select (возвращает массив map)
  • getField (похож на select, но возвращает map с ключом первого поля)
  • setInc (увеличивает значение)
  • save (обновляет запись)
  • add (добавляет новую запись)
  • delete (удаляет запись)

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

  • startTrans
  • commit
  • rollback

Локирование таблиц:

  • Lock
  • Unlock
  • LockRow (forUpdate)

ping (тестирование состояния соединения)

clear (очистка значений объекта slimmysql.Sql)

Дополнительную информацию можно найти здесь: https://gowalker.org/github.com/jesusslim/slimmysql

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

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

Введение

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

Обновления

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

Участники

все

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

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