zoukankan      html  css  js  c++  java
  • MySQL一键生成实体文件的神器-ginbro

    Java转过来的同学对Mybatis的使用肯定不陌生,特别是对一堆表去生成相应的dao和entity的时候使用Mybatis generator所带来的感触,无比深刻。前面我们也讲过原生的数据库使用,讲过gorm的使用,无论是原生的还是第三方的数据库工具,都是需要我们手动的写struct和相应的CRUD的。今天说的这一款插件跟Java中的Mybatis generator一样,都是能帮我们简化表与实体对应关系。

    安装

    go get github.com/dejavuzhou/ginbro
    

    默认安装到了$GOPATH/bin中。

    使用

    接下来使用如下方式去连接你的数据库,以下拿MYSQL数据库示例:

    ginbro gen -u userName -p pwd -a "IP:port" -d databaseName -o "projectName"
    

    上述命令表示连接相应的数据库,用户名密码,对应的库名。最后是你想生成的工程名称。

    相应的参数:

    Flags:
       	  --config string          指定config文件名 (default is $HOME/ginbro.yaml)
      -h, --help                   help for ginbro
      -a, --mysqlAddr string       MySQL host:port (default "127.0.0.1:3306")
      -c, --mysqlCharset string    MySQL charset (default "utf8")
      -d, --mysqlDatabase string   MySQL database name
      -p, --mysqlPassword string   MySQL password (default "password")
      -u, --mysqlUser string       MySQL user name (default "root")
    

    工程默认生成到$GOPATH/src目录下。

    工程结构如下:

    demo
    	config/  配置文件所在目录
    	handlers/ 使用gin 生成对http接口
    	models/ 数据库表对应的实体
    	static/ 静态文件
    	swagger/ swagger
    	tasks/ 定时任务相关
    	main.go 启动类
    	config.toml 主配置文件
    

    运行main函数,控制台可以看到swagger的访问地址:

    http://127.0.0.1:5555/swagger

    访问swagger你能看到给你生成了一些表对应的CRUD的接口。

    ginbro 生成app代码包含功能简介

    • 生成完善RESTful APIs 应用

    • 自动生成完善的Swagger文档

    • 自动生成数据库表的模型和标注

    • 支持 JWT Authorization Bearer 身份验证 and JWT 中间件

    • 支持登陆防火墙

    • 支持静态资源替代nginx

    • 可配置的跨域cors中间件

    • 用户友好的自定义配置

    • 支持定时任务

    • 支持图形工具GUI

    • 内置高效率的内存数据库

    依赖框架

    go get github.com/gin-contrib/cors
    go get github.com/gin-contrib/static
    go get github.com/gin-gonic/autotls
    go get github.com/gin-gonic/gin
    go get github.com/sirupsen/logrus
    go get github.com/spf13/viper
    go get github.com/spf13/cobra
    go get github.com/go-redis/redis
    go get github.com/go-sql-driver/mysql
    go get github.com/jinzhu/gorm
    go get github.com/dgrijalva/jwt-go
    

    gin框架相关,viper配置文件解析框架,gorm数据库框架。

    开发计划

    已完成:

    • Auth 和 JWT middleware
    • 支持一键生产jwt密码验证
    • 分页总数做mem缓存
    • json不现实password等隐私字段
    • 生成友好的.gitignore
    • go test 单元测试
    • 完善go doc

    未完成:

    • 支持MongoDB数据库
    • 更具体数据映射关联模型
    • 支持PostgreSQL数据库
    • 支持生成gRPC服务
    • 更详细的gorm tag信息
    • swaggerDoc参数说明继续优化
    • 支持其他语言框架(php-laravel/lumne ,python flask …)
    • sqlite

    注意

    • mysql表中没有id/ID/Id/iD字段将不会生成路由和模型
    • json字段 在update/create的时候 必须使可以序列号的json字符串(eg0:"{}" eg1:"[]"),否则mysql会报错
  • 相关阅读:
    引用kernel32.dll中的API来进行串口通讯
    vs2017 项目生成时不产生xml文件的方法
    session的处理机制
    用户未登录或Session超时时重定向到登录页,不那么简单
    VS C# debug文件夹中各文件的作用
    Tomcat(免安装版)的安装与配置【转】
    关于C#关闭窗体后,依旧有后台进程在运行的解决方法
    DatakeyNames和datakey
    ASP.NET页面生命周期描述
    比较C#中几种常见的复制字节数组方法的效率
  • 原文地址:https://www.cnblogs.com/rickiyang/p/11074160.html
Copyright © 2011-2022 走看看