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

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

尚
転載
2020-02-15 15:06:205824ブラウズ

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 までご連絡ください。