zoukankan      html  css  js  c++  java
  • (三)go-sql-driver

    1. go-sql-driver/mysql

    2. CRUD 示例

    // mysql_demo project main.go
    package main
    
    import (
    	"database/sql"
    	"fmt"
    
    	_ "github.com/go-sql-driver/mysql"
    )
    
    func MysqlTest() {
    	db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/ld")
    	if err != nil {
    		fmt.Println("connect to mysql failed!")
    		return
    	} else {
    		fmt.Println("connected")
    	}
    	defer db.Close()
    
    	err = db.Ping()
    	if err != nil {
    		panic(err.Error())
    	}
    
    	// select
    	sqlSelect := "select * from ld.pet"
    	statement, err := db.Prepare(sqlSelect)
    	if err != nil {
    		fmt.Println("prepare statement failed:", err.Error())
    		return
    	}
    	defer statement.Close()
    	rows, err := statement.Query()
    	if err != nil {
    		fmt.Println("query failed:", err.Error())
    	}
    	columns, err := rows.Columns()
    	if err != nil {
    		fmt.Println(err.Error())
    		return
    	}
    	fmt.Println(columns)
    
    	row := make([]sql.RawBytes, len(columns))
    	scanArgs := make([]interface{}, len(row))
    	for i := range row {
    		scanArgs[i] = &row[i]
    	}
    
    	for rows.Next() {
    		err := rows.Scan(scanArgs...)
    		if err != nil {
    			panic(err.Error())
    		}
    		// row
    		for pos, col := range row {
    			fmt.Println(columns[pos], ":", string(col))
    		}
    		fmt.Println()
    	}
    
    	// insert
    	sqlInsert := "insert into ld.pet values('kk', 'ld', "2018-12-13", "2018-12-13 15:56:50", "2018-12-13 15:57:00")"
    	statement_insert, err := db.Prepare(sqlInsert)
    	if err != nil {
    		panic(err.Error())
    	}
    	statement_insert.Exec()
    	statement_insert.Close()
    
    	// delete
    	sqlDelete := "delete from ld.pet where name = 'kk'"
    	statement_delete, err := db.Prepare(sqlDelete)
    	if err != nil {
    		panic(err.Error())
    	}
    	statement_delete.Exec()
    	statement_delete.Close()
    
    	// update
    	sqlUpdate := "update ld.pet set ower = 'caicai' where name = 'gg'"
    	statement_update, err := db.Prepare(sqlUpdate)
    	if err != nil {
    		panic(err.Error())
    	}
    	statement_update.Exec()
    	statement_update.Close()
    
    }
    
    func main() {
    	fmt.Println("Hello World!")
    	MysqlTest()
    }
    
    
  • 相关阅读:
    vue计算属性和方法的区别
    函数防抖和函数节流
    vue项目使用keep-alive
    hash模式与history模式
    Vue中的计算属性
    MVVM的理解和Vue的生命周期
    session和cookie的区别
    localStorage和sessionStorage区别
    try catch finally的理解
    《Linux命令学习手册》系列分享专栏
  • 原文地址:https://www.cnblogs.com/walkinginthesun/p/10114960.html
Copyright © 2011-2022 走看看