2023-08-09 13:23:17 +08:00
2022-07-04 12:41:50 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2022-06-17 14:57:16 +08:00
2021-09-26 11:56:27 +08:00
2023-08-09 13:23:17 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2023-08-09 13:23:17 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2023-08-09 13:23:17 +08:00
2023-02-28 20:51:13 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00
2021-09-26 11:56:27 +08:00

GoRose-ORM-Pro for Commercial

GoDoc Go Report Card GitHub release Gitter GitHub GitHub All Releases 94537310 gorose-orm

 ██████╗  ██████╗ ██████╗  ██████╗ ███████╗███████╗    ██████╗ ██████╗  ██████╗ 
██╔════╝ ██╔═══██╗██╔══██╗██╔═══██╗██╔════╝██╔════╝    ██╔══██╗██╔══██╗██╔═══██╗
██║  ███╗██║   ██║██████╔╝██║   ██║███████╗█████╗█████╗██████╔╝██████╔╝██║   ██║
██║   ██║██║   ██║██╔══██╗██║   ██║╚════██║██╔══╝╚════╝██╔═══╝ ██╔══██╗██║   ██║
╚██████╔╝╚██████╔╝██║  ██║╚██████╔╝███████║███████╗    ██║     ██║  ██║╚██████╔╝
 ╚═════╝  ╚═════╝ ╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝    ╚═╝     ╚═╝  ╚═╝ ╚═════╝ 

What the difference between this than the OriginalVer.

  • All functionality was updated to the latest version from the original version
  • Intuition Coding
  • Nested Transactions functionality
  • Simple update without any hesitation ,fully compatible with earlier versions
  • Fully support MySQL and MariaDB
  • Document support as detail as possible
  • 100% compatible with original function
  • Dealing PR & Bug fix much more sooner
  • All function has been tested and verified by commercial projects
  • Support complexity and/or sql in Where/OrWhere function
  • Paginator is now able to return the correct TOTAL number
  • Add CountGroup to return correct row count from sql sentence

Purpose of this project

  • Avoid the risk of the deprecation of the original ver
  • To solve the shortage during coding in the real life
  • Massive demos from the document, what ever the skill you are, you still able to find a solution here

Bug Fix

  • Dirty Read under concurrency circumstances(this will be only and easily triggered by using *db mode)
  • Paginate fixed, this function finally come back to life, new "Paginator" function make it much more easier to use
  • Fix the row_count(Total in Paginator mode) when using GroupBy function

Docs and DemosWiki

Introduction

Gorosepro is an upgrade and revision project of GOORM. It fixes bugs on the basis of supporting all functions of the original framework and is more suitable for complex commercial projects

Support decoupling development and intuitive programming, greatly reduce your trial and error cost, make small projects develop faster, and make large projects easier to maintain

Installation

  • Add in go.mod
require github.com/tobycroft/gorose-pro v1.2.5
  • go get
go get -u github.com/tobycroft/gorose-pro

Driver support

db.Table("table_name").Fields().Where().GroupBy().Having().OrderBy().Limit().Select()
db.Table(&ModelStruct).Data().Replace()
db.Table(&ModelStruct).Data().Insert()
db.Table(....).Data().Where().Update()
db.Table(....).Where().Delete()

Initializing

DSN mode

var conf gorose.Config
conf.Driver = "mysql"
conf.SetMaxIdleConns = 90
conf.SetMaxOpenConns = 300
conf.Prefix = ""
conf.Dsn = dsn()
return &conf

For more configurations, you can configure the cluster, or even configure different databases at the same time. In a cluster, the database will randomly select the database of the cluster to complete the corresponding read-write operations. The master is the write database, and the slave is the read database. You need to do master-slave replication. Here, you are only responsible for reading and writing

var config1 = gorose.Config{Dsn: 上面的dsn}
var config2 = gorose.Config{Dsn:  上面的dsn}
var config3 = gorose.Config{Dsn:  上面的dsn}
var config4 = gorose.Config{Dsn:  上面的dsn}
var configCluster = &gorose.ConfigCluster{
Master:  []gorose.Config{config3, config4},
Slave: []gorose.Config{config1, config2},
Driver: "sqlite3",
}

Initialize then use

var engin *gorose.Engin
engin, err := Open(config)
//engin, err := Open(configCluster)

if err != nil {
panic(err.Error())
}

Stargazers over time

Stargazers over time

Description
More powerful Golang ORM, just like Laraval or Thinkphp's eloquent ORM framework, Use easily but highly secure and performance enhanced in the core
Readme MIT 641 KiB
Languages
Go 100%