赞
踩
gorm是一个使用Go语言编写的ORM框架。它文档齐全,对开发者友好,支持主流数据库。 gorm官方中文文档:https://gorm.io/zh_CN/docs/
Preload
、Joins
的预加载- go get -u gorm.io/gorm
- go get -u gorm.io/driver/sqlite
- go get -u gorm.io/driver/mysql
- go get -u gorm.io/driver/postgres
- CREATE TABLE `users` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
- `username` varchar(255) NOT NULL COMMENT '用户名',
- `password` varchar(255) NOT NULL COMMENT '密码',
- `status` enum('active','inactive','deleted') NOT NULL DEFAULT 'active' COMMENT '用户状态',
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
-
- insert into users(username, password) values ('test1', 'test1'),('test2', 'test2'),('test3', 'test3')
代码是继续接上一个实例代码
https://blog.csdn.net/forest_long/article/details/139093910
model/UserModel.go
- package model
-
- import "gin01/dao"
-
- type UserModel struct {
- Id int64 `json:"id" gorm:"primary_key"`
- Username string `json:"username"`
- Password string `json:"password"`
- }
-
- func (UserModel) TableName() string {
- return "users"
- }
-
- func GetUserInfo(id int) (UserModel, error) {
- var user UserModel
- err := dao.Db.Where("id = ?", id).First(&user).Error
- return user, err
- }
dao/UserDao.go
- package dao
-
- import (
- "fmt"
- "gin01/config"
- "github.com/jinzhu/gorm"
- _ "github.com/jinzhu/gorm/dialects/mysql"
- "time"
- )
- var (
- Db = &gorm.DB{}
- err error
- )
- func init() {
- Db, err = gorm.Open("mysql", config.MYSQL_DB)
- if err != nil {
- fmt.Print("db connect error")
- }
- if Db.Error != nil {
- fmt.Print("db database error")
- }
- Db.DB().SetMaxIdleConns(10)
- Db.DB().SetMaxOpenConns(100)
- Db.DB().SetConnMaxLifetime(time.Hour)
- }
config/db.go
- package config
-
- const (
- MYSQL_DB = "root:abc123456@tcp(127.0.0.1:3306)/test_gorm?charset=utf8mb4&parseTime=True&loc=Local"
- )
controller/user.go
-
- func (u UserController) GetUserInfo(c *gin.Context) {
- idStr := c.Param("id")
- //name := c.Param("name")
-
- id, _ := strconv.Atoi(idStr)
- user, _ := model.GetUserInfo(id)
- //common.RetSuccess(c, http.StatusOK, "success", "id:"+id+" name:"+name, 1)
- common.RetSuccess(c, http.StatusOK, "success", user, 1)
- }
http://localhost:8080/user/info/1/aa
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。