• Go 操作数据库尝鲜


    Go 操作数据库尝鲜

    以下代码为go链接mysql操作mysql的部分代码

    package main
    
    import (
    	"database/sql"
    	"fmt"
    	_ "github.com/go-sql-driver/mysql"
    )
    
    type User struct{
    	ID int64
    	Name string
    	Age int8
    }
    
    var db *sql.DB
    
    func InitDB() (err error) {
    	dbh := "bbsgo:bbsgo1234!@tcp(192.168.0.155:3306)/bbsgo_db"
    	db, err = sql.Open("mysql", dbh)
    	if err != nil {
    		return err
    	}
    	err = db.Ping()
    	if err != nil {
    		return err
    	}
    	return nil
    }
    
    func CreateTable()  {
    	sqlStr := "create table IF NOT EXISTS sqlTest1 (ID int AUTO_INCREMENT PRIMARY KEY, Name varchar(12) " +
    		"NOT NULL UNIQUE, AGE TINYINT NOT NULL)"
    	ret, err := db.Exec(sqlStr)
    	if err != nil {
    		fmt.Println(err.Error())
    		return
    	}
    	fmt.Println(ret)
    	fmt.Println(ret)
    	r, err := ret.RowsAffected()
    	fmt.Println(r)
    	fmt.Println(err)
    }
    func InsertData()  {
    	sqlStr := "insert into sqlTest(Name, AGE) value(?, ?)"
    	ret, err := db.Exec(sqlStr, "asd", 1)
    	if err != nil {
    		fmt.Println(err.Error())
    		return
    	}
    	fmt.Println(ret)
    	fmt.Println(ret)
    	r, err := ret.RowsAffected()
    	fmt.Println(r)
    	fmt.Println(err)
    }
    
    func Select() {
    	sqlStr := "SELECT * FROM sqlTest;"
    	var uList []*User
    
    	var u User
    	ret, err := db.Query(sqlStr)
    
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    	defer ret.Close()
    	fmt.Println(ret, *ret)
    	for ret.Next() {
    		err := ret.Scan(&u.ID, &u.Name, &u.Age)
    		if err != nil {
    			fmt.Println(err)
    		} else {
    			uList = append(uList, &u)
    		}
    	}
    	fmt.Println(uList)
    	fmt.Println(uList[0])
    }
    
    func main() {
    	err := InitDB()
    	if err != nil {
    		fmt.Println(err)
    	}
    	//CreateTable()
    	//InsertData()
    	Select()
    }
    
  • 相关阅读:
    C#中Windows通用的回车转Tab方法
    对Form_Load事件的一点想法
    关于粉笔灰对教师影响的解决方案
    今天才发现MSSQLServer2000的排序功能原来这样
    C# 2.0与泛型
    (收藏)Anders Hejlsberg谈C#、Java和C++中的泛型
    对接口interface的一点想法
    马的遍历
    推荐软件:工作时间提醒器
    pgpoolII 介绍
  • 原文地址:https://www.cnblogs.com/linga/p/14176400.html
Copyright © 2020-2023  润新知