Go (Golang とも呼ばれる) は、Google が開発したガベージ コレクション機能を備えた、静的に強く型付けされ、コンパイルされた同時プログラミング言語です。以下、go 入門チュートリアル のコラムから mysql に関する操作をいくつか紹介します。
go は mysql データベースを操作します。使用されるライブラリは go-sql-driver/mysql です。直接インストール go get
go get -u github.com/go-sql-driver/mysql
sql.DB
DB タイプで使用できる関数は次のとおりです:
1. Query(c string, args Interface{}…) (*Rows, error)、SELECT ステートメントでよく使用されます
2. Exec(c string, args Interface{}…) (*Rows, error)、一般的に UPDATE および INSERT で使用されます
3. Prepare(c string) (*Stmt, error)、他のステートメントも使用できます。上記のステートメントを実行し、Stmt ポインターを返すために使用できます。
sql.Stmt
Stmt は、データベース ステートメントの操作を実行できる準備済みステートメントです。一般的に使用される関数は次のとおりです:
Exec(args Interface{} …) (Result, error)、パラメータを指定して準備されたステートメントを実行し、ステートメントの合計結果を返します
//... stmt, err := db.Perpare("INSERT INTO User(user,pwd) VALUES (?, ?)") if err != nil { panic(err) } defer stmt.Close() _, err := stmt.Exec("laoli", "123456") if err != nil { panic(err) } //... //... stmt, err := db.Perpare("DELETE FROM User") if err != nil { panic(err) } defer stmt.Close() _, err := stmt.Exec() if err != nil { panic(err) }
Query(args Interface{} …) ( *Rows, error) は、パラメータを指定して準備されたステートメントを実行し、行の結果を返します。たとえば、SELECT 操作はこの関数で呼び出す必要があります。
sql.Rows
Rows は SQL ステートメントの実行によって返されるテーブルです。行はキャッシュを占有します。Rows.Next() で false が返された場合、キャッシュは自動的に解放されます。
ソース コードを見てください:
// 源码 func (rs *Rows) Next() bool { var doClose, ok bool withLock(rs.closemu.RLocker(), func() { doClose, ok = rs.nextLocked() }) if doClose { rs.Close() //在这里释放掉了 } return ok }
例:
package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) var db *sql.DB func mian() { db = sql.Open("mysql", "root:123456@tcp(127.0.0.1)/test") if err := db.Ping(); err != nil { panic(err) } } func Insert() { _, err := db.Exec("INSERT INTO User(user, pwd) VALUE (?, ?)", "laowang", "123456") if err != nil { panic(err) } } func SelectRow() { rows, err := db.Query("SELECT * FROM User WHERE user=?", "laowang") if err != nil { panic(err) } //defer rows.Close() //如果后面代码没有循环调用rows.Next(),就需要手动在这里释放一下,不然会一直占用缓存 var user string var pwd string for rows.Next() { row.Scan(&user, &pwd) } print(user, pwd) }
Go 言語の詳細については、php 中国語の go 言語チュートリアル 列に注目してください。 Webサイト。
以上がGolang mysql操作入門の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。