Maison > développement back-end > Golang > Explication détaillée de la façon dont xorm génère automatiquement des modèles

Explication détaillée de la façon dont xorm génère automatiquement des modèles

藏色散人
Libérer: 2021-11-01 16:11:36
avant
2653 Les gens l'ont consulté

Cet article est introduit par la colonne tutoriel de go language sur la façon de générer automatiquement le mode avec xorm. J'espère qu'il sera utile aux amis qui en ont besoin !

xorm génère automatiquement des fichiers de modèle

Entrez le répertoire racine du projet

luwei@luweideMacBook-Pro-2 go-simple-task % pwd/Users/myself/Golang/common_project/src/go-simple-task
luwei@luweideMacBook-Pro-2 go-simple-task % ls
Dockerfile      go-simple-task  go.mod          go.sum          logic           logs            main.go         model           models          overall         serv            templates       tool
luwei@luweideMacBook-Pro-2 go-simple-task %
Copier après la connexion

S'il n'y a pas de pilote go-sql-driver/mysql, installez-le d'abord

go get -u github.com/go-sql-driver/mysql
Copier après la connexion

Installez xorm, sous la ligne de commande cmd

go get github.com/go-xorm/xorm
Copier après la connexion

Ensuite, installez l'outil de commande xorm cmd

go get github.com/go-xorm/cmd/xorm
Copier après la connexion

Installez la gestion des erreurs cmd

luwei@luweideMacBook-Pro-2 go-simple-task % go get github.com/go-xorm/cmd/xorm
# github.com/go-xorm/cmd/xorm
../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/dump.go:45:26: cannot use "github.com/go-xorm/core".LOG_UNKNOWN (type "github.com/go-xorm/core".LogLevel) as type "xorm.io/core".LogLevel in argument to engine.Logger().SetLevel
../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/reverse.go:246:34: cannot use tables (type []*"xorm.io/core".Table) as type []*"github.com/go-xorm/core".Table in argument to langTmpl.GenImports
../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/reverse.go:254:18: cannot use table (type *"xorm.io/core".Table) as type *"github.com/go-xorm/core".Table in append
../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/reverse.go:291:26: cannot use table (type *"xorm.io/core".Table) as type *"github.com/go-xorm/core".Table in slice literal
../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/shell.go:60:26: cannot use "github.com/go-xorm/core".LOG_UNKNOWN (type "github.com/go-xorm/core".LogLevel) as type "xorm.io/core".LogLevel in argument to engine.Logger().SetLevel
../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/source.go:45:26: cannot use "github.com/go-xorm/core".LOG_UNKNOWN (type "github.com/go-xorm/core".LogLevel) as type "xorm.io/core".LogLevel in argument to engine.Logger().SetLevel
luwei@luweideMacBook-Pro-2 go-simple-task %
Copier après la connexion

sortez du répertoire du projet pour l'exécuter, puis revenez en arrière une fois terminé

luwei@luweideMacBook-Pro-2 go-simple-task % cd ../luwei@luweideMacBook-Pro-2 src % go get github.com/go-xorm/cmd/xorm
luwei@luweideMacBook-Pro-2 src %
Copier après la connexion

Créez les modèles/goxorm dossier dans le répertoire du projet

  • ce fichier Créez des fichiers de configuration et struct.go.tpl
  • Le contenu du modèle peut être modifié selon vos propres besoins
  • Le contenu de la configuration est le suivant
    lang=go
    genJson=1prefix=
    Copier après la connexion
  • Contenu de struct.go.tpl. est la suivante
package {{.Models}}{{$ilen := len .Imports}}{{if gt $ilen 0}}import (
    {{range .Imports}}"{{.}}"{{end}}){{end}}{{range .Tables}}type {{Mapper .Name}} struct {{{$table := .}}{{range .ColumnsSeq}}{{$col := $table.GetColumn .}} {{Mapper $col.Name}}    {{Type $col}} {{Tag $table $col}}{{end}}}{{end}}
Copier après la connexion
  • Enfin, exécutez la commande

    Le programme sera dans le dossier Générer des modèles dans le répertoire courant et générera des fichiers go dans le dossier des modèles

    xorm reverse mysql root:root@/fox?charset=utf8 templates/goxorm
    Copier après la connexion

Erreur d'exécution

luwei@luweideMacBook-Pro-2 go-simple-task % xorm reverse mysql root:123456@/bubble?charset=utf8 templates/goxorm
zsh: no matches found: root:123456@/bubble?charset=utf8
Copier après la connexion
  • Solution
    vim ~/.zshrc
    Copier après la connexion
  • Ajoutez :
    setopt no_nomatch
    Copier après la connexion
  • à ~/.zshrc pour vérifier
    luwei@luweideMacBook-Pro-2 go-simple-task % cat ~/.zshrc                                              
    source ~/.bash_profileexport GOPROXY=https://goproxy.io,direct
    setopt no_nomatch
    Copier après la connexion
  • Enfin, exécutez
    source ~/.zshrc
    Copier après la connexion

Exécutez à nouveau

luwei@luweideMacBook-Pro-2 go-simple-task % xorm reverse mysql root:123456@/bubble?charset=utf8 templates/goxorm
luwei@luweideMacBook-Pro-2 go-simple-task %
Copier après la connexion

Explication détaillée de la façon dont xorm génère automatiquement des modèles

Le reste consiste à attribuer le contenu des modèles au modèle correspondant à le modèle

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal