• Go_sqlx和占位符


    sqlx使用

    第三方库sqlx能够简化操作,提高开发效率。

    安装

    go get github.com/jmoiron/sqlx
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/jmoiron/sqlx"
    
    	_ "github.com/go-sql-driver/mysql" // init()
    )
    
    // Go连接MySQL示例
    
    var db *sqlx.DB // 是一个连接池对象
    
    func initDB() (err error) {
    	// 数据库信息
    	// 用户名:密码@tcp(ip:端口)/数据库的名字
    	dsn := "root:root@tcp(127.0.0.1:3306)/sql_test"
    	// 连接数据库
    	db, err = sqlx.Connect("mysql", dsn)
    	if err != nil {
    		return
    	}
    	db.SetMaxOpenConns(10) // 设置数据库连接池的最大连接数
    	db.SetMaxIdleConns(5)  // 设置最大空闲连接数
    	return
    }
    
    type user struct {
    	ID   int
    	Name string
    	Age  int
    }
    
    func main() {
    	err := initDB()
    	if err != nil {
    		fmt.Printf("init DB failed, err:%v
    ", err)
    		return
    	}
    	sqlStr1 := `select id, name, age from user where id=1`
    	var u user
    	db.Get(&u, sqlStr1) //通过反射知道u有什么字段
    	fmt.Printf("u:%#v
    ", u)
    
    	var userList []user
    	sqlStr2 := `select id,name, age from user`
    	err = db.Select(&userList, sqlStr2)
    	if err != nil {
    		fmt.Printf("select failed, err:%v
    ", err)
    		return
    	}
    	fmt.Printf("userList:%#v
    ", userList)
    }

    SQL中的占位符

    不同的数据库中,SQL语句使用的占位符语法不尽相同。

    数据库占位符语法
    MySQL ?
    PostgreSQL $1$2
    SQLite ? 和$1
    Oracle :name

  • 相关阅读:
    神经网络 初步
    SVM整理
    碎碎念
    random note
    2015阿里实习内推一轮被拒
    django开发框架-view & template
    一点思考
    dive into python 读笔(3)
    dive into python 读笔(2)
    dive into python 读笔(1)
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12292864.html
Copyright © 2020-2023  润新知