午夜勾魂曲-午夜福利自怕-午夜福利在线观看6080-午夜福利院电影-国产精品毛片AV久久97-国产精品麻豆高潮刺激A片

每天學習一個Android中的常用框架——1.Litepal

2020-4-8    seo達人

文章目錄

1.簡介

2.特性

3.演示

3.1 集成

3.2 配置

3.3 創建數據庫

3.4 升級數據庫

3.5 插入數據

3.6 查詢數據

3.7 更新數據

3.8 刪除數據

4.版本異同

5.源碼地址

1.簡介

Litepal——作為帶我入行的第一本教學書籍《Android第一行代碼》的作者郭霖老師所寫出來的持久化框架,幾乎算是我接觸Android世界之后第一個遇到的框架,故將該框架列為一系列學習框架博客的首位。

根據Litepal的GitHub主頁:Litepal,可以看到該框架的一些簡介:



LitePal is an open source Android library that allows developers to use SQLite database extremely easy. You can finish most of the database operations without writing even a SQL statement, including create or upgrade tables, crud operations, aggregate functions, etc. The setup of LitePal is quite simple as well, you can integrate it into your project in less than 5 minutes.



事實上,正如這段簡介所說,集成Litepal相當簡單,不需要超過五分鐘時間。使用Litepal,也適合對sql語言還不熟悉的開發者快速上手。



2.特性

讓我們繼續瀏覽Litepal的GitHub主頁,可以發掘Litepal的一些特性:



Using object-relational mapping (ORM) pattern.

Almost zero-configuration(only one configuration file with few properties).

Maintains all tables automatically(e.g. create, alter or drop tables).

Multi databases supported.

Encapsulated APIs for avoiding writing SQL statements.

Awesome fluent query API.

Alternative choice to use SQL still, but easier and better APIs than the originals.

More for you to explore.

用大白話來描述的話,可以列舉如下:



Litepal使用了ORM(對象關系映射)模型

Litepal幾乎是無配置的,僅需極少的配置文件

Litepal幾乎包括所有的CRUD操作,也支持多張表格的操作

Litepal可以僅調用api進行CRUD操作而避免編寫sql語句

總之,看到Litepal具有這么多良好的特性,讀者是否心動了呢。理論的話不多說,我們現在就開始正式地使用Litepal進行數據庫的相關操作

PS:如果有曾經學習過Java的ORM框架——Mybatis的讀者,應該不會對Litepal的使用太陌生,因為它們都使用了xml文件進行相應的配置



3.演示

3.1 集成

現在Android框架的集成相比于IDE還為ADT的時代,要方便了許多。原因是現在的主流IDE是Android Studio,而AS默認使用了Gradle進行版本的配置管理,這讓集成框架變得簡單了許多。

在build.gradle下,添加以下語句,然后重新sync,即可將Litepal集成到你的項目中:



implementation 'org.litepal.android:java:3.0.0'

1

當然,目前Android的主流開發語言,除了Java之外,還有Kotlin,Litepal同樣具有Kotlin版本的(這里的演示僅針對Java,Kotlin版本的異曲同工)依賴:



implementation 'org.litepal.android:kotlin:3.0.0'

1

可以根據個人需求進行配置。



3.2 配置

集成了Litepal之后,要想正式使用它還需要進行一些配置



在assets目錄下新建litepal.xml,作為Litepal的全局配置文件,相應的條目信息已作出注釋,代碼如下:

<?xml version="1.0" encoding="utf-8"?>

<litepal>

    <!--  數據庫名  -->

    <dbname value="androidframelearn"/>



    <!--  數據庫版本號  -->

    <version value="1"/>



    <!--  指定映射模型  -->

    <list>

       

    </list>



    <!--  指定文件的存儲方式  -->

    <!--  <storage value="external" />-->

</litepal>



在你的應用下配置Litepal,有兩種方式可以實現:

修改清單文件,將你的應用名修改為:android:name="org.litepal.LitePalApplication"

新建一個自己寫的MyOwnApplication類,然后將清單文件中的應用名定位到該類,即:android:name="com.example.MyOwnApplication",然后再編寫MyOwnApplication類,代碼如下:

public class MyOwnApplication extends Application {



@Override

public void onCreate() {

    super.onCreate();

    LitePal.initialize(this);

}

...

}



兩種方式亦可,Litepal的作者建議若使用第二種方式,需要盡快地調用LitePal.initialize(this);所以將其放在onCreate()方法是最好的。



3.3 創建數據庫

剛才在介紹的時候已經說過,Litepal采取的是對象關系映射(ORM)的模式,那么什么是對象關系映射呢?簡單點說,我們使用的編程語言是面向對象語言,而使用的數據庫則是關系型數據庫,那么將面向對象的語言和面向關系的數據庫之間建立一種映射關系,這就是對象關系映射了。

不過你可千萬不要小看對象關系映射模式,它賦予了我們一個強大的功能,就是可以用面向對象的思維來操作數據庫,而不用再和SQL語句打交道了,不信的話我們現在就來體驗一下。像往常使用SQLiteOpenHelper類,為了創建一張Book表需要先分析表中應該包含哪些列,然后再編寫出一條建表語句,最后在自定義的SQLiteOpenHelper中去執行這條建表語句。但是使用LitePal,你就可以用面向對象的思維來實現同樣的功能了,定義一個Book類,代碼如下所示:



package com.androidframelearn.dao_litapal;



import org.litepal.crud.LitePalSupport;



public class Book extends LitePalSupport {

    private int id;

    private String author;

    private double price;

    private int pages;

    private String name;

    public int getId(){

        return id;

    }

    public void setId(int id){

        this.id = id;

    }



    public String getAuthor(){

        return author;

    }

    public void setauthor(String author){

        this.author = author;

    }



    public double getPrice(){

        return price;

    }

    public void setPrice(double price){

        this.price = price;

    }



    public int getPages(){

        return pages;

    }

    public void setPages(int pages){

        this.pages = pages;

    }



    public String getName(){

        return name;

    }

    public void setName(String name){

        this.name = name;

    }

}



這里使用標簽來聲明我們要配置的映射模型類,注意一定要使用完整的類名。不管有多少模型類需要映射,都使用同樣的方式配置在標簽下即可。

沒錯,這樣就已經把所有工作都完成了,現在只要進行任意一次數據庫的操作,BookStore.db數據庫應該就會自動創建出來。為了更好地演示代碼,我們將布局文件所需要的功能一次性編寫好,activity_main.xml代碼如下:



<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity"

    android:orientation="vertical">



    <Button

        android:id="@+id/btn_db_create"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="創建數據庫"/>



    <Button

        android:id="@+id/btn_db_query"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="查詢數據"/>



    <Button

        android:id="@+id/btn_db_insert"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="插入數據"/>



    <Button

        android:id="@+id/btn_db_update"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="更新數據"/>



    <Button

        android:id="@+id/btn_db_delete"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="刪除數據"/>



</LinearLayout>





接下來,修改MainActivity,除了給按鈕注冊點擊事件,還需要編寫不同的方法代表不同的邏輯,其中,創建數據庫的方法代碼如下:



private void createDBbyLitePal() {

        btn_db_create.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                Log.i(TAG,"創建數據庫成功");

                LitePal.getDatabase();

            }

        });

    }



僅僅通過點擊按鈕,調用LitePal.getDatabase();這句api,就可以創建出數據庫,讓我們實際進入項目中嘗試一下吧!點擊該按鈕,然后查看控制臺,如圖所示:



出現該句日記,說明數據庫創建成功,接下來我們看看這個數據庫是否按照我們所設置好的格式創建出來了,進入data/data/你的項目包名/databases,即可查看到該數據庫已經放置到該目錄下,如圖所示:





3.4 升級數據庫

事實上,若想對現有數據庫進行升級,也是可以實現的。以前我們使用SQLiteOpenHelper來升級數據庫的方式,雖說功能是實現了,但你有沒有發現一個問題,,就是升級數據庫的時候我們需要先把之前的表drop掉,然后再重新創建才行。這其實是一個非常嚴重的問題,因為這樣會造成數據丟失,每當升級一次數據庫,之前表中的數據就全沒了。

而使用Litepal,就可以很好地避免這個問題。假設我們現在有一張新的表Category要加進去,同樣編寫它的實體類,代碼如下:



package com.androidframelearn.dao_litapal;



public class Category {

    private int id;

    private String categoryName;

    private int categoryCode;

    public int getId(){

        return id;

    }

    public void setId(int id){

        this.id = id;

    }



    public String getCategoryName(){

        return categoryName;

    }

    public void setCategoryName(String categoryName){

        this.categoryName = categoryName;

    }



    public int getCategoryCode(){

        return categoryCode;

    }

    public void setCategoryCode(int categoryCode){

        this.categoryCode = categoryCode;

    }

}



改完了所有我們想改的東西,只需要記得在litepal.xml將版本號加1就行了。當然由于這里還添加了一個新的模型類,因此也需要將它添加到映射模型列表中。修改litepal.xml中的代碼,如下所示:



<?xml version="1.0" encoding="utf-8"?>

<litepal>

    <!--  數據庫名  -->

    <dbname value="androidframelearn"/>



    <!--  數據庫版本號  -->

    <version value="2"/>



    <!--  指定映射模型  -->

    <list>

        <mapping class="com.androidframelearn.dao_litapal.Book"/>

        <mapping class="com.androidframelearn.dao_litapal.Category"/>

    </list>



    <!--  指定文件的存儲方式  -->

    <!--  <storage value="external" />-->

</litepal>



重新運行一下程序,再次創建數據庫,就可以完美地完成數據庫的升級了。這里的調試可以使用sqlite工具,這里不再贅述。



3.5 插入數據

在講述本節時,首先回顧一下之前添加數據的方法,我們需要創建出一個Contentvalues對象,然后將所有要添加的數據put到這個Contentvalues對象當中,最后再調用SQLiteDatabase的insert() 方法將數據添加到數據庫表當中,步驟相當繁瑣。

而使用LitePal來添加數據,這些操作可以簡單到讓你驚嘆!我們只需要創建出模型類的實例,再將所有要存儲的數據設置好,最后調用一下save()方法就可以了。

同樣地,修改MainActivity,增加插入數據的事件方法,代碼如下:



private void insertDatabyLitePal() {

        btn_db_insert.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                Book book = new Book();

                book.setName("The Da Vinci Code");

                book.setauthor("Dan Brown");

                book.setPages(454);

                book.setPrice(16.96);

                book.save();

                Log.i(TAG,"插入數據成功");

            }

        });

    }



同樣運行程序,查看控制臺,如圖所示:



當點擊查詢數據(下一節將介紹該邏輯)時,控制臺打印剛剛插入的數據,如圖所示:





3.6 查詢數據

使用Litepal同樣可以很輕易地查詢數據,當然了,由于篇幅限制,這里僅僅貼出最簡單的查詢方式,至于關聯查詢等稍復雜的查詢方式,可以去GItHub上參考Litepal的官方文檔進行相關調用即可。

同樣地,修改MainActivity,增加查看數據的事件方法,代碼如下:



private void queryDatabyLitePal() {

        btn_db_query.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                List<Book> books = LitePal.findAll(Book.class);

                for (Book book : books){

                    Log.i(TAG,"查詢數據成功");

                    Log.d("MainActivity","書名是"+book.getName());

                    Log.d("MainActivity","書的作者是"+book.getAuthor());

                    Log.d("MainActivity","書的頁數是"+book.getPages());

                    Log.d("MainActivity","書的價格是"+book.getPrice());

                }

            }

        });

    }



相關的運行結果上一小節以貼出,這里不再重復。



3.7 更新數據

更新數據要比添加數據稍微復雜一點,因為它的API接口比較多,這里我們只介紹最常用的幾種更新方式。

首先,最簡單的一種更新方式就是對已存儲的對象重新設值,然后重新調用save()方法即可。那么這里我們就要了解一個概念,什么是已存儲的對象?

對于LitePal來說,對象是否已存儲就是根據調用model.isSaved()方法的結果來判斷的, 返回true就表示已存儲,返回false就表示未存儲。那么接下來的問題就是,什么情況下會返回true,什么情況下會返回false呢?

實際上只有在兩種情況下model.isSave()方法才會返回true, 一種情況是已經調用過model. save()方法去添加數據了,此時model會被認為是已存儲的對象。另一種情況是model對象是通過LitePal提供的查詢API查岀來的,由于是從數據庫中查到的對象,因此也會被認為是已存儲的對象。

由于查詢API相對復雜,因此只能先通過第一種情況來進行驗證。修改MainActivity中的代碼,如下所示:



private void updateDatabyLitePal() {

        btn_db_update.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                Book book = new Book();

                book.setName("The Lost Symbol");

                book.setauthor("Dan Brown");

                book.setPages(510);

                book.setPrice(19.95); // 第一次設置商品價格

                book.save();

                book.setPrice(10.99); // 第二次設置商品價格

                book.save();

                Log.i(TAG,"更新數據成功");

            }

        });

    }



可以看到,我們做了跟插入數據類似的事情,但是我們對數據的價格進行了設置,運行程序,如圖所示:



可以看到,除了剛剛插入的數據,還有第二條剛剛更新過后的數據。然而這種更新方式只能對已存儲的對象進行操作,限制性比較大,接下來我們學習另外一種更加靈巧的更新方式,可以調用以下api:



book.updateAll("name = ? and author = ?","The Lost Symbol","Dan Brown");

1

這里僅貼出其中一條api,其他的可以參考官方文檔,這里不再贅述。



3.8 刪除數據

