Skip to content

Latest commit

 

History

History
151 lines (121 loc) · 7.01 KB

README_en.md

File metadata and controls

151 lines (121 loc) · 7.01 KB

GoRose-ORM-Pro A Free Go MySQL ORM

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
  • SubQuery: Highly security parameterized query under prepared condition
  • SubWhere: Full Prepared condition parameterized where sql searching
  • Fixed original framework's Executor might have unintentionally error or deleted data
  • Oracle support "Replace()" function like MyBatis when a good performance

Purpose of this project

  • Fee: Totally Free but only need your star
  • 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
  • Fix Oracle unable to connect & use problem, Fixed arm MacM1 chip's compatibility with Oracle

Docs and Demos(Wiki)

Notice:'*' means Only Support In GorosePro

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

Initializing

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