jorm

package
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MysqlDataTypeMapToGoDataType = map[string]string{
	"BIT":                       "int",
	"TINYINT":                   "int",
	"BOOL":                      "int",
	"BOOLEAN":                   "int",
	"SMALLINT":                  "int",
	"MEDIUMINT":                 "int",
	"INT":                       "int",
	"INTEGER":                   "int",
	"BIGINT":                    "int64",
	"DECIMAL":                   "int64",
	"DEC":                       "int",
	"FLOAT":                     "float32",
	"DOUBLE":                    "float64",
	"DOUBLE PRECISION":          "float64",
	"UNSIGNED BIT":              "uint",
	"UNSIGNED TINYINT":          "uint",
	"UNSIGNED BOOL":             "uint",
	"UNSIGNED BOOLEAN":          "uint",
	"UNSIGNED SMALLINT":         "uint",
	"UNSIGNED MEDIUMINT":        "uint",
	"UNSIGNED INT":              "uint",
	"UNSIGNED INTEGER":          "uint",
	"UNSIGNED BIGINT":           "uint64",
	"UNSIGNED DECIMAL":          "uint64",
	"UNSIGNED DEC":              "uint",
	"UNSIGNED FLOAT":            "float32",
	"UNSIGNED DOUBLE":           "float64",
	"UNSIGNED DOUBLE PRECISION": "float64",
	"DATE":                      "string",
	"DATETIME":                  "string",
	"TIMESTAMP":                 "string",
	"TIME":                      "string",
	"YEAR":                      "string",
	"CHAR":                      "string",
	"VARCHAR":                   "string",
	"BINARY":                    "string",
	"VARBINARY":                 "string",
	"TINYBLOB":                  "string",
	"TINYTEXT":                  "string",
	"BLOB":                      "string",
	"TEXT":                      "string",
	"MEDIUMBLOB":                "string",
	"MEDIUMTEXT":                "string",
	"LONGBLOB":                  "string",
	"LONGTEXT":                  "string",
	"ENUM":                      "string",
	"SET":                       "string"}

mysql数据类型映射到GO

Functions

This section is empty.

Types

type BaseTableTemplate

type BaseTableTemplate struct {
	DatabaseName               string               //数据库名称
	CamelDatabaseName          string               //数据库名的驼峰格式
	TableName                  string               //表名称
	AIColumns                  []SchemaTableColumns //表中所有自增字段
	PriColumns                 []SchemaTableColumns //表中所有PRI字段
	UniqueColumns              []SchemaTableColumns //表中所有Unique字段
	EditableColumns            []SchemaTableColumns //表中所有可编辑字段,插入和更新SQL语句使用
	TableStructureName         string               //表结构体名称,默认使用表名称的驼峰格式
	InsertRequestStructureName string               //Insert请求结构体名称
	UpdateRequestStructureName string               //Update请求结构体名称
}

基础表模板数据

type JrOrm

type JrOrm struct {
	DBConnector *jdb.DBConnector
}

func New

func New(dbConnector *jdb.DBConnector) *JrOrm

new JrOrm

func (*JrOrm) Close

func (orm *JrOrm) Close() error

close db connect

func (*JrOrm) GenerateTemplateFile

func (orm *JrOrm) GenerateTemplateFile(text string, templateData interface{}, filePath string, fileName string) error

根据模板字符串和模板数据生成文件

func (*JrOrm) QuerySchemaInfo

func (orm *JrOrm) QuerySchemaInfo(databaseName string, schemaInfo *SchemaInfo) error

查询数据库信息

func (*JrOrm) QuerySchemaTableInfo

func (orm *JrOrm) QuerySchemaTableInfo(schemaTable SchemaTable, schemaTableInfo *SchemaTableInfo) error

查询数据库表信息

type LocalSchemaTableColumns added in v0.0.6

type LocalSchemaTableColumns struct {
	SchemaTableColumns SchemaTableColumns
	CamelColumnName    string `json:"camelColumnName"`    //列名的驼峰格式
	ColumnDefaultValue string `json:"columnDefaultValue"` //默认值
	Nullable           bool   `json:"nullable"`           //是否可以为空
	GoDataType         string `json:"goDataType"`         //数据类型
}

表中列信息描述

type SchemaInfo

type SchemaInfo struct {
	Tables []SchemaTable `json:"tables"` //数据库中所有的表
}

数据库信息

func (*SchemaInfo) QueryAllTableInfo added in v0.0.6

func (schemaInfo *SchemaInfo) QueryAllTableInfo(orm *JrOrm) ([]SchemaTableInfo, error)

查询数据库中所有表的信息

func (*SchemaInfo) QueryOneTableInfo added in v0.0.6

func (schemaInfo *SchemaInfo) QueryOneTableInfo(orm *JrOrm, table SchemaTable) ([]SchemaTableInfo, error)

查询数据库中某一张表的信息

func (*SchemaInfo) QueryTableInfoByPosition added in v0.0.6

func (schemaInfo *SchemaInfo) QueryTableInfoByPosition(orm *JrOrm, position int) ([]SchemaTableInfo, error)

查询数据库中某一张表的信息

type SchemaTable

type SchemaTable struct {
	TableCatalog   string `json:"tableCatalog" orm:"TABLE_CATALOG"`     //
	TableSchema    string `json:"tableSchema" orm:"TABLE_SCHEMA"`       //
	TableName      string `json:"tableName" orm:"TABLE_NAME"`           //
	TableType      string `json:"tableType" orm:"TABLE_TYPE"`           //
	ENGINE         string `json:"engine" orm:"ENGINE"`                  //sql.NullString
	VERSION        int64  `json:"version" orm:"VERSION"`                //sql.NullInt64
	RowFormat      string `json:"rowFormat" orm:"ROW_FORMAT"`           //sql.NullString
	TableRows      int64  `json:"tableRows" orm:"TABLE_ROWS"`           //sql.NullInt64
	AvgRowLength   int64  `json:"avgRowLength" orm:"AVG_ROW_LENGTH"`    //sql.NullInt64
	DataLength     int64  `json:"dataLength" orm:"DATA_LENGTH"`         //sql.NullInt64
	MaxDataLength  int64  `json:"maxDataLength" orm:"MAX_DATA_LENGTH"`  //sql.NullInt64
	IndexLength    int64  `json:"indexLength" orm:"INDEX_LENGTH"`       //sql.NullInt64
	DataFree       int64  `json:"dataFree" orm:"DATA_FREE"`             //sql.NullInt64
	AutoIncrement  int64  `json:"autoIncrement" orm:"AUTO_INCREMENT"`   //sql.NullInt64
	CreateTime     string `json:"createTime" orm:"CREATE_TIME"`         //sql.NullString
	UpdateTime     string `json:"updateTime" orm:"UPDATE_TIME"`         //sql.NullString
	CheckTime      string `json:"checkTime" orm:"CHECK_TIME"`           //sql.NullString
	TableCollation string `json:"tableCollation" orm:"TABLE_COLLATION"` //sql.NullString
	CHECKSUM       int64  `json:"checksum" orm:"CHECKSUM"`              //sql.NullInt64
	CreateOptions  string `json:"createOptions" orm:"CREATE_OPTIONS"`   //sql.NullString
	TableComment   string `json:"tableComment" orm:"TABLE_COMMENT"`
}

数据库表元数据

type SchemaTableColumns

type SchemaTableColumns struct {
	TableCatalog           string `json:"tableCatalog" orm:"TABLE_CATALOG"`                      //表限定符
	TableSchema            string `json:"tableSchema" orm:"TABLE_SCHEMA"`                        //表所有者
	TableName              string `json:"tableName" orm:"TABLE_NAME"`                            //表名
	ColumnName             string `json:"columnName" orm:"COLUMN_NAME"`                          //列名
	OrdinalPosition        int64  `json:"ordinalPosition" orm:"ORDINAL_POSITION"`                //该列在该表中的顺序
	ColumnDefault          string `json:"columnDefault" orm:"COLUMN_DEFAULT"`                    //列的默认值,sql.NullString
	IsNullable             string `json:"isNullable" orm:"IS_NULLABLE"`                          //是否可以为null
	DataType               string `json:"dataType" orm:"DATA_TYPE"`                              //数据类型
	CharacterMaximumLength int64  `json:"characterMaximumLength" orm:"CHARACTER_MAXIMUM_LENGTH"` //数据的长度,sql.NullInt64
	CharacterOctetLength   int64  `json:"characterOctetLength" orm:"CHARACTER_OCTET_LENGTH"`     //数据的存储长度,sql.NullInt64
	NumericPrecision       int64  `json:"numericPrecision" orm:"NUMERIC_PRECISION"`              //精度,sql.NullInt64
	NumericScale           int64  `json:"numericScale" orm:"NUMERIC_SCALE"`                      //小数位数,sql.NullInt64
	DatetimePrecision      int64  `json:"datetimePrecision" orm:"DATETIME_PRECISION"`            //如果列是字符数据或 text 数据类型,那么返回 master,指明字符集所在的数据库,sql.NullInt64
	CharacterSetName       string `json:"characterSetName" orm:"CHARACTER_SET_NAME"`             //如果列是字符数据或 text 数据类型,那么返回 dbo,指明字符集的所有者名称,sql.NullString
	CollationName          string `json:"collationName" orm:"COLLATION_NAME"`                    //如果该列是字符数据或 text 数据类型,那么为字符集返回唯一的名称。否则,返回 null,sql.NullString
	ColumnType             string `json:"columnType" orm:"COLUMN_TYPE"`                          //列的类型,例如varchar(20)
	ColumnKey              string `json:"columnKey" orm:"COLUMN_KEY"`                            //如果等于pri,表示是主键
	EXTRA                  string `json:"extra" orm:"EXTRA"`                                     //义列的时候的其他信息,例如自增,主键
	PRIVILEGES             string `json:"privileges" orm:"PRIVILEGES"`                           //操作权限有:select,insert,update,references
	ColumnComment          string `json:"columnComment" orm:"COLUMN_COMMENT"`                    //列的备注
	GenerationExpression   string `json:"generationExpression" orm:"GENERATION_EXPRESSION"`
}

数据库表中列的元数据

type SchemaTableInfo

type SchemaTableInfo struct {
	SchemaTable  SchemaTable          `json:"schemaTable"`
	TableColumns []SchemaTableColumns `json:"tableColumns"`
}

数据库表信息

func (*SchemaTableInfo) ConvertTableColumnsToLocalTableColumns added in v0.0.6

func (tableInfo *SchemaTableInfo) ConvertTableColumnsToLocalTableColumns(tableColumns []SchemaTableColumns) ([]LocalSchemaTableColumns, error)

func (*SchemaTableInfo) FmtColumnsNameToCamelName

func (tableInfo *SchemaTableInfo) FmtColumnsNameToCamelName(value string) string

将表字段名称格式化为结构体驼峰命名方式

func (*SchemaTableInfo) FmtColumnsNameToJsonTagValueName

func (tableInfo *SchemaTableInfo) FmtColumnsNameToJsonTagValueName(value string) string

表字段名转换为结构体中json tag对应的名称

func (*SchemaTableInfo) FmtDatabaseNameToCamelName

func (tableInfo *SchemaTableInfo) FmtDatabaseNameToCamelName(value string) string

将数据库名称转换为驼峰格式

func (*SchemaTableInfo) FmtTableNameToFileName

func (tableInfo *SchemaTableInfo) FmtTableNameToFileName(value string) string

将表名称转换为文件名需要的格式

func (*SchemaTableInfo) FmtTableNameToStructureName

func (tableInfo *SchemaTableInfo) FmtTableNameToStructureName(value string) string

将表名称转换为结构体名需要的格式

func (*SchemaTableInfo) GenerateBaseTableTemplate

func (tableInfo *SchemaTableInfo) GenerateBaseTableTemplate() (*BaseTableTemplate, error)

生成基础表模板数据

func (*SchemaTableInfo) GenerateTableStructure

func (tableInfo *SchemaTableInfo) GenerateTableStructure() (string, error)

生成表结构体

func (*SchemaTableInfo) GetAutoIncrementColumns added in v0.0.6

func (tableInfo *SchemaTableInfo) GetAutoIncrementColumns() ([]SchemaTableColumns, error)

获取表中自增字段

func (*SchemaTableInfo) GetDatabaseName added in v0.0.6

func (tableInfo *SchemaTableInfo) GetDatabaseName() (string, error)

获取数据库名称

func (*SchemaTableInfo) GetEditableColumns added in v0.0.6

func (tableInfo *SchemaTableInfo) GetEditableColumns() ([]SchemaTableColumns, error)

获取表中可编辑字段

func (*SchemaTableInfo) GetPrimaryKeyColumns added in v0.0.6

func (tableInfo *SchemaTableInfo) GetPrimaryKeyColumns() ([]SchemaTableColumns, error)

获取表中主键字段

func (*SchemaTableInfo) GetTableName added in v0.0.6

func (tableInfo *SchemaTableInfo) GetTableName() (string, error)

获取表名称

func (*SchemaTableInfo) GetUniqueColumns added in v0.0.6

func (tableInfo *SchemaTableInfo) GetUniqueColumns() ([]SchemaTableColumns, error)

获取表表中唯一键字段

func (*SchemaTableInfo) MappingMysqlDataTypeToGo

func (tableInfo *SchemaTableInfo) MappingMysqlDataTypeToGo(columnDataType string, columnType string) string

根据mysql数据类型获取golang数据类型

Jump to

Keyboard shortcuts

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