ホームページ > バックエンド開発 > Golang > Go言語でMySQLデータベースを操作する方法

Go言語でMySQLデータベースを操作する方法

リリース: 2020-02-15 15:06:20
転載
5927 人が閲覧しました

Go 言語は、シンプルで信頼性が高く効率的なソフトウェアを簡単に構築できるオープンソース プログラミング言語です。 go 言語チュートリアル コラムでは、go 言語で MySQL データベースを操作する方法を紹介します。

Go言語でMySQLデータベースを操作する方法

#MySQL データベースを操作するための Go 言語:

MySQL を操作するための Go ドライバーをインストールします

go get -u -v github.com/go-sql-driver/mysql
ログイン後にコピー

go MySQL データベースの操作

ガイド パッケージ

import _ "github.com/go-sql-driver/mysql"
ログイン後にコピー

プログラムはデータベースを操作するときにデータベース/SQL を使用するだけでよく、データベース ドライバーを直接使用する必要はありません。プログラムはデータベース ドライバーをインポートします。このパッケージの名前をアンダースコアに設定します。

sql.Open() メソッドを使用してデータベースに接続します。open() メソッドの最初のパラメータはドライバ名で、2 番目のパラメータは接続文字列です。形式は次のとおりです: username:password@ tcp(ip :port)/database name? エンコーディング メソッドの場合、戻り値は接続オブジェクトとエラー情報です (例:

conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
defer conn.Close()//随手关闭数据库是个好习惯
ログイン後にコピー

データベース操作を実行します)。

データベースの主なメソッドは次のとおりです。

Query は、Select ステートメントなどのデータベースのクエリ操作を実行します。戻りデータ型は *Rows

QueryRow です。データベースを実行して、最大 1 つのデータを返します。返されるデータ型は *Row

Exec です。実行番号は、削除操作などの行のデータベース ステートメントを返しません

PrePareデータベースクエリ操作を準備し、後続のクエリまたは実行のために *Stmt を返します。この Stmt は複数回実行することも、同時に実行することもできます。

Create table

実行関数は次のとおりです。

func (db *DB) Exec(query string, args ...interface{}) (Result, error)
ログイン後にコピー

テーブルの作成方法は次のとおりです。 table も Exec() 、パラメータは SQL ステートメント、戻り値は結果セットとエラー メッセージです。

結果には次のものが含まれます:

type Result interface {
	LastInsertId() (int64, error)
	RowsAffected() (int64, error)
}
ログイン後にコピー

RowsAffected() 関数。行数分の SQL が正常に実行された後、データベースへの影響を取得します。

res ,err:= conn.Exec("create table user(name VARCHAR(40),pwd VARCHAR(40))")
beego.Info("create table result=",res.,err)
ログイン後にコピー

操作の追加、削除、および変更

Exec() は、操作ステートメントの追加、削除、および変更を実行するために使用されます。パラメーターは SQL ステートメントです。 value は結果セットとエラー情報であり、結果を比較することで判定を設定し、実行結果情報を取得します。データの挿入を例にとると、コードは次のとおりです。

res,_:=stmt.Exec("insert user(name,pwd) values (?,?)","tony","tony")
count,_:=res.RowsAffected()
this.Ctx.WriteString(strconv.Itoa(int(count)))
ログイン後にコピー

クエリ操作

使用される関数は、Query() と QueryRow です。

func (db *DB) QueryRow(query string, args ...interface{}) *Row
func (db *DB) Query(query string, args ...interface{}) (*Rows, error)
ログイン後にコピー

QueryRow を使用して単一行を実装します。 Query は、SQL ステートメントのクエリ結果がレコードであることを判断できます。 Scan() 関数を使用して、結果のフィールド値を順番に抽出します。

Query を使用して複数行データ クエリを実装します。戻り値はクエリ結果セットとエラー情報です。 next関数とScan関数を組み合わせてデータを取り出します

コードは次のとおりです:

単一行クエリ:

row:= conn.QueryRow(`select * from user where userName = "wyj"`)
var name,pwd string
row.Scan(&name,&pwd)
beego.Info(name,"------",pwd)
ログイン後にコピー

複数行クエリ:

data ,err :=conn.Query("SELECT name from user")
	var userName string
	if err == nil{
		for data.Next(){
			data.Scan(&userName)
			beego.Info(userName)
		}
	}
ログイン後にコピー

すべてのコード

//连接数据库
conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/testtest?charset=utf8")
	if err != nil{
		beego.Info("链接失败")
	}
	defer conn.Close()
//建表
	res ,err:= conn.Exec("create table user(userName VARCHAR(40),passwd VARCHAR(40))")
	beego.Info("create table result=",res,err)
//插入数据
    res,err =conn.Exec("insert user(userName,passwd) values(?,?)","itcast","heima")
	beego.Info(res,err)
//单行查询
	row:= conn.QueryRow(`select * from user where userName = "wyj"`)
	var name,pwd string
	row.Scan(&name,&pwd)
	beego.Info(name,"------",pwd)
//多行查询
	data ,err :=conn.Query("SELECT userName from user")
	var userName string
	if err == nil{
		for data.Next(){
			data.Scan(&userName)
			beego.Error(userName)
		}
	}
ログイン後にコピー

go 言語の知識について詳しくは、php 中国語 Web サイトの

go 言語チュートリアル 列に注目してください。

以上がGo言語でMySQLデータベースを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート