Mybatis for golang - SQL mapper ORM framework

SQL mapper ORM framework for Golang

Go Report Card Build Status GoDoc Coverage Status codecov

Image text

Please read the documentation website carefully when using the tutorial. DOC

Powerful Features

  • High Performance, can reach 751020 Qps/s, and the total time consumed is 0.14s (test environment returns simulated SQL data, concurrently 1000, total 100000, 6-core 16GB win10)
  • Painless migration from Java to go,Compatible with most Java(Mybatis3,Mybatis Plus) ,Painless migration of XML SQL files from Java Spring Mybatis to Go language(Modify only the javaType of resultMap to specify go language type for langType)
  • Declarative transaction/AOP transaction/transaction BehaviorOnly one line Tag is needed to define AOP transactions and transaction propagation behavior
  • Extensible Log InterfaceAsynchronous message queue day, SQL log in framework uses cached channel to realize asynchronous message queue logging
  • dynamic sql,contains 15 utilities Features select * from biz_activity where delete_flag=1 order by create_time desc `)">
    var xmlBytes = []byte(`
    xml version="1.0" encoding="UTF-8"?>
    DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "https://raw.githubusercontent.com/timandy/GoMybatis/master/mybatis-3-mapper.dtd">
    <mapper>
        <select id="SelectAll">
            select * from biz_activity where delete_flag=1 order by create_time desc
        select>
    mapper>
    `)
    import (
    	"fmt"
    	_ "github.com/go-sql-driver/mysql" //Select the required database-driven imports
    	"github.com/timandy/GoMybatis"
    )
    type ExampleActivityMapperImpl struct {
         SelectAll  func() ([]Activity, error)
    }
    
    func main() {
        var engine = GoMybatis.GoMybatisEngine{}.New()
    	//Mysql link format user name: password @ (database link address: port)/database name, such as root: 123456 @(***.com: 3306)/test
    	err := engine.Open("mysql", "*?charset=utf8&parseTime=True&loc=Local")
    	if err != nil {
    	   panic(err)
    	}
    	var exampleActivityMapperImpl ExampleActivityMapperImpl
    	
    	//Loading XML implementation logic to ExampleActivity Mapper Impl
    	engine.WriteMapperPtr(&exampleActivityMapperImpl, xmlBytes)
    
    	//use mapper
    	result, err := exampleActivityMapperImpl.SelectAll(&result)
            if err != nil {
    	   panic(err)
    	}
    	fmt.Println(result)
    }

    Features: Template tag CRUD simplification (must rely on a resultMap tag)

    ">
    xml version="1.0" encoding="UTF-8"?>
    DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "https://raw.githubusercontent.com/timandy/GoMybatis/master/mybatis-3-mapper.dtd">
    <mapper>
        
        
        
        
        <resultMap id="BaseResultMap" tables="biz_activity">
            <id column="id" langType="string"/>
            <result column="name" langType="string"/>
            <result column="pc_link" langType="string"/>
            <result column="h5_link" langType="string"/>
            <result column="remark" langType="string"/>
            <result column="sort" langType="int"/>
            <result column="status" langType="status"/>
            <result column="version" langType="int"
                    version_enable="true"/>
            <result column="create_time" langType="time.Time"/>
            <result column="delete_flag" langType="int"
                    logic_enable="true"
                    logic_undelete="1"
                    logic_deleted="0"/>
        resultMap>
    
        
    
        
        <insertTemplate/>
        
        <selectTemplate wheres="name?name = #{name}"/>
        
        <updateTemplate sets="name?name = #{name},remark?remark=#{remark}" wheres="id?id = #{id}"/>
        
        <deleteTemplate wheres="name?name = #{name}"/>
    mapper>    

    XML corresponds to the Mapper structure method defined below

    type Activity struct {
    	Id         string    `json:"id"`
    	Uuid       string    `json:"uuid"`
    	Name       string    `json:"name"`
    	PcLink     string    `json:"pcLink"`
    	H5Link     string    `json:"h5Link"`
    	Remark     string    `json:"remark"`
    	Version    int       `json:"version"`
    	CreateTime time.Time `json:"createTime"`
    	DeleteFlag int       `json:"deleteFlag"`
    }
    type ExampleActivityMapper struct {
    	SelectTemplate      func(name string) ([]Activity, error) `args:"name"`
    	InsertTemplate      func(arg Activity) (int64, error)
    	InsertTemplateBatch func(args []Activity) (int64, error) `args:"args"`
    	UpdateTemplate      func(arg Activity) (int64, error)    `args:"name"`
    	DeleteTemplate      func(name string) (int64, error)     `args:"name"`
    }

    Features:Dynamic Data Source

            //To add a second MySQL database, change Mysql Uri to your second data source link
        var engine = GoMybatis.GoMybatisEngine{}.New()
    	engine.Open("mysql", MysqlUri)//添加第二个mysql数据库,请把MysqlUri改成你的第二个数据源链接
    	var router = GoMybatis.GoMybatisDataSourceRouter{}.New(func(mapperName string) *string {
    		//根据包名路由指向数据源
    		if strings.Contains(mapperName, "example.") {
    			var url = MysqlUri//第二个mysql数据库,请把MysqlUri改成你的第二个数据源链接
    			fmt.Println(url)
    			return &url
    		}
    		return nil
    	})
    	engine.SetDataSourceRouter(&router)

    Features:Custom log output

    	engine.SetLogEnable(true)
    	engine.SetLog(&GoMybatis.LogStandard{
    		PrintlnFunc: func(messages []byte) {
    		  //do someting save messages
    		},
    	})

    Features:Asynchronous log interface (customizable log output)

    Image text

    Features:Transaction Propagation Processor (Nested Transactions)

    Transaction type Explain
    PROPAGATION_REQUIRED Represents that if the current transaction exists, the current transaction is supported. Otherwise, a new transaction will be started. Default transaction type.
    PROPAGATION_SUPPORTS Represents that if the current transaction exists, the current transaction is supported, and if there is no transaction at present, it is executed in a non-transactional manner.
    PROPAGATION_MANDATORY Represents that if the current transaction exists, the current transaction is supported, and if no transaction exists, the transaction nesting error is returned.
    PROPAGATION_REQUIRES_NEW Represents that a new Session opens a new transaction and suspends the current transaction if it currently exists.
    PROPAGATION_NOT_SUPPORTED Represents that an operation is performed in a non-transactional manner. If a transaction exists, a new Session is created to perform the operation in a non-transactional manner, suspending the current transaction.
    PROPAGATION_NEVER Represents that an operation is executed in a non-transactional manner and returns a transaction nesting error if a transaction currently exists.
    PROPAGATION_NESTED Represents that if the current transaction exists, it will be executed within the nested transaction. If the nested transaction rolls back, it will only roll back within the nested transaction and will not affect the current transaction. If there is no transaction at the moment, do something similar to PROPAGATION_REQUIRED.
    PROPAGATION_NOT_REQUIRED Represents that if there is currently no transaction, a new transaction will be created, otherwise an error will be returned.
    //Nested transaction services
    type TestService struct {
       exampleActivityMapper *ExampleActivityMapper //The service contains a mapper operation database similar to Java spring MVC
       UpdateName   func(id string, name string) error   `tx:"" rollback:"error"`
       UpdateRemark func(id string, remark string) error `tx:"" rollback:"error"`
    }
    func main()  {
       var testService TestService
       testService = TestService{
       	exampleActivityMapper: &exampleActivityMapper,
       	UpdateRemark: func(id string, remark string) error {
       		testService.exampleActivityMapper.SelectByIds([]string{id})
       		panic(errors.New("Business exceptions")) // panic Triggered transaction rollback strategy
       		return nil                   // rollback:"error" A transaction rollback policy is triggered if the error type is returned and is not nil
       	},
       	UpdateName: func(id string, name string) error {
       		testService.exampleActivityMapper.SelectByIds([]string{id})
       		return nil
       	},
       }
       GoMybatis.AopProxyService(&testService, &engine)//Func must use AOP proxy service
       testService.UpdateRemark("1","remark")
    }

    Features:XML/Mapper Generator - Generate * mapper. XML from struct structure

      //step1 To define your database model, you must include JSON annotations (default database fields), gm:"" annotations specifying whether the value is id, version optimistic locks, and logic logic soft deletion.
      type UserAddress struct {
    	Id            string `json:"id" gm:"id"`
    	UserId        string `json:"user_id"`
    	RealName      string `json:"real_name"`
    	Phone         string `json:"phone"`
    	AddressDetail string `json:"address_detail"`
    
    	Version    int       `json:"version" gm:"version"`
    	CreateTime time.Time `json:"create_time"`
    	DeleteFlag int       `json:"delete_flag" gm:"logic"`
    }
    • Step 2: Create an Xml CreateTool. go in the main directory of your project as follows
    func main() {
    	var bean = UserAddress{} //Here's just an example, which should be replaced by your own database model
    	GoMybatis.OutPutXml(reflect.TypeOf(bean).Name()+"Mapper.xml", GoMybatis.CreateXml("biz_"+GoMybatis.StructToSnakeString(bean), bean))
    }
    
    • Third, execute the command to get the UserAddressMapper. XML file in the current directory
    go run XmlCreateTool.go
    • The following is the content of the automatically generated XML file
    ">
    xml version="1.0" encoding="UTF-8"?>
    DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "https://raw.githubusercontent.com/timandy/GoMybatis/master/mybatis-3-mapper.dtd">
    <mapper>
        
        
        
        
        <resultMap id="BaseResultMap" tables="biz_user_address">
        <id column="id" property="id"/>
    	<result column="id" property="id" langType="string"   />
    	<result column="user_id" property="user_id" langType="string"   />
    	<result column="real_name" property="real_name" langType="string"   />
    	<result column="phone" property="phone" langType="string"   />
    	<result column="address_detail" property="address_detail" langType="string"   />
    	<result column="version" property="version" langType="int" version_enable="true"  />
    	<result column="create_time" property="create_time" langType="Time"   />
    	<result column="delete_flag" property="delete_flag" langType="int"  logic_enable="true" logic_undelete="1" logic_deleted="0" />
        resultMap>
    mapper>

    Components (RPC, JSONRPC, Consul) - With GoMybatis

    Please pay attention to the version in time, upgrade the version in time (new features, bug fix). For projects using GoMybatis, please leave your project name + contact information in Issues.

    Welcome to Star or Wechat Payment Sponsorship at the top right corner~

    Image text

Owner
Tim
Coding change the world!
Tim
Comments
  • Bump github.com/stretchr/testify from 1.7.2 to 1.7.4

    Bump github.com/stretchr/testify from 1.7.2 to 1.7.4

    Bumps github.com/stretchr/testify from 1.7.2 to 1.7.4.

    Commits
    • 48391ba Fix panic in AssertExpectations for mocks without expectations (#1207)
    • 840cb80 arrays value types in a zero-initialized state are considered empty (#1126)
    • 07dc7ee Bump actions/setup-go from 3.1.0 to 3.2.0 (#1191)
    • c33fc8d Bump actions/checkout from 2 to 3 (#1163)
    • 3c33e07 Added Go 1.18.1 as a build/supported version (#1182)
    • e2b56b3 Bump github.com/stretchr/objx from 0.1.0 to 0.4.0
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/timandy/routine from 1.0.8 to 1.0.9

    Bump github.com/timandy/routine from 1.0.8 to 1.0.9

    Bumps github.com/timandy/routine from 1.0.8 to 1.0.9.

    Release notes

    Sourced from github.com/timandy/routine's releases.

    Version 1.0.9

    Release notes

    Features

    • Support arch 386 & amd64 on freebsd and arch ppc64 & s390x on linux.
    • Support Cancel() and GetWithTimeout() methods for type Future.
    • Support checking whether the tasks created by GoWait(CancelRunnable) and GoWaitResult(CancelCallable) methods are canceled.

    Changes

    • Fix spell error of type Future.
    • Rename type Any to any.

    Links

    Changelog

    Sourced from github.com/timandy/routine's changelog.

    v1.0.9 Release notes

    Features

    • Support arch 386 & amd64 on freebsd and arch ppc64 & s390x on linux.
    • Support Cancel() and GetWithTimeout() methods for type Future.
    • Support checking whether the tasks created by GoWait(CancelRunnable) and GoWaitResult(CancelCallable) methods are canceled.

    Changes

    • Fix spell error of type Future.
    • Rename type Any to any.

    Links


    Commits
    • acab0b7 Version 1.0.9
    • 252f135 Modify change log
    • 2e6bf0f Modify readme file
    • fba1e8f Rename type Any to any
    • 2727996 Support Cancel(...) and GetWithTimeout(...) methods for Future
    • 6c6f27b Rename variable fea to fut
    • 4a6d21e Rename Feature to Future because of spell error
    • 3a3eb9a Modify readme file
    • 35ac921 Enable github actions for arch 386/amd64 on freebsd and arch ppc64/s390x on l...
    • 60f6f0b Support arch 386/amd64 on freebsd and arch ppc64/s390x on linux
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.5 to 1.8.0

    Bump github.com/stretchr/testify from 1.7.5 to 1.8.0

    Bumps github.com/stretchr/testify from 1.7.5 to 1.8.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.2 to 1.7.5

    Bump github.com/stretchr/testify from 1.7.2 to 1.7.5

    Bumps github.com/stretchr/testify from 1.7.2 to 1.7.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.0 to 1.7.2

    Bump github.com/stretchr/testify from 1.7.0 to 1.7.2

    Bumps github.com/stretchr/testify from 1.7.0 to 1.7.2.

    Commits
    • 41453c0 Update gopkg.in/yaml.v3
    • 285adcc Update go versions in build matrix
    • 6e7fab4 Bump actions/setup-go from 2 to 3.1.0
    • 106ec21 use RWMutex
    • a409ccf fix data race in the suit
    • 3586478 assert: fix typo
    • 7797738 Update versions supported to include go 1.16
    • 083ff1c Fixed didPanic to now detect panic(nil).
    • 1e36bfe Use cross Go version compatible build tag syntax
    • e798dc2 Add docs on 1.17 build tags
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/go-sql-driver/mysql from 1.6.0 to 1.7.0

    Bump github.com/go-sql-driver/mysql from 1.6.0 to 1.7.0

    Bumps github.com/go-sql-driver/mysql from 1.6.0 to 1.7.0.

    Release notes

    Sourced from github.com/go-sql-driver/mysql's releases.

    Version 1.7

    Changes:

    • Drop support of Go 1.12 (#1211)
    • Refactoring (*textRows).readRow in a more clear way (#1230)
    • util: Reduce boundary check in escape functions. (#1316)
    • enhancement for mysqlConn handleAuthResult (#1250)

    New Features:

    • support Is comparison on MySQLError (#1210)
    • return unsigned in database type name when necessary (#1238)
    • Add API to express like a --ssl-mode=PREFERRED MySQL client (#1370)
    • Add SQLState to MySQLError (#1321)

    Bugfixes:

    • Fix parsing 0 year. (#1257)
    Changelog

    Sourced from github.com/go-sql-driver/mysql's changelog.

    Version 1.7 (2022-11-29)

    Changes:

    • Drop support of Go 1.12 (#1211)
    • Refactoring (*textRows).readRow in a more clear way (#1230)
    • util: Reduce boundary check in escape functions. (#1316)
    • enhancement for mysqlConn handleAuthResult (#1250)

    New Features:

    • support Is comparison on MySQLError (#1210)
    • return unsigned in database type name when necessary (#1238)
    • Add API to express like a --ssl-mode=PREFERRED MySQL client (#1370)
    • Add SQLState to MySQLError (#1321)

    Bugfixes:

    • Fix parsing 0 year. (#1257)

    Version 1.6 (2021-04-01)

    Changes:

    • Migrate the CI service from travis-ci to GitHub Actions (#1176, #1183, #1190)
    • NullTime is deprecated (#960, #1144)
    • Reduce allocations when building SET command (#1111)
    • Performance improvement for time formatting (#1118)
    • Performance improvement for time parsing (#1098, #1113)

    New Features:

    • Implement driver.Validator interface (#1106, #1174)
    • Support returning uint64 from Valuer in ConvertValue (#1143)
    • Add json.RawMessage for converter and prepared statement (#1059)
    • Interpolate json.RawMessage as string (#1058)
    • Implements CheckNamedValue (#1090)

    Bugfixes:

    • Stop rounding times (#1121, #1172)
    • Put zero filler into the SSL handshake packet (#1066)
    • Fix checking cancelled connections back into the connection pool (#1095)
    • Fix remove last 0 byte for mysql_old_password when password is empty (#1133)

    Version 1.5 (2020-01-07)

    Changes:

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/timandy/routine from 1.0.9 to 1.1.0

    Bump github.com/timandy/routine from 1.0.9 to 1.1.0

    Bumps github.com/timandy/routine from 1.0.9 to 1.1.0.

    Release notes

    Sourced from github.com/timandy/routine's releases.

    Version 1.1.0

    Release notes

    Features

    • Support more arch loong64, mips, mipsle, mips64, mips64le, ppc64le, riscv64, wasm.

    Changes

    • Upgrade dependencies to the latest version.
    • Modify continuous integration script to support go1.19.

    Links

    Changelog

    Sourced from github.com/timandy/routine's changelog.

    v1.1.0 Release notes

    Features

    • Support more arch loong64, mips, mipsle, mips64, mips64le, ppc64le, riscv64, wasm.

    Changes

    • Upgrade dependencies to the latest version.
    • Modify continuous integration script to support go1.19.

    Links


    Commits
    • 83536ee Version 1.1.0
    • eb73253 Modify change log
    • 647a64d Modify readme file
    • 6e1c0b4 Modify continuous integration script to support more arch
    • b7e8a67 Support more arch with gohack library
    • e5b4772 Rename asm files
    • ad737c0 Modify testcase to support more arch
    • 5ee54d9 Remove unused asm file
    • 78d0c25 Merge variable declaration in testcase
    • cccc437 Remove the unused field value of object
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.8.0 to 1.8.1

    Bump github.com/stretchr/testify from 1.8.0 to 1.8.1

    Bumps github.com/stretchr/testify from 1.8.0 to 1.8.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Go-mysql-orm - Golang mysql orm,dedicated to easy use of mysql

golang mysql orm 个人学习项目, 一个易于使用的mysql-orm mapping struct to mysql table golang结构

Jan 7, 2023
Using-orm-with-db - Trying to use ORM to work with PostgreSQL
Using-orm-with-db - Trying to use ORM to work with PostgreSQL

Using ORM with db This repo contains the training (rough) code, and possibly not

Jul 31, 2022
Golang struct-to-table database mapper

Structable: Struct-Table Mapping for Go Warning: This is the Structable 4 development branch. For a stable release, use version 3.1.0. Structable deve

Dec 27, 2022
Golang Object Graph Mapper for Neo4j

GoGM Golang Object Graph Mapper v2 go get -u github.com/mindstand/gogm/v2 Features Struct Mapping through the gogm struct decorator Full support for

Dec 28, 2022
100% type-safe ORM for Go (Golang) with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support. GORM under the hood.

go-queryset 100% type-safe ORM for Go (Golang) with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support. GORM under the hood. Contents

Dec 30, 2022
beedb is a go ORM,support database/sql interface,pq/mysql/sqlite

Beedb ❗ IMPORTANT: Beedb is being deprecated in favor of Beego.orm ❗ Beedb is an ORM for Go. It lets you map Go structs to tables in a database. It's

Nov 25, 2022
A simple wrapper around sql.DB to help with structs. Not quite an ORM.

go-modeldb A simple wrapper around sql.DB to help with structs. Not quite an ORM. Philosophy: Don't make an ORM Example: // Setup require "modeldb" db

Nov 16, 2019
Simple and performant ORM for sql.DB

Simple and performant ORM for sql.DB Main features are: Works with PostgreSQL, MySQL, SQLite. Selecting into a map, struct, slice of maps/structs/vars

Jan 4, 2023
bur: An ORM framework implementation in Go.

bur An ORM framework implementation in Go(based on sg). Quickstart package main import ( "database/sql" "fmt" . "github.com/go-the-way/bur" "

Jan 13, 2022
Go tool for generating sql scanners, sql statements and other helper functions

sqlgen generates SQL statements and database helper functions from your Go structs. It can be used in place of a simple ORM or hand-written SQL. See t

Nov 24, 2022
An orm library support nGQL for Golang

norm An ORM library support nGQL for Golang. Overview Build insert nGQL by struct / map (Support vertex, edge). Parse Nebula execute result to struct

Dec 1, 2022
golang orm

korm golang orm, 一个简单易用的orm, 支持嵌套事务 安装 go get github.com/wdaglb/korm go get github.com/go-sql-driver/mysql 支持数据库 mysql https://github.com/go-sql-driv

Oct 31, 2022
Golang ORM with focus on PostgreSQL features and performance

go-pg is in a maintenance mode and only critical issues are addressed. New development happens in Bun repo which offers similar functionality but works with PostgreSQL, MySQL, and SQLite.

Jan 8, 2023
The fantastic ORM library for Golang, aims to be developer friendly

GORM The fantastic ORM library for Golang, aims to be developer friendly. Overview Full-Featured ORM Associations (Has One, Has Many, Belongs To, Many

Nov 11, 2021
Golang mysql orm, a personal learning project, dedicated to easy use of mysql

golang mysql orm 个人学习项目, 一个易于使用的mysql-orm mapping struct to mysql table golang结构

Dec 30, 2021
ORM-ish library for Go

We've moved! gorp is now officially maintained at: https://github.com/go-gorp/gorp This fork was created when the project was moved, and is provided f

Aug 23, 2022
Simple Go ORM for Google/Firebase Cloud Firestore

go-firestorm Go ORM (Object-relational mapping) for Google Cloud Firestore. Goals Easy to use Non intrusive Non exclusive Fast Features Basic CRUD ope

Dec 1, 2022
Database agnostic ORM for Go

If you are looking for something more lightweight and flexible, have a look at jet For questions, suggestions and general topics visit the group. Inde

Nov 28, 2022
QBS stands for Query By Struct. A Go ORM.

Qbs Qbs stands for Query By Struct. A Go ORM. 中文版 README ChangeLog 2013.03.14: index name has changed to {table name}_{column name}. For existing appl

Sep 9, 2022