Database/sql 及 GORM 相关解读|青训营

69 阅读1分钟

一、前言

本文章主要为《Database/sql 及 GORM 相关解读》的笔记。

二、理解database/sql

基本用法

import driver 实现
使用driver+DSN初始化DB连接

db, err :=sql.Open("mysql, "user:password@tcp(127.0.0.1:3306)/hello")

执行一条SQL,通过rows取回返回的数据
处理完毕,需要释放链接

rows, err :=db.Query("select id, name from users where id = ?", 1)
if err != nil {
//xxx
}

defer rows.Close()

数据、错误处理

var users []User
for rows.Next() {
  var user User
  err := rows.Scan(&user.ID, &user.Name)
  
  if err != nil {
  //...
  }
  
  users = append(users, user)
}

设计原理

应用程序 <-> 操作接口 <-> 数据库

三、GORM基础使用

“设计简洁、功能强大、自由扩展的全功能ORM”

基本用法

import (
  "gorm.io/gorm"
  "gorm.io/driver/mysql"
 )
 
 func main(){
   db, err := gorm.Open(
     mysql.Open("user:password@tcp(127.0.0.1:3306)/hello")
   )
   
   var users []User
   err = db.Select("id", "name").Find(&users, 1).Error
 }