精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go語(yǔ)言操作MySQL語(yǔ)言基礎(chǔ)知識(shí)

數(shù)據(jù)庫(kù)
通常情況下,我們程序員和數(shù)據(jù)庫(kù)打交道是最多的。要然我們?cè)趺磿?huì)被稱(chēng)為碼農(nóng)呢。

前言

通常情況下,我們程序員和數(shù)據(jù)庫(kù)打交道是最多的。要然我們?cè)趺磿?huì)被稱(chēng)為碼農(nóng)呢。

存用戶(hù)信息需要數(shù)據(jù)庫(kù),存訂單需要數(shù)據(jù)庫(kù),等等等等,現(xiàn)在真是數(shù)據(jù)驅(qū)動(dòng)著發(fā)展。

但是數(shù)據(jù)庫(kù)種類(lèi)有很多,有Mysql,Oracle,SQL Server。

本篇就示例如何Go操作Mysql。

準(zhǔn)備工作

本次使用的是go mod進(jìn)行包依賴(lài)管理,還不會(huì)使用的向上爬梯子,找go mod用法。

使用的庫(kù)是第三方庫(kù)go-sql-driver/mysql。

準(zhǔn)備工作之連接數(shù)據(jù)庫(kù)

代碼

func main() {
    var username = "root"
    var password = "rootroot"
    var ip = "127.0.0.1"
    var port = "3306"
    var data = "go_mysql_demo"
    var dsn = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", username, password, ip, port, data)
    //Open只會(huì)驗(yàn)證dsb的格式是否正確,不會(huì)驗(yàn)證是否連接成功,同理,密碼是否正確也不知道
    db, err := sql.Open("mysql", dsn)
    if err != nil {
        panic(err)
}
    //關(guān)閉連接在 err 之后,因?yàn)榭赡苤苯泳痛蜷_(kāi)不成功,關(guān)閉一個(gè)沒(méi)有打開(kāi)的連接???
    defer db.Close()
    // 此時(shí)嘗試連接數(shù)據(jù)庫(kù),會(huì)判斷用戶(hù),密碼,ip地址,端口是否正確
    err = db.Ping()
    if err != nil {
        fmt.Println("連接數(shù)據(jù)庫(kù)失敗,",err)
        return
}
    //設(shè)置與數(shù)據(jù)庫(kù)建立連接的最大數(shù)目,一般不管
    db.SetMaxOpenConns(100)
    //設(shè)置連接池中的最大閑置連接數(shù),一般不管
    db.SetMaxIdleConns(50)
}

注意

  • sql.Open只會(huì)驗(yàn)證格式是否正確,不會(huì)連接數(shù)據(jù)庫(kù)。
  • db.Close在err之后,是因?yàn)榭赡艽蜷_(kāi)不成功,關(guān)閉一個(gè)沒(méi)有打開(kāi)的連接。
  • db.Ping會(huì)連接數(shù)據(jù)庫(kù),判斷用戶(hù),密碼,ip地址,端口是否正確。

準(zhǔn)備工作之創(chuàng)建表

我們創(chuàng)建一個(gè)簡(jiǎn)單的用戶(hù)表。

CREATE TABLE `userinfo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL,
  `phone` char(11) DEFAULT NULL,
  `address` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

準(zhǔn)備工作之創(chuàng)建結(jié)構(gòu)體

假設(shè)上述工作都完成了啊。

不知道有沒(méi)有想過(guò),我們查詢(xún)的數(shù)據(jù),存成啥?,字符串?map?切片?,似乎都不是太好。

只有結(jié)構(gòu)體是最清晰的,最好認(rèn)識(shí)的。

結(jié)構(gòu)體

type Userinfo struct {
    Id      int64  `json:"id"`
    Name    string `json:"name"`
    Phone   string `json:"phone"`
    Address string `json:"address"`
}

查詢(xún)單條

單條查詢(xún)使用QueryRow方法。

代碼

//查詢(xún)單條
sqlStr := "SELECT id,`name`,phone,address from userinfo where id = ?;"
var user Userinfo
/*
    QueryRow 第二個(gè)參數(shù)可以接收多個(gè)參數(shù),同理,sqlStr可以有多個(gè) ?占位符 進(jìn)行匹配
    QueryRow 之后必須調(diào)用Scan方法進(jìn)行數(shù)據(jù)綁定,進(jìn)行數(shù)據(jù)庫(kù)鏈接釋放
*/
err = db.QueryRow(sqlStr, 1).Scan(&user.Id, &user.Name, &user.Phone, &user.Address)
if err != nil {
    fmt.Println("查詢(xún)失敗", err)
    return
}
fmt.Println(user)

執(zhí)行結(jié)果

查詢(xún)多條

多行查詢(xún)使用Query。

代碼

//查詢(xún)多條
sqlStr := "SELECT id,`name`,phone,address from userinfo where id >= ?"
//參數(shù)同 QueryRow
rows, err := db.Query(sqlStr, 1)
if err != nil {
    fmt.Println("查詢(xún)失敗:", err)
    return
}
// 此處使用rows釋放所有鏈接
defer rows.Close()
//循環(huán)整理所有數(shù)據(jù)
var userList = make([]Userinfo, 0, 10)
for rows.Next() {
var user Userinfo
err = rows.Scan(&user.Id, &user.Name, &user.Phone, &user.Address)
if err != nil {
    fmt.Println("綁定數(shù)據(jù)失敗", err)
    return
}
userList = append(userList, user)
}
fmt.Println(userList)

執(zhí)行結(jié)果

插入數(shù)據(jù)

插入數(shù)據(jù)需要用到Exec。

代碼
//插入數(shù)據(jù)
sqlStr := "INSERT into userinfo(name,phone,address) values(?,?,?);"
result, err := db.Exec(sqlStr, "吳彥祖", 555, "不知道哪的")
if err != nil {
    fmt.Println("插入失敗", err)
    return
}
//受影響的行數(shù)
row_affect, err := result.RowsAffected()
if err != nil {
    fmt.Println("受影響行數(shù)獲取失敗:", err)
    return
}
fmt.Println("受影響的行數(shù):", row_affect)
lastId, err := result.LastInsertId()
if err != nil {
    fmt.Println("新增行id獲取失敗:", err)
    return
}
fmt.Println("新增行id:", lastId)
fmt.Println("插入成功")

執(zhí)行結(jié)果

Mysql

更新數(shù)據(jù)

更新和添加差不多,用的都是Exec。

代碼

//更新數(shù)據(jù)
sqlStr := `UPDATE userinfo set name=? where id=?;`
result, err := db.Exec(sqlStr, "吳彥祖666", 3)
if err != nil {
    fmt.Println("更新失敗", err)
    return
}
//受影響的行數(shù)
row_affect, err := result.RowsAffected()
if err != nil {
    fmt.Println("受影響行數(shù)獲取失敗:", err)
    return
}
fmt.Println("受影響的行數(shù):", row_affect)
fmt.Println("更新成功")

執(zhí)行結(jié)果

Mysql

刪除數(shù)據(jù)

刪除數(shù)據(jù)用的還是Exec。

代碼

//刪除數(shù)據(jù)
sqlStr := "delete from userinfo where id = ?;"
result, err := db.Exec(sqlStr, 3)
if err != nil {
    fmt.Println("刪除失敗", err)
    return
}
//受影響的行數(shù)
row_affect, err := result.RowsAffected()
if err != nil {
    fmt.Println("受影響行數(shù)獲取失敗:", err)
    return
}
fmt.Println("受影響的行數(shù):", row_affect)
fmt.Println("刪除成功")

執(zhí)行結(jié)果

Mysql

事物

物,這個(gè)用的就比較多了,通常用在關(guān)鍵的場(chǎng)景。

尤其是轉(zhuǎn)賬,張三-10塊,李四+10塊,這個(gè)動(dòng)作動(dòng)作是要在一起完成的。

如果任何一個(gè)失敗了,就要恢復(fù)上一次的狀態(tài)。

我們通常也叫這個(gè)操作叫做原子操作,要成功,都成功,要完蛋,都完蛋。

新建表

CREATE TABLE `bill` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(8) NOT NULL,
  `money` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

表數(shù)據(jù)

張三和李四都剩余100塊

Go Mysql 關(guān)于事物相關(guān)方法

Go 關(guān)于事物有三個(gè)方法

  • Begin()開(kāi)始事物。
  • Commit()提交事物。
  • Rollback()失敗回滾。

模擬轉(zhuǎn)賬:張三-10塊,李四+十塊

代碼

func main() {
    //事物
    //開(kāi)啟事物
    tx, err := db.Begin()
    if err != nil {
        //釋放事物
        if tx != nil {
            tx.Rollback()
        }
        fmt.Println("事物開(kāi)啟失敗")
        return
}


    張三減10塊Sql := `UPDATE bill set mnotallow=money - 10 where name = ?;`
    result, err := tx.Exec(張三減10塊Sql, "張三")
    if err != nil {
        //有錯(cuò)誤表示更是失敗,回滾原來(lái)狀態(tài)
        tx.Rollback()
        fmt.Println(err)
        return
}
    張三受影響行數(shù), err := result.RowsAffected()
    if err != nil {
        tx.Rollback() // 回滾
        return
}


    李四加10塊Sql := `UPDATE bill set mnotallow=money + 10 where name = ?;`
    result, err = tx.Exec(李四加10塊Sql, "李四")
    if err != nil {
        //有錯(cuò)誤表示更是失敗,回滾原來(lái)狀態(tài)
        tx.Rollback()
        fmt.Println(err)
        return
}
    李四受影響行數(shù), err := result.RowsAffected()
    if err != nil {
        tx.Rollback() // 回滾
        return
}
    //都等于1表示成功,可以提交事務(wù),修改數(shù)據(jù)
    if 張三受影響行數(shù)==1 && 李四受影響行數(shù)==1{
        //提交事務(wù)
        fmt.Println("提交事務(wù)")
        tx.Commit()
    }else{
        //有一個(gè)!=1表示沒(méi)有更新成功,可能用戶(hù)不存在
        fmt.Println("失敗了,事物回滾了")
        tx.Rollback()
}
    fmt.Println("事物執(zhí)行成功")
}

執(zhí)行結(jié)果

Mysql

一加一減

假如出錯(cuò)了

Mysql

如果使用事物,出錯(cuò)了數(shù)據(jù)還是沒(méi)變。

總結(jié)

次主要講述了Go如何操作Mysql,如何進(jìn)行增刪改查,最后還講了以下什么是事物,如何操作事物。

當(dāng)然,這種是最原始的方法,過(guò)程有些繁瑣,了解入門(mén)就好,后面還有更方便的方法。

責(zé)任編輯:華軒 來(lái)源: Go語(yǔ)言進(jìn)階學(xué)習(xí)
相關(guān)推薦

2021-01-23 12:47:19

MySQL數(shù)據(jù)庫(kù)Go語(yǔ)言

2010-01-19 14:45:35

C++語(yǔ)言

2020-07-02 16:20:36

MySQLCURD數(shù)據(jù)庫(kù)

2011-07-21 17:33:27

JAVA

2011-07-21 17:18:52

java

2011-07-22 10:02:07

java

2011-07-22 10:38:04

java

2011-07-22 09:43:37

java

2011-07-21 17:45:02

java

2023-12-30 10:22:57

Go語(yǔ)言函數(shù)開(kāi)發(fā)

2021-04-19 08:35:44

PythonPython語(yǔ)言Python基礎(chǔ)

2010-04-13 18:24:14

Unix操作系統(tǒng)

2021-01-27 10:01:46

MySQL數(shù)據(jù)庫(kù)SQLX

2023-07-03 00:44:26

Go語(yǔ)言MySQL

2010-04-07 15:59:29

Unix操作系統(tǒng)

2025-05-19 10:00:00

MySQL數(shù)據(jù)庫(kù)InnoDB

2018-03-12 22:13:46

GO語(yǔ)言編程軟件

2024-12-30 00:38:23

Go語(yǔ)言微服務(wù)

2023-01-31 08:48:49

Go語(yǔ)言文件

2021-06-09 09:06:52

Go語(yǔ)言算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩在线观看免费| 亚洲韩国精品一区| 91在线直播亚洲| 久久黄色免费网站| 在线视频亚洲专区| 欧美夫妻性生活| 超薄肉色丝袜足j调教99| 视频二区在线观看| 麻豆精品一区二区av白丝在线| 天堂网av成人| 久久精品免视看| 91香蕉视频在线下载| 日本少妇性高潮| 日韩久久精品| 日韩电影中文字幕av| 久久九九国产视频| av资源网在线播放| 最新不卡av在线| 欧洲精品亚洲精品| 丰满少妇在线观看bd| 美国十次了思思久久精品导航| 亚洲2020天天堂在线观看| 性生交大片免费全黄| 自拍偷拍欧美一区| 亚洲风情亚aⅴ在线发布| 亚洲午夜激情影院| 欧美暴力调教| 色999日韩国产欧美一区二区| 成人免费在线视频播放| 日韩免费网站| 国产精品免费av| 免费成人av网站| 欧美 中文字幕| 国产综合久久久久久鬼色| 国产91精品在线播放| 国产精品黄色网| 一区二区亚洲| 欧美国产精品va在线观看| 999精品视频在线观看播放| 教室别恋欧美无删减版| 亚洲男人天堂九九视频| 国产精品无码毛片| 午夜欧洲一区| 亚洲免费福利视频| 亚洲精品中文字幕在线播放| 人人妻人人爽人人澡人人精品 | 久久av高潮av| 九七久久人人| 亚洲色图清纯唯美| 老汉色影院首页| 国产网站在线免费观看| 国产精品久久看| 亚洲激情图片| 尤物视频在线免费观看| 中文无字幕一区二区三区| 日本免费高清一区| caoporn国产精品免费视频| 国产三区在线成人av| 日韩欧美在线一区二区| 成人好色电影| 中文字幕一区二区日韩精品绯色| 亚洲一区二区三区乱码| 免费成人黄色| 亚洲精品国产视频| 日韩精品视频在线观看视频| 99热99re6国产在线播放| 疯狂做受xxxx高潮欧美日本| 成人一级片网站| 蜜桃视频成人m3u8| 欧美精品久久99| 国产精品一区二区无码对白| 欧美激情极品| 中文欧美日本在线资源| 日本一级片免费| 国产精品theporn| 羞羞色国产精品| 五月婷婷激情视频| 激情综合色丁香一区二区| 岛国视频一区| 可以在线观看的av网站| 成人免费在线播放视频| 97免费视频观看| 日韩天堂在线| 日韩欧美国产一二三区| 亚洲一区二区乱码| 欧美一级精品| 欧美激情第1页| 亚洲综合久久网| 国产尤物一区二区在线| 国产在线观看一区| 韩国三级av在线免费观看| 亚洲精品国产a| 国产日韩一区二区在线| 粉嫩一区二区三区在线观看| 亚洲精品电影网在线观看| 极品人妻videosss人妻| 精品成人国产| 成人免费淫片视频软件| 香蕉国产在线视频| 亚洲色图在线看| 亚洲中文字幕无码不卡电影| 国产一区二区三区| 亚洲一品av免费观看| 欧美成人一二三区| 日本伊人午夜精品| 国产乱码精品一区二区三区日韩精品| 国产免费av高清在线| 亚洲一区精品在线| 爱豆国产剧免费观看大全剧苏畅 | 国精产品一区一区三区四川| 精品国产伦一区二区三区免费| 日本二区在线观看| 亚洲区国产区| 亚洲xxxx在线| 麻豆av在线导航| 91搞黄在线观看| 少妇激情一区二区三区视频| 亚洲欧美色图| 国产精品青青在线观看爽香蕉| 亚洲 美腿 欧美 偷拍| 亚洲码国产岛国毛片在线| 成年人在线观看视频免费| 日韩极品少妇| 国内偷自视频区视频综合| 99热这里只有精品在线观看| 中文字幕亚洲在| 精品久久久噜噜噜噜久久图片| 日韩福利视频一区| 韩日欧美一区二区| 亚洲精品一区二区三区四区| 亚洲欧美精品午睡沙发| 特黄视频免费观看| 日本电影一区二区| 国产精品第七十二页| 天天舔天天干天天操| 精品久久久国产| 李丽珍裸体午夜理伦片| 狠久久av成人天堂| 成人做爰66片免费看网站| 视频在线这里都是精品| 欧美一区二区三区播放老司机| 亚洲一区电影在线观看| 麻豆精品久久精品色综合| 亚洲国产一区二区精品视频 | 久久精品国产亚洲AV成人婷婷| 久久久久中文| 日韩久久精品一区二区三区| 成人看片网页| 日韩亚洲精品视频| 国产精品一区二区av白丝下载 | av在线免费不卡| 拔插拔插海外华人免费| 欧美18xxxx| 欧洲中文字幕国产精品| 国产中文在线| 欧美日韩视频专区在线播放| av在线免费播放网址| 韩国v欧美v日本v亚洲v| 日韩视频 中文字幕| 中文字幕日韩高清在线| 97成人精品区在线播放| 久久经典视频| 91精选在线观看| 男女免费视频网站| 91在线小视频| 爆乳熟妇一区二区三区霸乳| 国产精品久久久乱弄| 亚洲一区二区中文字幕| av最新在线| 在线丨暗呦小u女国产精品| 6—12呦国产精品| 一区二区三区免费网站| 久久一区二区电影| 男女性色大片免费观看一区二区 | 国产aaaaaaaaa| 国产精品一区二区久久精品爱涩| 僵尸世界大战2 在线播放| 精品不卡一区| 亚洲最大成人免费视频| 涩涩涩视频在线观看| 日韩中文av在线| 黄色aaa大片| 欧美亚洲国产一卡| 久久久精品一区二区涩爱| 久久综合狠狠综合| 亚洲天堂国产视频| 国产日韩1区| 精品少妇人妻av一区二区| 欧美大胆a级| 91热精品视频| 无遮挡爽大片在线观看视频| 久久精品国产一区| 欧美xxx.com| 日韩久久久久久| 蜜臀99久久精品久久久久小说| 亚洲精选视频在线| xxxx日本黄色| av成人动漫在线观看| 手机精品视频在线| 日韩二区三区四区| 久久这里只有精品23| 91亚洲国产| 日韩欧美亚洲日产国| 久久综合五月婷婷| 亚洲一区二区免费在线| 成人看片网页| 欧美一区二区三区免费观看| av网站在线看| 一区二区三区四区精品| 人妻少妇精品无码专区久久| 91麻豆精品国产91久久久久久久久 | 自拍偷拍你懂的| 久久综合九色综合欧美就去吻| 久久无码专区国产精品s| 另类小说综合欧美亚洲| 男女av免费观看| 国产欧美在线| www.99热这里只有精品| 亚洲在线久久| 少妇熟女一区二区| 日韩国产一区二区| 日本视频一区二区在线观看| 少妇高潮一区二区三区| 国产精品久久久一区二区三区| gogo大尺度成人免费视频| 国产精品一区二区性色av| 久久久久久久| 2021国产精品视频| 69av成人| 性欧美暴力猛交69hd| h片在线观看视频免费免费| 欧美激情精品久久久久久久变态| 黄色免费网站在线观看| 久久精品国产综合| 黄网站视频在线观看| 久久久精品在线| 黄色大片在线播放| 久久亚洲精品小早川怜子66| 久草中文在线观看| 蜜臀久久99精品久久久久久宅男 | 久草福利在线| 亚洲系列中文字幕| 9色在线视频网站| 丝袜情趣国产精品| 日韩专区在线| 欧美大码xxxx| av影视在线看| 欧美一区二区大胆人体摄影专业网站| 成人免费网站视频| 国产成人精品在线| 中韩乱幕日产无线码一区| 国产欧美日韩中文| 九九99久久精品在免费线bt| 99精彩视频| 欧美亚洲国产日韩| 日本高清不卡一区二区三| 成人精品天堂一区二区三区| 亚洲欧美精品| 欧美日韩国产一区精品一区| 国产91沈先生在线播放| 日韩午夜黄色| 日韩免费高清在线| 国产一区中文字幕| 亚洲一区和二区| 久久这里只有精品6| 很污很黄的网站| 亚洲无人区一区| 区一区二在线观看| 777久久久精品| 深爱激情五月婷婷| 中日韩午夜理伦电影免费| mm1313亚洲国产精品美女| 久久久爽爽爽美女图片| 婷婷激情一区| 亚洲999一在线观看www| 欧美挤奶吃奶水xxxxx| 五月天久久狠狠| 欧美fxxxxxx另类| 日韩黄色片视频| 国内成人自拍视频| 人妻丰满熟妇av无码久久洗澡| 中文字幕免费在线观看视频一区| 精品自拍偷拍视频| 欧美性少妇18aaaa视频| 国产乱码精品一区二三区蜜臂| 亚洲精品成人久久电影| 欧洲日本在线| 55夜色66夜色国产精品视频| 亚洲精品tv| 久久伊人一区二区| 欧美黄在线观看| 三级在线免费看| 99热国产精品| 少妇视频一区二区| 日韩欧美中文第一页| 99热这里只有精| 中文亚洲视频在线| 神马午夜在线视频| 成人xxxxx色| 色综合咪咪久久网| 成人在线观看黄| gogo大胆日本视频一区| 九九精品视频免费| 色婷婷综合久久| 欧美一区二区黄片| 久热精品视频在线免费观看| 国产 日韩 欧美一区| 精品国产乱码久久久久久久软件| 亚洲破处大片| 色国产在线视频| 久久女同互慰一区二区三区| 久久久久免费看| 4438x成人网最大色成网站| 国产在线观看网站| 亲子乱一区二区三区电影| 国产精品自在| av 日韩 人妻 黑人 综合 无码| 男女男精品视频| 国产123在线| 一本久道中文字幕精品亚洲嫩| 色一情一乱一乱一区91av| 美女精品久久久| 精品视频一二| 中文字幕综合在线观看| 看片的网站亚洲| 337人体粉嫩噜噜噜| 91久久精品网| 激情小视频在线观看| 欧美一性一乱一交一视频| 免费日韩一区二区三区| 日韩伦理在线免费观看| 成人美女视频在线观看18| 久久网免费视频| 欧美大片日本大片免费观看| 成人高清免费在线| 91人成网站www| 欧美成人综合| 亚洲国产精品狼友在线观看| 亚洲综合无码一区二区| www.色呦呦| 欧美激情免费看| 成人资源在线播放| r级无码视频在线观看| 不卡视频在线看| 一级片中文字幕| 亚洲欧美日韩精品久久奇米色影视| 五月天国产在线| 日本精品一区二区三区高清 久久| 日韩电影网1区2区| 妖精视频在线观看免费| 欧美久久久久久久久久| 黄色网址在线免费播放| 91视频最新| 亚洲激情不卡| 爱爱免费小视频| 欧美亚洲国产bt| gogo在线观看| 国产一区免费在线| 三级精品在线观看| 久久精品一区二区三区四区五区| 欧美一区二区三区色| 黄色影院在线看| 欧美精品七区| 久久se这里有精品| 精品97人妻无码中文永久在线| 精品99久久久久久| 成人美女黄网站| 欧美日韩在线免费观看视频| 成人午夜私人影院| 黄色污污网站在线观看| 久久精品国产亚洲一区二区| 国产精品毛片视频| 人人干人人视频| 一区二区三区在线视频播放| 偷拍自拍在线| 成人日韩在线电影| 中文精品在线| а天堂中文在线资源| 欧美精品一区二区三区在线| 成人av三级| av 日韩 人妻 黑人 综合 无码| 91免费版在线看| 国产又大又长又粗| 青青久久av北条麻妃黑人| 亚洲色图网站| 三上悠亚影音先锋| 日韩精品一区二| 国产精品天堂蜜av在线播放| 国产 日韩 亚洲 欧美| 国产欧美va欧美不卡在线| 亚洲国产剧情在线观看| 国产精品久久久久av免费| 好吊视频一区二区三区四区| 性猛交娇小69hd| 亚洲激情中文字幕| 91精品麻豆| 国产福利影院在线观看| 亚洲国产视频一区| 日本综合在线| 九九九久久久|