在go语言中使用gorm从数据库中读取数据代码示例
GORM:Golang对象关系映射,gorm连接到MySQL/MariaDB 数据库并从中读取数据的简单示例
示例代码:
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
"time"
)
// Activities table SQL :
// id bigint(20) AUTO_INCREMENT
// username varchar(50)
// created_on timestamp
// action char(1)
// description varchar(300)
// visibility char(1)
type Activities struct {
Id int `sql:"AUTO_INCREMENT"`
Username string `sql:"varchar(50);unique"`
Created_On time.Time
Action string `sql:"type:char(1)"`
Description string `sql:"type:varchar(300)"`
Visibility string `sql:"type:char(1)"`
}
func main() {
dbConn, err := gorm.Open("mysql", "username:[email protected](xx.xxx.xxx.xxx:3306)/database_name?charset=utf8&parseTime=true")
if err != nil {
fmt.Println(err)
}
//初始化
dbConn.DB()
dbConn.DB().Ping()
dbConn.DB().SetMaxIdleConns(10)
dbConn.DB().SetMaxOpenConns(100)
activity := Activities{} // a record
//获得第一条数据
dbConn.First(&activity)
fmt.Println(activity)
fmt.Println("------------------------------")
// 获得所有数据
activities := []Activities{} // a slice
//dbConn.Find(&activities)
//fmt.Println(activities)
//从记录偏移量1到10中获取记录
//用于分页的目的 - 只需要动态地计算偏移量和限制。
dbConn.Limit(10).Order("id asc").Find(&activities).Offset(1).Order("id asc").Find(&activities)
for _, v := range activities {
fmt.Println("Id : ", v.Id)
fmt.Println("Username : ", v.Username)
fmt.Println("Created On : ", v.Created_On)
fmt.Println("Action : ", v.Action)
fmt.Println("Desription : ", v.Description)
fmt.Println("Visibility : ", v.Visibility)
}
}
注意:
&parseTime=true在 dbConn 配置中没有参数。
您的驱动程序在读取(扫描)和转换 SQL 时间戳时会遇到问题。
相关文章:
在go语言中怎么连接到数据库(MySQL/MariaDB)服务器
https://www.zongscan.com/demo333/96212.html
相关文章