golang使用database/sql连接各种数据库

文章目录

mysql

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

func main(){
	db, err := sql.Open("mysql",
		"root:123456@tcp(127.0.0.1:3306)/arguse")
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	err  = db.Ping()
	if err != nil{
		log.Fatal(err)
	}else{
		println("ping ...")
	}
}

查询

	//----------------从数据库获取数据------------------
    var  (
    	id int
    	name string
	)
	rows, err := db.Query("select uid, uname from userinfo where uid = ?", 1)
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()
	for rows.Next(){
		err := rows.Scan(&id, &name)
		if err != nil {
			log.Fatal(err)
		}
		println(id, name)   //将每行中的列读入变量中rows.Scan()。
	}
	if err = rows.Err()   ;err != nil {   //遍历行之后检查错误
		log.Fatal(err)
	}
//-----------要多次使用的查询----------------------
	fmt.Println("-----------要多次使用的查询----------------------")
	stmt, err := db.Prepare("select uid, uname from userinfo where uid = ?")
	if err != nil {
		log.Fatal(err)
	}
	defer stmt.Close()
	rows, err = stmt.Query(1)
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()
	for rows.Next(){
		err := rows.Scan(&id, &name)
		if err != nil {
			log.Fatal(err)
		}
		println(id, name)   //将每行中的列读入变量中rows.Scan()。
	}
	if err = rows.Err()   ;err != nil {   //遍历行之后检查错误
		log.Fatal(err)
	}
	rows, err = stmt.Query(2)
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()
	for rows.Next(){
		err := rows.Scan(&id, &name)
		if err != nil {
			log.Fatal(err)
		}
		println(id, name)   //将每行中的列读入变量中rows.Scan()。
	}
	if err = rows.Err()   ;err != nil {   //遍历行之后检查错误
		log.Fatal(err)
	}
	fmt.Println("-----------查询最多只返回一行----------------------")
	err = db.QueryRow("select uid, uname from userinfo where uid = ?", 1).Scan(&id, &name)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(id, name)
fmt.Println("-----------准备查询最多只返回一行----------------------")
	stmt, err = db.Prepare("select uid, uname from userinfo where uid = ?")
	if err != nil {
		log.Fatal(err)
	}
	err = stmt.QueryRow(1).Scan(&id,&name)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(name)

参考:https://blog.csdn.net/billgates_wanbin/article/details/79621687
https://yq.aliyun.com/articles/178898?utm_content=m_29337
http://go-database-sql.org/references.html

mssql

ms SQL是指微软的SQLServer数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。

猜你喜欢

转载自blog.csdn.net/zhizhengguan/article/details/88732706
今日推荐