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

OSCHINA-MIRROR/yuyenews-Beerus-DB

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

Beerus-DB — это фреймворк для работы с базами данных, который на данный момент поддерживает только MySQL.

Для подключения к базе данных и выполнения основных операций используется библиотека go-sql-driver/mysql. На её основе реализовано множество расширений: управление пулом подключений, работа с несколькими источниками данных, управление транзакциями, операции с одной таблицей без SQL, а также сложные операции с несколькими таблицами, при которых можно писать собственный SQL. В SQL можно использовать заполнители {}. Также можно использовать структуры в качестве параметров для работы с базой данных.

Установка

go get github.com/Beerus-go/Beerus-DB@v1.1.5

go get github.com/go-sql-driver/mysql

Документация https://beeruscc.com/beerusdb

Примеры

  • Добавление, удаление, обновление и выборка данных без использования SQL

    • Запрос данных из указанной таблицы на основе пользовательских условий
    conditions := builder.Create().
        Add("id > ?", 10).
        Add("and (user_name = ? or age > ?)", "bee", 18).
        Add("order by create_time desc", entity.NotWhere).
        Build()
    
    resultMap, err := operation.GetDBTemplate("Data source name").Select("table name", conditions)
    • Обновление данных на основе условий
    // Условия заданы
    conditions := builder.Create().
        Add("id = ?", 1).
        Build()
    
    // Данные для изменения
    data := ResultStruct{UserName: "TestNoSqlUpdate"}
    
    // Выполнение операции модификации
    result, err := operation.GetDBTemplate("Data source name").Update("table name", dbutil.StructToMapIgnore(&data, true),conditions)
    • Удаление данных на основе условий
    // Заданы условия удаления
    conditions := builder.Create().
        Add("id = ?", 2).
    Build()
    
    // Операция удаления
    _, err := operation.GetDBTemplate("Data source name").Delete("table name", conditions)
    • Вставка данных
    data := ResultStruct{
            UserName: "TestNoSqlInsert",
            UserEmail: "xxxxx@163.com",
            UpdateTime: "2021-12-09 13:50:00",
        }
    
    result, err := operation.GetDBTemplate("Data source name").Insert("table name", dbutil.StructToMapIgnore(&data, true))
  • Использование SQL для добавления, удаления, обновления и выборки

    • Добавление, удаление и обновление SQL может быть любым из этих действий:
    // С использованием структуры в качестве параметра
    res := ResultStruct{Id: 1, UserName: "TestUpdateByMap"}
    operation.GetDBTemplate("Data source name").ExecByMap("update xt_message_board set user_name = {user_name} where id = {id}", dbutil.StructToMap(&res))
    
    // Использование массивов в качестве параметров
    param := make([]interface{}, 2)
    param[0] = "TestUpdate"
    param[1] = 1
    
    operation.GetDBTemplate("Data source name").Exec("update xt_message_board set user_name = ? where id = ?", param)
    • Выборка Поддерживаются любые запросы SQL
    // Использование массивов в качестве параметров
    param := make([]interface{}, 1)
    param[0] = 1
    
    resultMap, err := operation.GetDBTemplate("Data source name").SelectList("select * from xt_message_board where id = ?", param)
    
    // С использованием структуры в качестве параметра
    res := ResultStruct{Id: 1}
    resultMap, err := operation.GetDBTemplate("Data source name").SelectListByMap("select * from xt_message_board where id < {id}", dbutil.StructToMap(&res))
    • Запросы с разбиением на страницы
    data := ResultStruct{
        UserName: "TestNoSqlInsert",
        UserEmail: "xxxxx@163.com",
    }
    
    param := entity.PageParam{CurrentPage: 1, PageSize: 20, Params: dbutil.StructToMap(&data)}
    result, err := operation.GetDBTemplate("Data source name").SelectPage("select * from xt_message_board where user_name = {user_name} and user_email = {user_email}", param)
    • Управление транзакциями
    id, err := db.Transaction()
    if err != nil {
        t.Error("TestUpdateTx: " + err.Error())
        return
    }
    
    res := ResultStruct{Id: 1, UserName: "TestUpdateTx"}
    
    ss, err := operation.GetDBTemplateTx(id, "Data source name").ExecByTxMap("update xt_message_board set user_name = {user_name} where id = {id}", dbutil.StructToMap(&res))
    ``` ```

if err != nil { db.Rollback(id) t.Error("Data source name: " + err.Error()) return } log.Println(ss.RowsAffected())

db.Commmit(id)


## License

Beerus имеет лицензию MIT.

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

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

Введение

Beerus-DB — это фреймворк для работы с базами данных, который на данный момент поддерживает только Mysql. Используйте go-sql-driver/mysql для подключения к базе данных и выполнения основных операций. На основе этого можно сделать множество расширений, таких как... Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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