欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

go連接mysql創建多對多

林玟書2年前11瀏覽0評論

go語言是一門非常強大的語言,它在多個領域都有廣泛的應用。其中,在與數據庫的連接和操作方面,它也有著非常豐富的功能和優秀的表現。

在與mysql數據庫進行交互時,go語言提供了多種選擇。比如我們可以使用原生的mysql driver,還可以使用許多開源的第三方庫。而在這篇文章中,我們將介紹如何使用go連接mysql并創建多對多關系。

func main() {
	db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/test")
	if err != nil {
log.Fatal(err)
	}
	defer db.Close()
_, err = db.Exec("CREATE TABLE IF NOT EXISTS user (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL)")
	if err != nil {
log.Fatal(err)
	}
_, err = db.Exec("CREATE TABLE IF NOT EXISTS course (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL)")
	if err != nil {
log.Fatal(err)
	}
_, err = db.Exec("CREATE TABLE IF NOT EXISTS user_course (user_id INT UNSIGNED NOT NULL, course_id INT UNSIGNED NOT NULL, PRIMARY KEY(user_id, course_id))")
	if err != nil {
log.Fatal(err)
	}
insertUser(db, "張三")
	insertUser(db, "李四")
	insertCourse(db, "語文")
	insertCourse(db, "數學")
	insertUserCourse(db, 1, 1)
	insertUserCourse(db, 1, 2)
	insertUserCourse(db, 2, 1)
	insertUserCourse(db, 2, 2)
rows, err := db.Query("SELECT u.name, c.name FROM user u, course c, user_course uc WHERE u.id = uc.user_id AND c.id = uc.course_id")
	if err != nil {
log.Fatal(err)
	}
	defer rows.Close()
for rows.Next() {
var userName string
var courseName string
err := rows.Scan(&userName, &courseName)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s選了%s\n", userName, courseName)
	}
}

以上就是我們在go語言中連接mysql并創建多對多關系的代碼。其中,我們創建了user、course、user_course三張表,分別用于存儲用戶、課程以及用戶選課關系。

再次運行程序,我們可以看到控制臺輸出:

張三選了語文
張三選了數學
李四選了語文
李四選了數學

這表明我們成功地建立了多對多關系,并從數據庫中查詢出了正確的結果。

總之,通過上述的代碼,我們可以使用go語言連接mysql,并創建多對多關系。這為我們在實際的開發過程中帶來了很大的便利。如果您對go語言和mysql的連接還不太了解,可以試著動手實踐一下,相信您一定會有收獲。