1. 程式人生 > >go操作資料庫 Go-SQL-Driver/MySQL 使用詳解

go操作資料庫 Go-SQL-Driver/MySQL 使用詳解

package main

import (
	//"fmt"
	"database/sql"
	_"github.com/Go-SQL-Driver/MySQL"
)

type userinfo struct {
	username	string
	departname	string
	created		string
}

func main(){
	db, err := sql.Open("mysql", "root:[email protected](127.0.0.1:3306)/test?charset=utf8")

	checkErr(err)

	//insert
	//stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
	//checkErr(err)

	//res, err := stmt.Exec("zhja", "研發", "2016-06-17")
	//checkErr(err)

	//id, err := res.LastInsertId()
	//checkErr(err)

	//fmt.Println(id)

	//result, err := db.Exec("INSERT INTO userinfo (username, departname, created) VALUES (?, ?, ?)","lily","銷售","2016-06-21")
	//checkErr(err)

	//ids, err := result.LastInsertId()

	//fmt.Println(ids)

	//db.Exec("DELETE FROM userinfo WHERE uid=?", 1)
	//checkErr(err)

	//stmt, err := db.Prepare("DELETE FROM userinfo WHERE uid=?")
	//stmt.Exec(2)


	//var username, departname, created string
	//err = db.QueryRow("SELECT username,departname,created FROM userinfo WHERE uid=?", 3).Scan(&username, &departname, &created)
	//fmt.Println(username)
	//fmt.Println(departname)
	//fmt.Println(created)

	rows, err := db.Query("SELECT username,departname,created FROM userinfo WHERE username=?", "zhja")
	checkErr(err)
	for rows.Next() {
		var username, departname, created string
		if err := rows.Scan(&username, &departname, &created); err == nil {
			fmt.Println(err)
		}
		fmt.Println(username)
		fmt.Println(departname)
		fmt.Println(created)
	}

	tx, err := db.Begin()
	checkErr(err)
	stmt, err1 := tx.Prepare("INSERT INTO userinfo (username, departname, created) VALUES (?, ?, ?)")
	checkErr(err1)
	_, err2 := stmt.Exec("test", "測試", "2016-06-20")
	checkErr(err2)
	//err3 := tx.Commit()
	err3 := tx.Rollback()
	checkErr(err3)
}

func checkErr(err error){
	if err != nil {
		panic(err)
	}
}

相關推薦

go操作資料庫 Go-SQL-Driver/MySQL 使用

package main import ( //"fmt" "database/sql" _"github.com/Go-SQL-Driver/MySQL" ) type userinfo struct { username string departname strin

Java操作資料庫方式二DBCP使用

##概述DBCP的全稱是:DataBase connection pool,翻譯是:資料庫連線池。在Java操作資料庫方式一JDBC使用詳解中說到直接使用JDBC非常消耗資源。為了避免頻繁關閉連結資料庫

Golang安裝mysql資料庫驅動報錯cannot find package "github.com/go-sql-driver/mysql" in any of 的解決辦法

在安裝mysql資料庫驅動時。經常發生這樣的錯誤首先確保不是自己匯入庫的拼寫錯誤。然後檢查自己的環境變數的配置。 變數名:GOROOT 環境變數值是C:\Go\  GOPATH環境環境變數值是 C:\Go\bin也許每個人go的安裝路徑不同,但是安裝路徑下的GO資料夾 和bi

mysql基本操作--資料庫SQL操作

2)MySQL中表的相關操作?(DDL) a)建立表(語法? create table) 1 create table if not exists pet( 2 id int primary key auto_increment, 3 name varchar(100) not null 4 );

mysql 資料庫Event定時任務使用(Navicat 及直接SQL語句建立)

一、使用Navicat建立Event 1、建立一個儲存過程讓定時任務Event呼叫: 開啟Navicat查詢介面: 在上述儲存過程中將自定義的sql語句填寫到BEGIN與END之間。

Go語言之項目的包結構

go語言 包結構Go語言的工作空間:通常添加到GOPATH中。 src bin pkg對於bin和pkg兩個目錄,主要影響go install/get命令,它們會將編譯結果安裝到這兩個目錄下,以實現增量編譯。環境變量用於實現GOPATH只是工具鏈和標準庫的存放位置。在使用Git等版本控制工具的時候,建議忽略

mysql乾貨——資料庫字符集和校對規則

一、什麼是字符集 字元是多個文字和符號的總稱,包括各個國家的文字、標點符號、圖形符號、數字等。字符集多個字元的集合。 字元集合種類較多,每個字符集包含的字元的個數不同。對於字符集不支援的字元,則以亂碼顯示。 常見的字符集有ASCII字符集、GBK字符集、GB2312字符集、GB18030字