使用Litepal刪除數據的方式主要有兩種,第一種比較簡單,就是直接調用已存儲對象的delete()方法就可以了,對于已存儲對象的概念,我們在之前已經學習過了。也就是說,調用過save()方法的對象,或者是通過LitePal提供的查詢API查出來的對象,都是可以直接使用delete()方法來刪除數據的。這種方式比較簡單,我們就不進行代碼演示了,下面直接來看另外一種刪除數據的方式。

代碼如下:



private void deleteDatabyLitePal() {

        btn_db_delete.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                LitePal.deleteAll(Book.class,"price < ?","15");

                Log.i(TAG,"刪除成功");

            }

        });

    }



運行程序,刪除過后,按照代碼邏輯,已經刪除掉了所有price小于15的條目,如圖所示:





4.版本異同

之前閱讀了郭霖老師所著《Android第一行代碼 第二版》時,所記載的Litepal版本為:



compile 'org.litepal.android:core:1.4.1'

1

而的Litepal版本(Java版本,另有Kotlin版本,導入的依賴稍有不同)為:



implementation 'org.litepal.android:java:3.0.0'

1

新舊版本的主要區別是一些類名的劃分,例如老板本的DataSupport變成了LitePalSupport,除此之外,一些api的名稱也稍有變動,讀者在使用時最好可以參考GitHub上的官方文檔,及時更新代碼,做到與時俱進。



5.源碼地址

AFL——Android框架學習


日歷

鏈接

個人資料

藍藍設計的小編 http://www.gerard.com.cn

存檔

