From e2ac04a45ddcaeee78570960acff7f79596a74fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Sun, 17 Aug 2025 12:15:16 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=A0comment?= =?UTF-8?q?=E6=97=B6,=20=E7=94=9F=E6=88=90=E6=B3=A8=E9=87=8A=E4=BC=9A?= =?UTF-8?q?=E5=87=BA=E7=8E=B0panic=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql2go/parser.go | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/sql2go/parser.go b/sql2go/parser.go index 0aa588e..d67f9aa 100644 --- a/sql2go/parser.go +++ b/sql2go/parser.go @@ -9,9 +9,10 @@ package sql2go import ( "errors" - wrapperType "git.zhangdeman.cn/zhangdeman/wrapper" "strings" + wrapperType "git.zhangdeman.cn/zhangdeman/wrapper" + "github.com/xwb1989/sqlparser" ) @@ -93,11 +94,14 @@ func generateTable(tableName string, modelStructName string, columnList []*sqlpa for _, item := range columnList { comment := "" - if item.Type.Comment == nil { + if item.Type.Comment == nil || item.Type.Comment.Val == nil { comment = item.Name.String() } else { comment = string(item.Type.Comment.Val) } + if comment == "" { + comment = item.Name.String() + } data := map[string]string{ "{FIELD}": wrapperType.String(item.Name.String()).SnakeCaseToCamel(), "{COLUMN}": item.Name.String(), @@ -153,14 +157,17 @@ func generateTableColumnDefined(modelStructName string, columnList []*sqlparser. structFieldDescInstanceResult := "&" + columnDefineName + "{ \n" structFieldCommentInstanceResult := "map[string]string{ \n" for _, column := range columnList { + comment := column.Name.String() + if nil != column.Type.Comment { + comment = string(column.Type.Comment.Val) + } + if comment == "" { + comment = column.Name.String() + } dataMap := map[string]string{ - "{FIELD}": wrapperType.String(column.Name.String()).SnakeCaseToCamel(), - "{JSON_TAG}": column.Name.String(), - "{FIELD_COMMENT}": wrapperType.TernaryOperator.String( - column.Type.Comment == nil, - wrapperType.String(column.Name.String()), - wrapperType.String(string(column.Type.Comment.Val)), - ).Value(), + "{FIELD}": wrapperType.String(column.Name.String()).SnakeCaseToCamel(), + "{JSON_TAG}": column.Name.String(), + "{FIELD_COMMENT}": comment, } structFieldDefine := TableColumnTpl From e7f4e3fca2e0eab8a770de0c53790c1dabee0639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Sun, 17 Aug 2025 12:41:37 +0800 Subject: [PATCH 2/4] =?UTF-8?q?upgrade:=20=E4=BC=98=E5=8C=96=20mysql=20dat?= =?UTF-8?q?a=20type=20<=3D>=20golang=20data=20type=20=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E7=9A=84=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql2go/define.go | 63 +++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/sql2go/define.go b/sql2go/define.go index b89a632..d43356f 100644 --- a/sql2go/define.go +++ b/sql2go/define.go @@ -7,47 +7,50 @@ // Date : 2021-10-25 4:50 下午 package sql2go +import "git.zhangdeman.cn/zhangdeman/consts" + // sqlTypeMap mysql数据类型 => go 数据类型映射 // // Author : go_developer@163.com<白茶清欢> // // Date : 4:50 下午 2021/10/25 var sqlTypeMap = map[string]string{ - "int": "int", - "integer": "int", - "tinyint": "int8", - "smallint": "int16", - "mediumint": "int32", - "bigint": "int64", - "int unsigned": "uint", - "integer unsigned": "uint", - "tinyint unsigned": "uint8", - "smallint unsigned": "uint16", - "mediumint unsigned": "uint32", - "bigint unsigned": "uint64", + "int": consts.DataTypeInt.String(), + "integer": consts.DataTypeInt.String(), + "tinyint": consts.DataTypeInt8.String(), + "smallint": consts.DataTypeInt16.String(), + "mediumint": consts.DataTypeInt32.String(), + "bigint": consts.DataTypeInt64.String(), + "int unsigned": consts.DataTypeUint.String(), + "integer unsigned": consts.DataTypeUint.String(), + "tinyint unsigned": consts.DataTypeUint8.String(), + "smallint unsigned": consts.DataTypeUint16.String(), + "mediumint unsigned": consts.DataTypeUint32.String(), + "bigint unsigned": consts.DataTypeUint64.String(), "bit": "byte", - "bool": "bool", - "enum": "string", - "set": "string", - "varchar": "string", - "char": "string", - "tinytext": "string", - "mediumtext": "string", - "text": "string", - "longtext": "string", - "blob": "string", - "tinyblob": "string", - "mediumblob": "string", - "longblob": "string", + "bool": consts.DataTypeBool.String(), + "enum": consts.DataTypeString.String(), + "set": consts.DataTypeString.String(), + "varchar": consts.DataTypeString.String(), + "char": consts.DataTypeString.String(), + "tinytext": consts.DataTypeString.String(), + "mediumtext": consts.DataTypeString.String(), + "text": consts.DataTypeString.String(), + "longtext": consts.DataTypeString.String(), + "blob": consts.DataTypeString.String(), + "tinyblob": consts.DataTypeString.String(), + "mediumblob": consts.DataTypeString.String(), + "longblob": consts.DataTypeString.String(), "date": "time.Time", "datetime": "time.Time", "timestamp": "time.Time", "time": "time.Time", - "float": "float64", - "double": "float64", - "decimal": "float64", - "binary": "string", - "varbinary": "string", + "float": consts.DataTypeFloat64.String(), + "double": consts.DataTypeFloat64.String(), + "decimal": consts.DataTypeFloat64.String(), + "binary": consts.DataTypeString.String(), + "varbinary": consts.DataTypeString.String(), + "json": consts.DataTypeString.String(), } const ( From 69a4a3925ea75f564d0636b48716264a9adbd0b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Sun, 17 Aug 2025 12:45:04 +0800 Subject: [PATCH 3/4] =?UTF-8?q?upgrade:=20=E6=95=B0=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=AF=86=E5=88=AB=EF=BC=8C=E6=94=AF=E6=8C=81=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E6=97=A0=E7=AC=A6=E5=8F=B7=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql2go/parser.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sql2go/parser.go b/sql2go/parser.go index d67f9aa..174113e 100644 --- a/sql2go/parser.go +++ b/sql2go/parser.go @@ -110,6 +110,10 @@ func generateTable(tableName string, modelStructName string, columnList []*sqlpa "{COMMENT}": comment, "{TYPE}": sqlTypeMap[item.Type.Type], } + if item.Type.Unsigned { + // 无符号 + data["{TYPE}"] = sqlTypeMap[item.Type.Type+" unsigned"] + } /*if data["{FIELD}"] == "ID" { basic.PrimaryFieldType = data["{TYPE}"] }*/ From 0e48ae00415b7ce69bd87f6ec4e89c7d29d6955e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Sun, 17 Aug 2025 12:51:41 +0800 Subject: [PATCH 4/4] =?UTF-8?q?upgrade:=20=E8=8E=B7=E5=8F=96=E8=A1=A8?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=8F=8F=E8=BF=B0=E8=BF=94=E5=9B=9E=E5=AD=97?= =?UTF-8?q?=E9=9D=A2=E9=87=8F=E8=80=8C=E9=9D=9E=E7=BB=93=E6=9E=84=E4=BD=93?= =?UTF-8?q?=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql2go/parser.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql2go/parser.go b/sql2go/parser.go index 174113e..73e2c55 100644 --- a/sql2go/parser.go +++ b/sql2go/parser.go @@ -158,7 +158,7 @@ return "{{TABLE_NAME}}" func generateTableColumnDefined(modelStructName string, columnList []*sqlparser.ColumnDefinition) (string, string, string) { columnDefineName := modelStructName + "Column" structFieldResult := "type " + columnDefineName + " struct { \n" - structFieldDescInstanceResult := "&" + columnDefineName + "{ \n" + structFieldDescInstanceResult := columnDefineName + "{ \n" structFieldCommentInstanceResult := "map[string]string{ \n" for _, column := range columnList { comment := column.Name.String() @@ -192,7 +192,7 @@ func generateTableColumnDefined(modelStructName string, columnList []*sqlparser. tableColumnFunction := ` // Columns 获取表字段定义 -func ({TABLE_FIRST} {MODEL_STRUCT_NAME}) Columns() *{COLUMN_DEFINED} { +func ({TABLE_FIRST} {MODEL_STRUCT_NAME}) Columns() {COLUMN_DEFINED} { return {STRUCT_FIELD_DESC_DEFINED_RESULT} }