计算机学习

您现在的位置是:首页 > go > 正文

go

sqlx

hhb2022-03-28go92
安装go get github.com/go-sql-driver/mysqlgo get github.com/jmoiron/sqlx定义结构体pack

安装

go get github.com/go-sql-driver/mysql
go get github.com/jmoiron/sqlx

定义结构体

package model
//定义分类结构体
type Category struct {
	CateID         int64 `db:"cate_ID"`
	CateName        string `db:"cate_Name"`
	CateOrder        int64 `db:"cate_Order"`
	CateType        int64 `db:"cate_Type"`
	CateCount        int64 `db:"cate_Count"`
	CateAlias        string `db:"cate_Alias"`
	CateGroup        string `db:"cate_Group"`
	CateIntro        string `db:"cate_Intro"`
	CateRootID       int64 `db:"cate_RootID"`
	CateParentID      int64 `db:"cate_ParentID"`
	CateTemplate      string `db:"cate_Template"`
	CateLogTemplate     string `db:"cate_LogTemplate"`
	CateMeta        string `db:"cate_Meta"`
}

连接数据库

package db

import (
   _ "github.com/go-sql-driver/mysql"
   "github.com/jmoiron/sqlx"
)
var (
   DB *sqlx.DB
)
//初始化
func Init(dsn string) error{
   var err error
   DB,err=sqlx.Open("mysql",dsn)
   if err!=nil{
      return err
   }
   err=DB.Ping()
   if err!=nil{
      return err
   }
   return nil
}

main函数执行

package main

import (
   "fmt"
   "hhb/go-blog/dao/db"
)

func main(){
   var ids=[]interface{}{
      1,2,
   }
   db.Init("root:111111@tcp(127.0.0.1:3306)/blog?charset=utf8")
   byIds, _ := db.GetMultiCategoryByIds(ids)
   for _,val := range byIds{
      fmt.Println(val)
   }
}

查询单行

//获取单个分类
func GetCategoryById(id int64) (category *model.Category, err error) {
	category = &model.Category{}
	sqlstr := "select cate_Name,cate_Count from zbp_category where cate_ID=?"
	err = DB.Get(category, sqlstr, id)
	if err != nil {
		return
	}
	return
}

查询多行

//获取多个分类
func GetMultiCategoryByIds(ids []interface{})(category []model.Category, err error)  {
   params:=""
   for i:=0;i<len(ids);i++ {
      params+="?,"
   }
   params=strings.TrimRight(params,",") //去掉右边的逗号
   sqlstr := "select * from zbp_category where cate_ID in("+params+")"
   err = DB.Select(&category, sqlstr,ids...)
   return
}


发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~