主站蜘蛛池模板: 天天干天天要 | 一本大道东京热无码aⅴ | 法国极品成人h版 | 国产在线观看av | 户外勾搭av片 | 国产露双乳喂奶在线观看 | 插久久| 天天干人人干 | 午夜免费福利视频 | 国产欧美不卡 | 91亚洲国产成人久久精品麻豆 | 天天干天天色综合网 | 亚洲精品久久久久久久久久吃药 | 国产一区二区三区视频 | 欧美67194| 丝袜在线视频 | 成人无码精品一区二区三区 | 国产三级欧美三级日产三级99 | 久久网国产 | 一级免费黄色片 | 在线观看黄色免费网站 | 色狠狠久久av五月综合 | 精品无码人妻一区二区三区不卡 | 国产资源精品 | 日韩精品一区二区中文字幕 | 天天色棕合合合合合合合 | 91青草视频 | 九九精品成人免费国产片 | 无码人妻精品一区二区 | 国内精品久久久久久99蜜桃 | 91激情网 | 国产淫语对白粗口video | 中文字幕在线视频观看 | 亚洲国产天堂一区二区三区 | 日本人作爰全过程 | 国产免费拔擦拔擦8x在线播放 | 国产精品27p | 欧美性白人极品1819hd | 性一交一乱一色一情丿按摩 | 在线成人日韩 | 日日摸夜夜添夜夜添毛片av | 国产日韩欧美高清 | 啪啪激情网| 国产乱人激情h在线观看 | 91精品国产色综合久久不卡98最新章节 | 黄色片的网站 | 久久午夜伦理 | 波多野结衣乳巨码无在线观看 | 欧美日韩黄色片 | 国产色视频一区二区三区qq号 | 国产在线午夜卡精品影院 | 亚洲色欲色欲www在线丝 | 亚洲一区二区三区成人 | 久久久久久久网站 | 图片区小说区区国产明星 | 亚洲啪啪综合av一区 | 中国免费黄色片 | 天天摸夜夜添狠狠添婷婷 | 国产第一页精品 | 日韩精品视频在线一区 | 国产伦孑沙发午休精品 | 两个人看的www在线观看 | 精品无码人妻被多人侵犯av | 91精品少妇偷拍99 | 国产精品久久久久久2021 | 在线亚洲人成电影网站色www | 九色porny丨入口在线 | 日韩精品av久久有码一区浪潮 | 国产日韩成人 | 成人在线免费播放 | 黄色免费观看网站 | a毛片成人 | 国产精品丝袜久久久久久不卡 | 四虎一区二区三区 | 国产精品xxx大片免费观看 | 成人开心网 | 特级黄色大片 | 亚洲a级女人内射毛片 | 亚洲一卡二卡 | 亚洲午夜综合 | 中文字幕日本在线观看 | www.色就是色 | 天天躁日日躁很很很躁 | 亚洲综合在线免费 | 日本公与丰满熄的 | 丰满少妇影院 | 香蕉久久久 | 在线无码中文字幕一区 | 国产免费一区二区三区香蕉精 | 国产欧美精品日韩区二区麻豆天美 | 黑桃tv视频一区二区 | 日本午夜理伦影片大全 | 2019毛片| 性鲍视频在线 | 欧美日韩无套内射另类 | 国产主播福利 | 国产一卡二卡在线 | 日韩视频免费在线观看 | 免费又黄又粗又爽大片69 | 久久久久久国产精品免费免费男同 | 欧美国产日韩一区二区三区 | 欧美性xxxx狂欢老少配 | 亚洲一区二区三区影院 | 中文字幕色偷偷人妻久久 | 777欧美| 久久99精品久久久久久hb无码 | 自拍 高清 日韩 欧美 另类 | 夜夜躁狠狠躁日日躁 | hitomi一区二区在线播放 | 精品国产不卡一区二区三区 | 四虎福利视频 | 一区二区三区中文字幕在线 | 妖精视频一区二区 | 国产成人三级一区二区在线观看一 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲 自拍 另类小说综合图区 | 97变态冷s各种国产调教 | 一区二区三区激情 | 亚洲精品国产综合久久久久紧 | 最近更新中文字幕 | 欧美日韩午夜爽爽 | 亚洲自偷精品视频自拍 | 警花av一区二区三区 | 村上凉子在线播放av88 | 噜噜噜狠狠夜夜躁精品仙踪林 | 欧美youjizz| 葵司免费一区二区三区四区五区 | 华人少妇被黑人粗大的猛烈进 | 手机在线看片 | 国产极品jk白丝喷白浆图片 | 久久久www成人免费毛片女 | 一本大道久久精品懂色aⅴ 一本大道久久卡一卡二卡三乱码 | 男女作爱免费网站 | 国产精品99999 | 国产免费二区 | 色噜噜狠狠一区二区三区 | 美女赤身免费网站 | 亚洲三级精品 | 国产av亚洲精品ai换脸电影 | 新x8x8拨牐拨牐永久免费影库 | 女人被弄到高潮的免费视频 | 国产精品久久久久9999吃药 | 秋霞影院午夜老牛影院 | 中文字幕一区av | 天天综合在线视频 | 国内久久久久 | 国产精品久久久久aaaa九色 | 欧美a级在线免费观看 | 超碰综合在线 | 露出调教羞耻91九色 | 黑人情欲在线播放 | 强开小嫩苞一区二区三区网站 | 欧美在线视频播放 | 美女黄网站成人免费视频 | 99re8在线精品视频免费播放 | 亚洲国产一二三 | 麻豆一区二区三区精品视频 | 亚洲精品一区二区三区蜜臀 | 超h高h肉h文教室学长男男视频 | 九九热久久久99国产盗摄蜜臀 | 亚洲中文无码a∨在线观看 在线不卡日本v二区到六区 | 亚洲国产成人久久精品大牛影视 | 亚洲视频图片小说 | 午夜成年人 | 亚洲精品亚洲人成在线 | 亚洲揄拍窥拍久久国产自揄拍 | 色琪琪丁香婷婷综合久久 | a视频免费在线观看 | v一区无码内射国产 | 91在线播 | 成人传媒| 久久精品成人一区二区三区 | 免费一级黄色片 | 成人欧美一区二区三区在线观看 | 天天做天天爱夜夜爽导航 | 亚洲三级黄色片 | 狠狠色丁香久久婷婷综合_中 | 日韩经典av | 伊人蕉影院久亚洲高清 | 国产乱淫a∨片免费观看 | 亚洲第一综合网站 | 中文字幕在线欧美 | 中国少妇的呻吟xvideoshd | 色诱久久久久综合网ywww | www插插插无码免费视频网站 | 国内精品伊人久久久久777 | 成人欧美一区二区三区在线 | 国产一二三四在线视频 | 四虎精品在线观看 | 主播粉嫩国产在线精品 | 日韩国产区 | av男女| 国产视频手机在线播放 | 日韩经典午夜福利发布 | 久久精品国产精品亚洲 | 黄网在线 | 伊人色在线| 一色桃子av一区二区 | 777久久久 | 国产高潮视频在线观看 | 欧美日b视频 | 亚洲综合第二页 | 激情视频一区二区三区 | 国产乱人偷精品免费视频 | 久久久久久久久久久久久久久久久 | 午夜小视频在线免费观看 | 成人第一页 | xxxx少妇高潮毛片新婚之夜 | 国产一线二线三线在线观看 | 野花中文免费观看6 | 国产免费一区二区三区四区五区 | 少妇太爽了太深了太硬了 | 又粗又硬大战丰满少妇 | 亚洲一区二区三区高清 | 亚洲色大网站www永久网站 | 国产成人av免费观看 | 亚洲男人av | 中文字幕免费一区二区 | 国产精品人人 | 狠狠色婷婷久久综合频道日韩 | 午夜成年人 | 免费无码又爽又刺激高潮的视频 | 清纯唯美一区二区三区 | 日本一区二区成人 | 久久精品无码av | 国产精自产拍久久久久久蜜 | 欧美丰满熟妇xxxxx | 天天干天天爱天天操 | 精品国产露脸精彩对白 | 日本啪啪网 | 国产亚洲精品久久久久久国模美 | 少妇大叫太大太粗太爽了a片小说 | 足疗店女技师按摩毛片 | 国产ts人妖系列张思妮在线观看 | 久操视频在线免费观看 | 婷婷在线看 | 摸摸摸bbb毛毛毛片 蘑菇av | 日韩资源站| 成人性生交大片免费 | 4k岛国av超高清aⅴ | 色涩涩| 欧美性xxxx极品少妇 | 日韩免费一级 | 网曝91综合精品门事件在线 | 农村老熟妇乱子伦视频 | 制服丝袜一区二区三区 | 天天狠狠色噜噜 | 中国china体内裑精亚洲片 | 美女午夜激情 | 天堂中文av在线 | 国产偷国产偷精品高清尤物 | 在线观看一区二区三区视频 | 性xxxx18| 97亚洲色欲色欲综合网 | 亚欧成人在线 | 亚洲v欧美v国产v在线观看 | 国产女人高潮大叫a毛片 | 性中文字幕 | jizz性欧美5| 久久久久9 | 中文字幕日韩精品在线观看 | 五月天色丁香 | 少妇人妻偷人精品免费视频 | 91大神视频在线播放 | 亚州av免费| 久久激情片 | www.久久精品视频 | 日韩中文字幕在线免费观看 | 亚洲无吗在线 | 亚洲欧美国产一区二区三区 | 免费看成人啪啪 | 久久国产香蕉视频 | 国内精品毛片 | 女性高爱潮视频 | 欧美丰满老熟妇xxxxx性 | 人妻毛片网站 | а√天堂资源中文在线官网九色 | 美国成人免费视频 | 在线日韩视频 | 国产淫语对白 | 国产精品一区二区久久久久 | 欧美日韩午夜 | 天天射网站 | 亚洲精品久久国产高清 | 欧美青青草| 在线va无码中文字幕 | 国产99久久久久久免费看 | 黄色特级视频 | 国产精品日韩欧美一区二区 | 无码午夜人妻一区二区不卡视频 | 老司机一区 | 50一60岁老妇女毛片 | 日本又色又爽又黄的a片吻戏 | 久久精品在线视频 | 国产一级免费av | 天天做天天爱天天综合网2021 | 伊人免费在线 | 极品尤物魔鬼身材啪啪仙踪林 | 97超碰导航 | 四季久久免费一区二区三区四区 | 精品人妻系列无码一区二区三区 | 国产精品99久久久久久夜夜嗨 | 国产精品乱码一区二区视频 | 波多野结衣高清视频 | 色综合色狠狠天天综合色 | 日韩激情第一页 | 成人免费午夜 | 欧美成人在线视频 | 精品午夜一区二区 | 久久伊人精品一区二区三区 | 国产中文字幕一区二区 | 国产日韩av免费无码一区二区三区 | 蜜桃精品噜噜噜成人av | 在线无| 黄色一级片a | 深夜成人在线观看 | 秋霞成人网 | 授乳喂奶av中文在线 | 中文字幕欧美久久日高清 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 国产精品久久久久久久久久王欧 | 高h喷水荡肉爽腐调教 | 欧美精品偷自拍另类在线观看 | 一级做a爰片久久毛片a | 医生强烈淫药h调教小说阅读 | 亚洲区免费 | 99热在线只有精品 | 久久久久久久黄色 | 亚洲国产成人精品综合av | 66m66成人摸人视频 | 日韩美女黄色片 | 性折磨bdsm德国激情 | 国产免费看黄 | 国产精品视频在线观看 | 国产精品51麻豆cm传媒 | 无套中出丰满人妻无码 | 韩日a级片 | 欧美韩国日本 | 亚洲色图40p| 国产一级片中文字幕 | 国产精品乱码一区二区三区视频 | 91亚洲成a人片在线观看www | 中文字幕在线观看视频地址二 | 亚洲自拍偷拍一区二区三区 | 伊人夜夜躁av伊人久久 | 国产高清精品一区 | 精品一区免费观看 | 女人被男人爽到呻吟的视频 | 日韩av大片 | 亚洲欧美日韩网站 | www.欧美成人| 国产又黄又爽刺激的视频 | 欧美日二区 | 亚洲伦理99热久久 | 国内精品久久久久影视老司机 | 成年女人黄小视频 | 色免费看 | 乱肉妇精品av | 午夜激情av | 天天干天天爽 | 国产色综合久久无码有码 | 国产免费片| 亚洲夜色噜噜av在线观看 | 黄色成人av | 男女啪啪做爰高潮免费看 | 欧美精品成人a区在线观看 欧美精品成人久久 | 国产成人一区二区三区 | 五月激情站 | 久久精品视频一区二区 | 日韩国产欧美视频 | 中文字幕国产精品 | 国产韩国精品一区二区三区久久 | 天堂…中文在线最新版在线 | 国产精品日产欧美久久久久 | 久久久无码人妻精品无码 | 在线观看一区 | 爽天天天天天天天 | 亚洲超丰满肉感bbw 亚洲超碰在线 | juliaann精品艳妇在线 | 午夜精品久久久久久久99热蜜臀 | 久久99精品久久久久麻豆 | 少妇挑战三个黑人惨叫4p国语 | 天天躁日日躁狠狠躁 | 激情影音 | 狠狠干超碰 | 欧美、另类亚洲日本一区二区 | 久久亚洲欧美日韩精品专区 | 国产精品香蕉在线观看 | 久久久久在线视频 | 亚洲 欧美 制服 综合 另类 | 午夜精品视频一区二区三区在线看 | 国产香蕉尹人综合在线观看 | 国产又色又爽又刺激在线观看 | 国产网友自拍在线视频 | 狠狠干天天操 | www男人的天堂com | 动漫av永久无码精品每日更新 | 高清国产一区二区三区 | 久操视频在线免费观看 | 亚洲精品午夜久久久久久久久久久 | 影音先锋欧美在线 | 欧美三级网址 | 亚洲欧美色一区二区三区 | 国产中年夫妇激情高潮 | 一二三区毛片 | 小嫩批日出水视频 | 一本色道无码道dvd在线观看 | 国内精品久久久久久 | 成人欧美一区二区三区在线观看 | 国产农村妇女精品一二区 | 高hnp视频 | 久久精品aⅴ无码中文字字幕蜜桃 | 欧美不卡高清 | 久久99青青精品免费观看 | 免费网站av | 看全色黄大色大片免费久久 | 99久久精品久久久久久清纯 | 成人免费xyz网站 | 亚洲乱码无码永久不卡在线 | 久久久久久亚洲精品中文字幕 | 92在线观看免费视频日本 | 第四色影音先锋 | 国产乱人偷精品视频 | 亚洲精品sm一区二区 | а√天堂8资源中文在线 | 欧洲精品欧美精品 | 红桃视频一区二区三区免费 | 精品国产欧美一区二区三区不卡 | 国产做a爱一及毛片久久 | 日本又黄又硬又爽的大片 | 懂色av一区二区三区在线播放 | 中文字幕在线字幕中文 | 日本不卡影院 | 成人福利影院 | 欧洲成人一区二区 | 国产一级片免费在线观看 | 天天看a | 在线免费观看国产精品 | 国产精品亚洲日韩欧美色窝窝色欲 | 岛国片人妻三上悠亚 | 熟女人妻一区二区三区免费看 | 情侣酒店偷拍一区二区在线播放 | 色婷婷精品视频 | 成人精品视频m3u8 | 国产午夜三级一二三区 | 久久99婷婷国产精品免费 | 精品久久久免费视频 | 国产免费xvideos视频入口 | 一级片在线免费看 | 日韩av在线影院 | 91麻豆精品91aⅴ久久久久久 | 日本一本二本三区免费 | 成人婷婷网色偷偷亚洲男人的天堂 | 亚洲视频中文 | 国产乱淫视频免费 | 精品人伦一区二区三电影 | 色婷婷视频在线 | 国产超碰人人做人人爽av牛牛 | 911国产| 国产成a人亚洲精v品在线观看 | 天堂√| 88国产精品视频一区二区三区 | 91另类| 亚洲最大av在线 | 香蕉视频官网 | 又大又硬又黄的免费视频 | 日本一本在线 | 国产精品女上位好爽在线观看 | 免费萌白酱国产一区二区三区 | 99久久夜色精品国产亚洲 | 天天色亚洲 | 中文字幕无码色综合网 | 国产毛片18片毛一级特黄日韩a | 久久久在线免费观看 | 中文字幕在线网址88第一页 | 我要看黄色a级片 | 日本肉体bbbbbb肉交内谢 | 无套日出白浆 | 97夜夜澡人人爽人人喊中国片 | 538国产视频 | 香港曰本韩国三级网站 | 亚洲人成人网 | 久久久精品午夜免费不卡 | 香蕉视频在线免费播放 | 国产经典一区 | 天天色av| 成人免费毛片果冻 | 8ⅹ8x擦拨擦拨成人免费视频 | 男人的天堂久久 | 日韩精品无码一区二区三区不卡 | 黑人精品一区二区三区 | 风韵少妇spa私密视频 | 亚洲一区二区自拍 | 欧美一区二区三区在线播放 | 古装大尺度激情呻吟视频 | 欧美性猛交xxxx乱大交俱乐部 | 激情久久av一区av二区av三区 | 性色av无码久久一区二区三区 | 欧美色淫| 看国产毛片| 日韩乱码人妻无码中文字幕 | 麻豆文化传媒精品一区观看 | 巨胸爆乳美女露双奶头挤奶 | 亚洲国产精品视频 | 日韩精品久久久 | 草青青视频 | 日韩欧美aaaa羞羞影院 | 中国猛少妇色xxxxx | 美女尿尿网站 | 中国大陆一级毛片 | 好了av四色综合网站 | 国内精品久久久久影视老司机 | 大地资源在线观看官网第三页 | 性――交――性――乱视频 | 麻豆一区二区三区蜜桃免费 | 亚洲精品久久区二区三区蜜桃臀 | 日韩在线一级 | 国产毛片精品国产一区二区三区 | 国产精品玖玖玖 | 校园春色自拍偷拍 | 国产欧美黑寡妇久久久 | 老色69久久九九精品高潮 | 久草资源站 | 日本少妇性生活 | 亚洲精品无线乱码一区 | 全球av集中精品导航福利 | 老牛影视av一区二区在线观看 | 精品午夜一区二区三区在线观看 | 丁香花小说手机在线观看免费 | 欧美精品一区视频 | 久久99精品国产自在现线小黄鸭 | 欧美成人三级在线观看 | 国产又粗又猛又爽又黄av | 成人做爰999 | 欧美成人在线影院 | 精品欧美一区二区三区在线观看 | 国产porn| 中文字幕亚洲色图 | 免费观看性生活大片3 | 黄色小视频在线免费看 | 性欧美17一18内谢 | 欧美在线视频不卡 | 超碰人人澡 | 99国产午夜精品一区二区天美 | 大人和孩做爰aⅴ18 大人和孩做爰av | 天天躁日日躁狠狠躁av | 日本特黄 | 精品久久蜜桃 | 视频一二三区 | 一区一区三区产品乱码 | 欧美激情综合色综合啪啪五月 | 亚洲国产日韩一区 | 国产女高清在线看免费观看 | 最新不卡av| y111111国产精品久久婷婷 | 国产边摸边吃奶边做爽视频 | 日韩欧美一卡二卡 | 天天爱天天做天天爽 | 日本99热 | 日韩精品一区二区三区三炮视频 | 91精品国 | 国产乱码一区二区三区咪爱 | 欧美精品一区二区久久久 | 成人爽爽爽 | 黄色试频 | 三级黄色网 | 国产91在线 | 亚洲 | 国产乱码一二三区精品 | 欧美日韩理论片 | 亚洲精品97 | 夜夜操狠狠干 | 中文字幕一区二区三区中文字幕 | 亚洲第一成人在线 | 强乱中文字幕 | 黄色精品一区 | 91大神精品在线 | 久久精品视频免费看 | 精品国产va久久久久久久 | 精品国产专区 | 国产午夜精华液 | 国产伦精品一区二区三区视频不卡 | 欧美搡bbbbb搡bbbbb | 亚洲精品国产精品国自产在线 | 日韩成人精品一区二区 | 一区二区在线播放视频 | 精品国产综合区久久久久久 | 妇女伦子伦视频国产 | 无码人妻精品一区二区三区东京热 | 久久精品国产丝袜人妻 | 日韩视频免费观看高清 | 国产第四页 | 国产91丝袜在线 | 欧美精品亚洲精品日韩专区 | 伊人情人综合网 | 欧美另类交在线观看 | 久久国产劲爆∧v内射 | 深夜毛片 | 免费黄色小视频网站 | 果冻传媒mv国产董小宛主演是谁 | 亚洲精品乱码久久久久久蜜桃不卡 | 黄色字幕网 | 婷婷综合另类小说色区 | 国产香蕉97碰碰碰视频在线观看 | www日韩高清 | 国产一区二区三区乱码在线观看 | 中文字幕乱码熟妇五十中出 | 国产xxxx18| 成人一二三区 | 国产精品一区二区欧美黑人喷潮水 | 婷婷精品进入 | av中文网 | 国产a精品 | 国产69精品久久久久男男系列 | 911国产视频 | 男女黄网站 |