Documentation ¶
Index ¶
- Variables
- type BaseTableTemplate
- type JrOrm
- func (orm *JrOrm) Close() error
- func (orm *JrOrm) GenerateTemplateFile(text string, templateData interface{}, filePath string, fileName string) error
- func (orm *JrOrm) QuerySchemaInfo(databaseName string, schemaInfo *SchemaInfo) error
- func (orm *JrOrm) QuerySchemaTableInfo(schemaTable SchemaTable, schemaTableInfo *SchemaTableInfo) error
- type LocalSchemaTableColumns
- type SchemaInfo
- func (schemaInfo *SchemaInfo) QueryAllTableInfo(orm *JrOrm) ([]SchemaTableInfo, error)
- func (schemaInfo *SchemaInfo) QueryOneTableInfo(orm *JrOrm, table SchemaTable) ([]SchemaTableInfo, error)
- func (schemaInfo *SchemaInfo) QueryTableInfoByPosition(orm *JrOrm, position int) ([]SchemaTableInfo, error)
- type SchemaTable
- type SchemaTableColumns
- type SchemaTableInfo
- func (tableInfo *SchemaTableInfo) ConvertTableColumnsToLocalTableColumns(tableColumns []SchemaTableColumns) ([]LocalSchemaTableColumns, error)
- func (tableInfo *SchemaTableInfo) FmtColumnsNameToCamelName(value string) string
- func (tableInfo *SchemaTableInfo) FmtColumnsNameToJsonTagValueName(value string) string
- func (tableInfo *SchemaTableInfo) FmtDatabaseNameToCamelName(value string) string
- func (tableInfo *SchemaTableInfo) FmtTableNameToFileName(value string) string
- func (tableInfo *SchemaTableInfo) FmtTableNameToStructureName(value string) string
- func (tableInfo *SchemaTableInfo) GenerateBaseTableTemplate() (*BaseTableTemplate, error)
- func (tableInfo *SchemaTableInfo) GenerateTableStructure() (string, error)
- func (tableInfo *SchemaTableInfo) GetAutoIncrementColumns() ([]SchemaTableColumns, error)
- func (tableInfo *SchemaTableInfo) GetDatabaseName() (string, error)
- func (tableInfo *SchemaTableInfo) GetEditableColumns() ([]SchemaTableColumns, error)
- func (tableInfo *SchemaTableInfo) GetPrimaryKeyColumns() ([]SchemaTableColumns, error)
- func (tableInfo *SchemaTableInfo) GetTableName() (string, error)
- func (tableInfo *SchemaTableInfo) GetUniqueColumns() ([]SchemaTableColumns, error)
- func (tableInfo *SchemaTableInfo) MappingMysqlDataTypeToGo(columnDataType string, columnType string) string
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 (*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数据类型
Click to show internal directories.
Click to hide internal directories.