为什么用户类型没有填充来自 mysql table 的数据值?
Why doesn't the user type get populated with the data values from mysql table?
我正在尝试开始使用 GORM 并做了一个简单的 select SQL 查询,如下所示。调试日志显示返回了两条记录,但当我尝试检查 users
类型时,它只是打印为空。这可能是什么原因? (table 中肯定有数据,如日志中所示,返回 2 条记录)
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
type User struct {
gorm.Model
username string
password string
}
func main() {
db, err := gorm.Open("mysql","root:1234@(localhost)/database_test")
db.LogMode(true)
defer db.Close()
if err != nil {
panic("failed to connect to the database")
}
var users User
db.Table("user").Find(&users)
fmt.Println("after finding the user")
fmt.Println("user ", users.username)
}
字段名称 username
和 password
以小写字母开头,这使得它们无法导出。无法从其他包访问未导出的标识符(在本例中为 github.com/jinzhu/gorm)。
将它们重命名为 Username
,将 Password
重命名为 export。
我正在尝试开始使用 GORM 并做了一个简单的 select SQL 查询,如下所示。调试日志显示返回了两条记录,但当我尝试检查 users
类型时,它只是打印为空。这可能是什么原因? (table 中肯定有数据,如日志中所示,返回 2 条记录)
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
type User struct {
gorm.Model
username string
password string
}
func main() {
db, err := gorm.Open("mysql","root:1234@(localhost)/database_test")
db.LogMode(true)
defer db.Close()
if err != nil {
panic("failed to connect to the database")
}
var users User
db.Table("user").Find(&users)
fmt.Println("after finding the user")
fmt.Println("user ", users.username)
}
字段名称 username
和 password
以小写字母开头,这使得它们无法导出。无法从其他包访问未导出的标识符(在本例中为 github.com/jinzhu/gorm)。
将它们重命名为 Username
,将 Password
重命名为 export。