首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

golang之gorm初体验

go语言没有官方提供的数据库驱动,但是为第三方开发数据库驱动的人制定了一套标准接口,这样开发者就可以根据定义的接口来开发相应的数据库驱动。当然在开发中我们一般还是用orm框架得多,因为这样可以让我们事半功倍。

golang的orm框架很多,不用框架也能很顺利的对数据进行增删改查。但是在一些大型项目上框架还是少不了。这里用github.com/go-sql-driver/mysql驱动和github.com/jinzhu/gorm框架举例。

由于我在项目中一直是用的gorm框架,觉得这个框架还是挺强大和高效灵活的,首先介绍一下gorm的基本用法。

1.首先导入驱动包以及gorm库。

import(

"github.com/jinzhu/gorm"

_"github.com/go-sql-driver/mysql"

"fmt"

"time"

//log "github.com/code.google.com/log4go"

)

2.接下来我们建立一个和数据库映射的结构体,其中字段后面的tag就是数据库中对应的列,也即是和字段和列映射起来。下面建立一个UserInfo的结构体。

typeUserInfostruct{

Id int`gorm:"column:id" json:"id"`

Name string`gorm:"column:name" json:"name"`

Phone string`gorm:"column:phone" json:"phone"`

CreatedTime time.Time`gorm:"column:created_time" json:"created_time"`

CreatedUser string`gorm:"column:created_user" json:"created_user"`

}

3.接下来就是打开数据库连接,获取*DB对象,然后进行一些操作,注意获取到的一直都是*DB对象,也就是一种链式编程的效果,这让我们可以一直拥有这个对象而不用另附变量。所以可以一直db.Table().Find().Error()调用下去,下面是一个简单的查询例子。

funcmain() {

dbHost:="user:password@tcp(127.0.0.1:3306)/test?"+

"charset=utf8&&parseTime=True&loc=Local"

db, err := gorm.Open("mysql", dbHost)

iferr != nil {

fmt.Println("数据库链接异常")

}

varuserInfos []UserInfo

db.LogMode(true)//打印SQL语句

err1:=db.Table("user_info").Find(&userInfos).Error

iferr1!=nil{

fmt.Printf("查询出错%s",err1.Error())

}

for_,v:=rangeuserInfos{

fmt.Printf("userInfos:%#v",v)

}

}

题图来源于百度图片

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180127G0003D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券