zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    8.13 Java自学
    8.12 Java自学
    8.11 Java自学
    JAVA学习日报 8.18
    JAVA学习日报 8.17
    JAVA学习日报 8.16
    JAVA学习日报 8.15
    JAVA学习日报 8.14
    JAVA学习日报 8.13
    JAVA学习日报 8.12
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12292864.html
Copyright © 2011-2022 走看看