栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

go语言连接数据库的一些方法

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go语言连接数据库的一些方法

```go
package main

import (
	"database/sql"
	"fmt"
	//配置环境MySQL
	_ "github.com/go-sql-driver/mysql"
	"log"
	"math"
)
//在java中是声明类 但是go不是面向对象编程,所以它只是变量
type user struct {
	 Id int
	 Name string
	 Pwd string
	 CreatedAt string
}

//声明sql连接  在java的jdbc远古mysql连接版本中差不太多
var db0 *sql.DB

func main()  {
	//var us user
	//us.select2()

	//var us user
	//us.Name ="张三"
	//us.Pwd ="123"
	//us.CreatedAt ="321"
	//us.insert()

	//var us user
	//us.Id =7
	//us.Name="李四"
	//us.Pwd="111"
	//us.CreatedAt="222"
	//us.update()

//掉方法必须是闲声明 而且声明类似于变量
	var us user
	us.Id =6
	us.del()
}


	
func (user user) del() {
	var err error
	db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8")
	if err != nil {
		log.Fatal("数据库打开出现了问题:", err)
		return
	}
	db0.Ping()
	if err != nil {
		log.Fatal("数据库连接出现了问题:", err)
		return
	}
	rows, err := db0.Prepare("DELETE FROM user where id =?")
	res, err := rows.Exec(user.Id)
	if err !=nil{
		fmt.Println("出错了",res)
		return
	}
}


	
func (user user) update() {
	var err error
	db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1.155:3306)/golang?charset=utf8")
	if err != nil {
		log.Fatal("数据库打开出现了问题:", err)
		return
	}
	db0.Ping()
	if err != nil {
		log.Fatal("数据库连接出现了问题:", err)
		return
	}
	rows, err := db0.Prepare("UPDATE `user` SET `name` = ?, `pwd` = ?, `created_at` = ? WHERe `id` = ?")
	res, err := rows.Exec(user.Name,user.Pwd,user.CreatedAt,user.Id)
	if err !=nil{
		fmt.Println("出错了",res)
		return
	}
}
	
func (user user) insert (){
	var err error
	db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8")
	if err != nil {
		log.Fatal("数据库打开出现了问题:", err)
		return
	}
	db0.Ping()
	if err != nil {
		log.Fatal("数据库连接出现了问题:", err)
		return
	}

	rows, err := db0.Prepare("INSERT INTO `user` ( `name`, `pwd`, `created_at`) VALUES (?, ?, ?) ")
	res, err := rows.Exec(user.Name,user.Pwd,user.CreatedAt)
	if err !=nil{
		fmt.Println("出错了",res)
		return
	}
}

		
func (user user) select2() {
	var err error
	db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8")
	if err != nil {
		log.Fatal("数据库打开出现了问题:", err)
		return
	}
	db0.Ping()
	if err != nil {
		log.Fatal("数据库连接出现了问题:", err)
		return
	}

	rows, err := db0.Query("select id, name, pwd, created_at from user")
	//rows, err := db0.Query(sqlStr)
	if err !=nil{
		fmt.Println("出错了",err)
		return
	}
	//defer rows.Close()

	for rows.Next(){

		err = rows.Scan(&user.Id,&user.Name,&user.Pwd,&user.CreatedAt)
		checkErr(err)
		fmt.Println(user.Id)
		fmt.Println(user.Name)
		fmt.Println(user.Pwd)
		fmt.Println(user.CreatedAt)
	}

}

	
func queryMultiRowDemo() {
	var err error
	db0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8")
	if err != nil {
		log.Fatal("数据库打开出现了问题:", err)
		return
	}
	db0.Ping()
	if err != nil {
		log.Fatal("数据库连接出现了问题:", err)
		return
	}

	rows, err := db0.Query("select id, name, pwd, created_at from user")
	//rows, err := db0.Query(sqlStr)
	if err !=nil{
		fmt.Println("出错了",err)
		return
	}
	//defer rows.Close()

	for rows.Next(){
		var id int
		var name string
		var pwd string
		var createdat string
		err = rows.Scan(&id,&name,&pwd,&createdat)
		checkErr(err)
		fmt.Println(id)
		fmt.Println(name)
		fmt.Println(pwd)
		fmt.Println(createdat)
	}

}
	
func checkErr(err error) {
	if err != nil {
		panic(err)
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/903142.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号