generate

package module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

README

generate

介绍

go代码生成器、目标适配:

  1. Mysql、Postgresql与Gorm、Xorm
  2. 一键生成model、service、handle代码
  3. 生成Java Mybatis-Plus风格API
安装教程

go get github.com/yunboom/generate

使用说明
  1. 生成结构体
package main

import (
	"fmt"
	"github.com/yunboom/generate"
	"github.com/yunboom/generate/config"
	"github.com/yunboom/generate/datebase"
	"github.com/yunboom/generate/datebase/driver"
)

const MysqlDSN = "root:root@(localhost:3306)/test?charset=utf8mb4&parseTime=True&loc=Local"
const PostgresDSN = "host=localhost port=54321 user=postgres dbname=clubdb1 password=root sslmode=disable"

func main() {
   gen := generate.New(config.New(
      config.WithModelPath("/Users/zonst/Downloads/"), //model 代码输出路径
      config.WithDaoPath("/Users/zonst/Downloads/"),   //dao 代码输出路径
   ))
   gen.UseDB(datebase.OpenGorm(driver.Postgres, PostgresDSN)) //使用gorm mysql
   gen.BindModel(gen.GenModelAs("users", "User"))             //绑定模型
   if err := gen.Execute(); err != nil {
      fmt.Println(err)
   }
}
  1. CRUD接口

    1. Insert
    // 插入一条记录
    db, _ = gorm.Open(postgres.Open(PostgresDSN))
    dao = NewUserDao(db.Debug())
    err := dao.Insert(&User{
    		Username: "123",
    		Password: "123",
    		Nick:     "张三",
    	})
    
    1. Update
    //UPDATE "users" SET "password"='321' WHERE id = 123
    err := dao.UpdateById(123, &User{Password: "321"})
    
    1. Delete
       //DELETE FROM "users" WHERE id = 3
       err := dao.DeleteById(3)
    
       //DELETE FROM "users" WHERE id in (5,6,7)
       err := dao.DeleteBatchIds(5, 6, 7)
    
       //DELETE FROM "users" WHERE "users"."username" = '123' AND id > 10
       wrapper := dao.QueryWrapper(&User{Username: "123"}).Where("id > ?", 10)
       err := dao.DeleteByWrapper(wrapper)
    
    1. Select
    //根据id查询
    user, err := dao.SelectById(1)
    
    //查询所有 SELECT * FROM "users"
    wrapper := dao.QueryWrapper(nil)
    userList, err := dao.SelectList(wrapper)
    
    //SELECT * FROM "users" WHERE "users"."username" = '123' AND id > 0 ORDER BY id desc
    wrapper := dao.QueryWrapper(&User{Username: "123"}).Where("id > ?", 0).OrderBy("id desc")
    userList, err := dao.SelectList(wrapper)
    
    //SELECT * FROM "users" WHERE "users"."username" = '123' AND id > 10 ORDER BY "users"."id" LIMIT 1
    wrapper := dao.QueryWrapper(&User{Username: "123"}).Where("id > ?", 10)
    user, err := dao.SelectOne(wrapper)
    
    //SELECT count(*) FROM "users"
    count, err := dao.SelectCount(dao.QueryWrapper(nil))
    
    //SELECT * FROM "users" LIMIT 2 OFFSET 1
    userList, err := dao.SelectPage(2, 1, dao.QueryWrapper(nil))
    
    //[map[Id:1 Nick:张三 Password:123 Username:123] map[Id:2 Nick:李四 Password:456 Username:456]]
    userMaps, err := dao.SelectMaps(dao.QueryWrapper(nil))
    
    

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Executor added in v0.0.2

type Executor struct {
	*config.Config
	Data map[string]*check.BaseStruct
}

func (*Executor) Execute added in v0.0.2

func (exec *Executor) Execute() (err error)

type Generator

type Generator struct {
	Err error
	// contains filtered or unexported fields
}

func New

func New(config *config.Config) *Generator

func (*Generator) BindModel

func (gen *Generator) BindModel(base *check.BaseStruct)

func (*Generator) Execute

func (gen *Generator) Execute() error

func (*Generator) GenModel

func (gen *Generator) GenModel(tableName string) *check.BaseStruct

func (*Generator) GenModelAs

func (gen *Generator) GenModelAs(tableName, modelName string) *check.BaseStruct

func (*Generator) UseDB

func (gen *Generator) UseDB(db datebase.Database, err error)

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL