インストールの依存関係
2つの主な使用mysqlのパッケージを使用して動作するように移動します
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
最初のパッケージは、Goはデータベースパッケージが付属しています。しかし、唯一の最初のものは十分ではありません、多くのデータベースには似ていますが、ありますが、違いがあります。ドライバはパッケージできMyqslする必要がありますので、今回は、MySQLを使用する必要があります。
第二のパッケージは、MySQLドライバパッケージに使用され、パッケージはあなたがダウンロードする必要があり、標準ライブラリ囲碁の内側ではありません。
これは、次のコマンドでインストールすることができます。
go get -u github.com/go-sql-driver/mysql
より多くの命令がダウンロードできない場合は、直接行くことができgithub.com/go-sql-driver/mysqlインストールを抽出するには覚えて、ダウンロード(GoPath / SRC /ベンダー、およびそのパッケージディレクトリに同じ変更が覚えていない場合は、上記のように確保するために)ディレクトリを。
その後、匿名をインポートする必要があり、私は別のブログ記事で、匿名パッケージに更新します。
データベース操作
DBはデータベースを表すためにグローバル変数を定義します。その後、我々は2つのステップがあります。
データベースの初期化(接続データベース)
// 定义一个全局对象db
var db *sql.DB
// 定义一个初始化数据库的函数,也就是连接数据库
func initDB() (err error) {
// DSN:Data Source Name
//dsn := "user:password@tcp(127.0.0.1:3306)/dbname" // 一般语句
dsn := "root:123456@tcp(127.0.0.1:3306)/runoob" // 这是我电脑上的数据库,请根据实际情况自行修改
// 不会校验账号密码是否正确
// 注意!!!这里不要使用:=,我们是给全局变量赋值,然后在main函数中使用全局变量db
db, err = sql.Open("mysql", dsn)
if err != nil {
return err
}
// 尝试与数据库建立连接(校验dsn是否正确)
err = db.Ping()
if err != nil {
return err
}
return nil
}
データベースの操作:
func main() {
err := initDB() // 调用输出化数据库的函数
if err != nil {
fmt.Printf("init db failed,err:%v\n", err)
return
}
// 将runoob1_tb1 这个表中的数据全部读出来
rows, err := db.Query("SELECT * FROM runoob_tb1")
// 也可以使用条件选择
//id := 2
//rows, err := db.Query("SELECT * FROM runoob_tb1 WHERE id=?", id) //
//
if err != nil {
log.Fatalln(err)
}
defer rows.Close()
for rows.Next() {
// 取多少个变量就定义多少个变量
var id int
var author string
var title string
var date string
if err := rows.Scan(&id, &title, &author, &date); err != nil {
log.Fatalln(err)
}
fmt.Println(id, title, author, date)
}
if err := rows.Err(); err != nil {
log.Fatalln(err)
}
}
業績
D:\编程语言和环境\Go\src\studygo\day07\mysql\demo1>go run main.go
1 学习PHP 菜鸡教程 2020-02-13
2 学习MYSQL 菜鸟教程 2020-02-13
3 学习JAVA RUNOOB.COM 2020-02-13
5 学习C++ RUNOOB.COM 2020-02-13
7 学习go kyda 2020-02-16
結果は、コンソールを見て:
だけでなく、私たちは操作が成功した説明として。いくつかの他はほとんど同じです。上部のプログラムに若干の変更のみ。
本論文で参照します。https://www.liwenzhou.com/posts/Go/go_mysql/
あなたは私が缶を書くと考えられる場合は、その後、私の公共の数に焦点を当て: