Files
2021-03-11 15:12:43 +08:00

129 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
##我的公众号
![](.readme/a1ea2457.png)
## 查询命令记录
```
查询数据库表的信息sql,这边主要是用来查询表的信息:
select * from information_schema.TABLES where TABLE_SCHEMA='[数据库名]'
查询数据库表的字段元数据信息sql:
show full columns from [数据库名].[表名]
查询结果:
Field(字段名) Type(字段类型) Collation NULL(能否为空) Key(是否主键) Default(默认值) Extra Privilege Comment(注释)
```
## 使用ini配置文件读取工具
```
读取ini配置文件的工具:https://ini.unknwon.io/docs/intro/getting_started
配置信息保存路径:reverse/config.ini
支持三类配置:
[database] //数据库配置
[common] //通用配置
[type_mapping] //类型映射
按照对应格式进行配置,如果没有找到对应配置则使用数据库通用配置
```
## 可拓展支持
```
可拓展支持三个接口
ContentGenerate:文件内容拼接
DbConnection 数据库支持
ReverseCheck 校验支持
在Engine中通过以下三个方法实现配置
func SetContentGenerate
func SetDbConnection
func SetReverseCheck
```
## 方法调用说明
```
/**
* 传入表名和生成路径,数据库名和是否覆盖按照配置文件获取
*/
SimpleEngineer(tableName string, path string)
/**
* 传入表名、生成路径和是否覆盖,数据库名读取配置
*/
func (r *DataReverseEngine) SimEngineer(tableName string, path string, cover bool)
/**
* 传入表名、生成路径和是否覆盖、数据库名
*/
func (*DataReverseEngine) Engineer(dbName string, tableName string, path string, cover bool)
```
## 配置文件例子
```
[database] //数据库配置
username = 我的数据库账号
password = 我的数据库密码
tcp = @tcp
ip = 我的数据库机器Ip
port = 3306
database = 我的数据库名
charset = utf8mb4&parseTime=True&loc=Local
connMaxLifeTime = 100
maxIdleConns = 10
[common] //通用配置
def = string //默认的映射类型
tagKey = xorm //tag的key
suffix = .go //文件后缀
cover = true //存在文件是否进行覆盖,只有配置为false的时候不会覆盖,其他默认为true
[type_mapping] //类型映射
double = float64
float = float64
int = int
tinyint = int
bigint = int
time = time.Time
timestamp = time.Time
date = time.Time
dateTime = time.Time
```
## 方法调用例子
```
//使用相对路径
e := reverse.NewEngine()
e.Engineer("数据库名字", "表名", "filepath", true)
//使用绝对路径
e := reverse.NewEngine()
e.SetReverseCheck(&support.CheckPathSupport{})
e.Engineer("数据库名字", "表名", "F:/self_project/src/ReverseEngine/filepath", true)
```
## 问题描述
```
1.数据库连接是通过最原始的方式进行,这边后期可以修改成xorm或者其他的orm框架方式
2.读写文件的方法可以做相应的修改,这边也是采用最原生的方式
```
## 重复使用
直接运行Main.go方法,在控制台根据提示输入对应的数据库名、表名、生成位置、文件存在是否覆盖等参数来达到直接调用函数使用生成的目的
一次生成结束提示输入Y即可结束程序
启动时通过`panicStop`参数输入,控制程序报错不停止,除非在提示结束的时候输入Y.
## 使用
在config.ini中配置你的数据库信息,最好修改Engine中默认的数据库信息,因为这边的数据库信息都是我乱写的
# mod vendor模式加载包
通过go mod的方式加载的github上面的包会有报红的问题,但是包本身是可以运行的,这样就是会有一个问题,如果你想要点击去看方法的内容,没办法做到
查阅了网上提供的处理方式,通过设置GOPATH 和Go Modules(vgo)可以解决相应的问题,但是我在这样处理之后依然会出现报红的问题
后面通过使用vendor包的方式来处理,就避免了报红的问题
处理步骤如下
- 通过 go get github.com/kardianos/govendor 命令下载govendor命令
- 通过 go mod vendor 切换到vendor管理