Mysql:Java程式碼實現資料庫定時備份與還原

一、目的 使用java程式碼實現定時執行Mysql備份與還原。 二、思路 先寫好一個定時器,每隔多少時間執行一次備份 備份方法為,通過java向命令列寫入命令執行 首先在cmd中模擬備份,測試成功後 使用java程式碼實現資料備份功能

SQL Server中通用資料庫角色許可權的處理

SQL Server中通用資料庫角色許可權的處理詳解 前言 安全性是所有資料庫管理系統的一個重要特徵。理解安全性問題是理解資料庫管理系統安全性機制的前提。 最近和同事在做資料庫許可權清理的事情,主要是刪除一些賬號;取消一些賬號的較大的許可權等,例如,有一些有db_owner許可權,我們取消賬號的資料庫角

Go 1.9 新特性 Type Alias type MyInt2 = int

Go 1.9 新特性 Type Alias 詳解 飛雪無情 2017 年 8 月 28 日 話題:語言 & 開發架構Go 北京時間 2017.08.25,Go1.9 正式版釋出了。Go1.9 經歷了 2 個 beta,好幾個月,終於定了,釋出了正式版本。Go 1.9

Go語言實現PoW共識演算法(

PoW呢...Proof of Work ,工作量證明機制,可能這個名字大家不熟悉,說比特幣的話,大家就熟悉了吧,沒錯,PoW就是比特幣所使用的共識機制。 通過計算一個數值( nonce ),使得拼揍上交易資料後內容的 Hash 值滿足規定的上限。在節點成功找到滿足的Has

mysqlsql執行計劃

引言: 實際專案開發中,由於我們不知道實際查詢的時候資料庫裡發生了什麼事情,資料庫軟體是怎樣掃描表、怎樣使用索引的,因此,我們能感知到的就只有 sql語句執行的時間,在資料規模不大時,查詢是瞬間的,因此,在寫sql語句的時候就很少考慮到效能的問題。但是當資料規模增大,如千

mysql 資料庫Event定時任務使用(Navicat 建立)

一、使用Navicat建立Event 1、建立一個儲存過程讓定時任務Event呼叫: 開啟Navicat查詢介面:     在上述儲存過程中將自定義的sql語句填寫到BEGIN與END之間。 CREATE DEFINER=`root`@`%`

Go strings 字串處理包常用方法

golang字串相關操作主要使用strings包下相對應方法,本文主要介紹strings包下一些常用方法的使用方法。 函式:Contain(s,str string) bool 說明:查詢子串是否在指定的字串中 例項: package main import ( "fmt"

Go語言的GOPATH與工作目錄

GOPATH設定 go 命令依賴一個重要的環境變數:$GOPATH1 (注:這個不是Go安裝目錄。下面以筆者的工作目錄為說明,請替換自己機器上的工作目錄。) 在類似 Unix 環境大概這樣設定: 複製程式碼程式碼如下:     export GOPATH

mysqlsql執行計劃(非常有用)

引言: 實際專案開發中,由於我們不知道實際查詢的時候資料庫裡發生了什麼事情,資料庫軟體是怎樣掃描表、怎樣使用索引的,因此,我們能感知到的就只有 sql語句執行的時間,在資料規模不大時,查詢是瞬間的,因此,在寫sql語句的時候就很少考慮到效能的問題。但是當資料規模增大,

Laravel框架學習(使用DB門面操作資料庫 原生SQL

1、連線資料庫 Laravel中資料庫配置檔案為config/database.php,開啟該檔案,預設內容如下: <?php return [ //預設返回結果集為PHP物件例項 //具體返回結果可參考PDO.php(php P

Mysql資料庫引擎-------> MYISAM和INNODB

一、資料庫引擎   資料庫引擎是用於儲存、處理和保護資料的核心服務。利用資料庫引擎可控制訪問許可權並快速處理事務,從而滿足企業內大多數需要處理大量資料的應用程式的要求。 使用資料庫引擎建立用於聯機事務處理或聯機分析處理資料的關係資料庫。這包括建立用於儲存資料的表和用於檢視

Go 1.9 新特性 Type Alias

北京時間2017.08.25,Go1.9正式版釋出了。Go1.9經歷了2個beta,好幾個月,終於定了,釋出了正式版本。Go 1.9包含了很多改變,比如類型別名Type Alias,安全併發Map,並行編譯等,都是很大的改變,今天這篇文章主要介紹類型別名 Type Ali

SQL Server資料庫PIVOT函式的使用

PIVOT 通過將表示式某一列中的唯一值轉換為輸出中的多個列來旋轉表值表示式,並在必要時對最終輸出中所需的任何其餘列值執行聚合。UNPIVOT 與 PIVOT 執行相反的操作,將表值表示式的列轉換