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的访问地址:
访问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会报错
MySQL一键生成实体文件的神器-ginbro的更多相关文章
- VS2015 +EF6 连接MYSQL数据库生成实体
VS2015 +EF6 连接MYSQL数据库生成实体 已安装软件:VS2015 XAMPP Control Panel(Mysql服务器) ...
- java 写 Excel(不生成实体文件,写为流的形式)
java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...
- Java写Excel(不生成实体文件,写为流的形式)
java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...
- Entity Framework Core一键生成实体命令
打开Vs中工具——Nug包管理器——程序包管理控制台 设置启动项目为存储实体模型的类库或控制台 Scaffold-DbContext "数据库连接字符串" Microsoft.E ...
- Oracle,Mysql,SQlserver生成实体映射之SqlSugarT4
官网:http://www.codeisbug.com 代码已上传GitHub:https://github.com/SeaLee02/sealee 本篇主要讲使用SqlSugar包进行Model生成 ...
- .Net Core 从MySql数据库生成实体类 Entity Model
1.首先建测试库 2.新建一个.Net Core 项目 3. cd到项目里面执行命令: dotnet add package MySql.Data.EntityFrameworkCore 4.继续执行 ...
- flask使用pymysql连接MySQL,生成xls文件并下载到本地
版本一:将MySQL数据写入到excel(xsl)文件并下载到默认文件夹(一般问电脑的下载文件夹里面),并显示特效到前端页面. flask框架连接MySQL,我们使用pymsql这个工具,如下操作: ...
- mysql无法生成log文件
做服务器主从配置时,发现/var/log/mysql下面一直没有log文件,明明配置文件/etc/mysql/mysql.conf.d/mysqld.cnf也开启log了. general_log_f ...
- 使用MATLAB一键制作mif文件
本文档主要讲解实现一个16384(2^14)点的14位正弦波数据mif格式文件的生成,使用此文件,我们便可以在FPGA上基于直接数字合成(DDS)原理生成标准的正弦波,即实现信号发生器的功能.关于DD ...
随机推荐
- hihoCoder 1308:搜索二·骑士问题(BFS预处理)
题目链接 题意 中文题意. 思路 对于每一个骑士,可以先预处理出到达地图上某个点的需要走的步数,然后最后暴力枚举地图上每一个点,让三个骑士走过的距离之和最小即可. #include <bits/ ...
- POJ 2955:Brackets(区间DP)
http://poj.org/problem?id=2955 题意:给出一串字符,求括号匹配的数最多是多少. 思路:区间DP. 对于每个枚举的区间边界,如果两边可以配对成括号,那么dp[i][j] = ...
- Spark 中的机器学习库及示例
MLlib 是 Spark 的机器学习库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模.MLlib 由一些通用的学习算法和工具组成,包括分类.回归.聚类.协同过滤.降维等,同时还包括底层的优化 ...
- 快速掌握mongoDB(二)——聚合管道和MapReduce
上一节简单介绍了一下mongoDB的增删改查操作,这一节将介绍其聚合操作.我们在使用mysql.sqlserver时经常会用到一些聚合函数,如sum/avg/max/min/count等,mongoD ...
- Centos6.5安装Redis3.2.8
1 - Redis安装 redis安装 在网上一搜一大把,但是还是在这里想要能够统一吧,所以这个安装步骤是在Centos6.5 Minimal 上安装redis3.4.8,本次安装是在root 用户下 ...
- UVA-10608 Friends 【并查集】
There is a town with N citizens. It is known that some pairs of people are friends. According to the ...
- 个人永久性免费-Excel催化剂功能第104波-批量选择多种类型的图形对象
在Excel的日常操作过程中,选择绝对是一个高频的操作,之前开发过一些快速选择单元格区域的辅助功能,除了单元格区域,Excel强大之处在于,类似PhotoShop那般可以存放多种图形,并且有图层先后顺 ...
- Excel催化剂开源第41波-网抓网络采集类库及工具分享
在VBA开发网抓程序中,会用到xmlhttp/winHttp.winHttprequest.5.1等组件,当时笔者也是这样进入了网抓领域的,这些都是非常过时的东西,在.Net的开发中,有大量的更好用的 ...
- [leetcode] 264. Ugly Number II (medium)
263. Ugly Number的子母题 题目要求输出从1开始数,第n个ugly number是什么并且输出. 一开始想着1遍历到n直接判断,超时了. class Solution { public: ...
- Android入门简介
GeoQuiz应用是由一个activity和一个布局(layout)组成. activity是Android SDK中Activity类的一个具体实例,负责管理用户与信息屏的交互. 布局定义了一系列用 ...