久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Fluent MyBatis實(shí)現(xiàn)動(dòng)態(tài)SQL

瀏覽:2日期:2023-10-18 11:35:34
目錄數(shù)據(jù)準(zhǔn)備代碼生成在 WHERE 條件中使用動(dòng)態(tài)條件在 UPDATE 使用動(dòng)態(tài)更新choose 標(biāo)簽參考

MyBatis 令人喜歡的一大特性就是動(dòng)態(tài) SQL。在使用 JDBC 的過程中, 根據(jù)條件進(jìn)行 SQL 的拼接是很麻煩且很容易出錯(cuò)的,MyBatis雖然提供了動(dòng)態(tài)拼裝的能力,但這些寫xml文件,也確實(shí)折磨開發(fā)。Fluent MyBatis提供了更貼合Java語言特質(zhì)的,對(duì)程序員友好的Fluent拼裝能力。

Fluent MyBatis動(dòng)態(tài)SQL,寫SQL更爽

數(shù)據(jù)準(zhǔn)備

為了后面的演示, 創(chuàng)建了一個(gè) Maven 項(xiàng)目 fluent-mybatis-dynamic, 創(chuàng)建了對(duì)應(yīng)的數(shù)據(jù)庫(kù)和表

DROP TABLE IF EXISTS `student`;CREATE TABLE `student`( `id` bigint(21) unsigned NOT NULL AUTO_INCREMENT COMMENT ’編號(hào)’, `name` varchar(20) DEFAULT NULL COMMENT ’姓名’, `phone`varchar(20) DEFAULT NULL COMMENT ’電話’, `email`varchar(50) DEFAULT NULL COMMENT ’郵箱’, `gender` tinyint(2) DEFAULT NULL COMMENT ’性別’, `locked` tinyint(2) DEFAULT NULL COMMENT ’狀態(tài)(0:正常,1:鎖定)’, `gmt_created` datetime DEFAULT CURRENT_TIMESTAMP COMMENT ’存入數(shù)據(jù)庫(kù)的時(shí)間’, `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ’修改的時(shí)間’, `is_deleted` tinyint(2) DEFAULT 0, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT =’學(xué)生表’;代碼生成

使用Fluent Mybatis代碼生成器,生成對(duì)應(yīng)的Entity文件

public class Generator { static final String url = 'jdbc:mysql://localhost:3306/fluent_mybatis?useSSL=false&useUnicode=true&characterEncoding=utf-8'; /** * 生成代碼的package路徑 */ static final String basePackage = 'cn.org.fluent.mybatis.dynamic'; /** * 使用 test/resource/init.sql文件自動(dòng)初始化測(cè)試數(shù)據(jù)庫(kù) */ @BeforeAll static void runDbScript() {DataSourceCreatorFactory.create('dataSource'); } @Test void test() {FileGenerator.build(Nothing.class); } @Tables(/** 數(shù)據(jù)庫(kù)連接信息 **/url = url, username = 'root', password = 'password',/** Entity類parent package路徑 **/basePack = basePackage,/** Entity代碼源目錄 **/srcDir = 'src/main/java',/** 如果表定義記錄創(chuàng)建,記錄修改,邏輯刪除字段 **/gmtCreated = 'gmt_created', gmtModified = 'gmt_modified', logicDeleted = 'is_deleted',/** 需要生成文件的表 ( 表名稱:對(duì)應(yīng)的Entity名稱 ) **/tables = @Table(value = {'student'}) ) public static class Nothing { }}

編譯項(xiàng)目,ok,下面我們開始動(dòng)態(tài)SQL構(gòu)造旅程

在 WHERE 條件中使用動(dòng)態(tài)條件

在mybatis中,if 標(biāo)簽是大家最常使用的。在查詢、刪除、更新的時(shí)候結(jié)合 test 屬性聯(lián)合使用。

示例:根據(jù)輸入的學(xué)生信息進(jìn)行條件檢索

當(dāng)只輸入用戶名時(shí), 使用用戶名進(jìn)行模糊檢索; 當(dāng)只輸入性別時(shí), 使用性別進(jìn)行完全匹配 當(dāng)用戶名和性別都存在時(shí), 用這兩個(gè)條件進(jìn)行查詢匹配查詢

mybatis動(dòng)態(tài) SQL寫法

<select resultMap='BaseResultMap' parameterType='com.homejim.mybatis.entity.Student'> select <include refid='Base_Column_List' /> from student <where><if test='name != null and name !=’’'> and name like concat(’%’, #{name}, ’%’)</if><if test='sex != null'> and sex=#{sex}</if> </where></select>

fluent mybatis動(dòng)態(tài)寫法

@Repositorypublic class StudentDaoImpl extends StudentBaseDao implements StudentDao { /** * 根據(jù)輸入的學(xué)生信息進(jìn)行條件檢索 * 1. 當(dāng)只輸入用戶名時(shí), 使用用戶名進(jìn)行模糊檢索; * 2. 當(dāng)只輸入性別時(shí), 使用性別進(jìn)行完全匹配 * 3. 當(dāng)用戶名和性別都存在時(shí), 用這兩個(gè)條件進(jìn)行查詢匹配的用 * * @param name 姓名,模糊匹配 * @param isMale 性別 * @return */ @Override public List<StudentEntity> selectByNameOrEmail(String name, Boolean isMale) {return super.defaultQuery() .where.name().like(name, If::notBlank) .and.gender().eq(isMale, If::notNull).end() .execute(super::listEntity); }}

FluentMyBatis的實(shí)現(xiàn)方式至少有下面的好處

邏輯就在方法實(shí)現(xiàn)上,不需要額外維護(hù)xml,割裂開來 所有的編碼通過IDE智能提示,沒有字符串魔法值編碼 編譯檢查,拼寫錯(cuò)誤能立即發(fā)現(xiàn)

測(cè)試

@SpringBootTest(classes = AppMain.class)public class StudentDaoImplTest extends Test4J { @Autowired StudentDao studentDao; @DisplayName('只有名字時(shí)的查詢') @Test void selectByNameOrEmail_onlyName() {studentDao.selectByNameOrEmail('明', null);// 驗(yàn)證執(zhí)行的sql語句db.sqlList().wantFirstSql().eq('' +'SELECT id, gmt_created, gmt_modified, is_deleted, email, gender, locked, name, phone ' +'FROM student ' +'WHERE name LIKE ?', StringMode.SameAsSpace);// 驗(yàn)證sql參數(shù)db.sqlList().wantFirstPara().eqReflect(new Object[]{'%明%'}); } @DisplayName('只有性別時(shí)的查詢') @Test void selectByNameOrEmail_onlyGender() {studentDao.selectByNameOrEmail(null, false);// 驗(yàn)證執(zhí)行的sql語句db.sqlList().wantFirstSql().eq('' +'SELECT id, gmt_created, gmt_modified, is_deleted, email, gender, locked, name, phone ' +'FROM student ' +'WHERE gender = ?', StringMode.SameAsSpace);// 驗(yàn)證sql參數(shù)db.sqlList().wantFirstPara().eqReflect(new Object[]{false}); } @DisplayName('姓名和性別同時(shí)存在的查詢') @Test void selectByNameOrEmail_both() {studentDao.selectByNameOrEmail('明', false);// 驗(yàn)證執(zhí)行的sql語句db.sqlList().wantFirstSql().eq('' +'SELECT id, gmt_created, gmt_modified, is_deleted, email, gender, locked, name, phone ' +'FROM student ' +'WHERE name LIKE ? ' +'AND gender = ?', StringMode.SameAsSpace);// 驗(yàn)證sql參數(shù)db.sqlList().wantFirstPara().eqReflect(new Object[]{'%明%', false}); }}在 UPDATE 使用動(dòng)態(tài)更新

只更新有變化的字段, 空值不更新

mybatis xml寫法

<update parameterType='...'> update student <set> <if test='name != null'>`name` = #{name,jdbcType=VARCHAR}, </if> <if test='phone != null'>phone = #{phone,jdbcType=VARCHAR}, </if> <if test='email != null'>email = #{email,jdbcType=VARCHAR}, </if> <if test='gender != null'>gender = #{gender,jdbcType=TINYINT}, </if> <if test='gmtModified != null'>gmt_modified = #{gmtModified,jdbcType=TIMESTAMP}, </if> </set> where id = #{id,jdbcType=INTEGER}</update>

fluent mybatis實(shí)現(xiàn)

@Repositorypublic class StudentDaoImpl extends StudentBaseDao implements StudentDao { /** * 根據(jù)主鍵更新非空屬性 * * @param student * @return */ @Override public int updateByPrimaryKeySelective(StudentEntity student) {return super.defaultUpdater() .update.name().is(student.getName(), If::notBlank) .set.phone().is(student.getPhone(), If::notBlank) .set.email().is(student.getEmail(), If::notBlank) .set.gender().is(student.getGender(), If::notNull) .end() .where.id().eq(student.getId()).end() .execute(super::updateBy); } }

測(cè)試

@SpringBootTest(classes = AppMain.class)public class StudentDaoImplTest extends Test4J { @Autowired StudentDao studentDao; @Test void updateByPrimaryKeySelective() {StudentEntity student = new StudentEntity() .setId(1L) .setName('test') .setPhone('13866668888');studentDao.updateByPrimaryKeySelective(student);// 驗(yàn)證執(zhí)行的sql語句db.sqlList().wantFirstSql().eq('' +'UPDATE student ' +'SET gmt_modified = now(), ' +'name = ?, ' +'phone = ? ' +'WHERE id = ?', StringMode.SameAsSpace);// 驗(yàn)證sql參數(shù)db.sqlList().wantFirstPara().eqReflect(new Object[]{'test', '13866668888', 1L}); }}choose 標(biāo)簽

在mybatis中choose when otherwise 標(biāo)簽可以幫我們實(shí)現(xiàn) if else 的邏輯。

查詢條件,假設(shè) name 具有唯一性, 查詢一個(gè)學(xué)生

當(dāng) id 有值時(shí), 使用 id 進(jìn)行查詢; 當(dāng) id 沒有值時(shí), 使用 name 進(jìn)行查詢; 否則返回空

mybatis xml實(shí)現(xiàn)

<select resultMap='BaseResultMap' parameterType='...'> select <include refid='Base_Column_List' /> from student <where><choose> <when test='id != null'> and id=#{id} </when> <when test='name != null and name != ’’'> and name=#{name} </when> <otherwise> and 1=2 </otherwise></choose> </where></select>

fluent mybatis實(shí)現(xiàn)方式

@Repositorypublic class StudentDaoImpl extends StudentBaseDao implements StudentDao { /** * 1. 當(dāng) id 有值時(shí), 使用 id 進(jìn)行查詢; * 2. 當(dāng) id 沒有值時(shí), 使用 name 進(jìn)行查詢; * 3. 否則返回空 */ @Override public StudentEntity selectByIdOrName(StudentEntity student) { return super.defaultQuery() .where.id().eq(student.getId(), If::notNull) .and.name().eq(student.getName(), name -> isNull(student.getId()) && notBlank(name)) .and.apply('1=2', () -> isNull(student.getId()) && isBlank(student.getName())) .end() .execute(super::findOne).orElse(null); }}

測(cè)試

@SpringBootTest(classes = AppMain.class)public class StudentDaoImplTest extends Test4J { @Autowired StudentDao studentDao; @DisplayName('有 ID 則根據(jù) ID 獲取') @Test void selectByIdOrName_byId() {StudentEntity student = new StudentEntity();student.setName('小飛機(jī)');student.setId(1L);StudentEntity result = studentDao.selectByIdOrName(student);// 驗(yàn)證執(zhí)行的sql語句db.sqlList().wantFirstSql().eq('' +'SELECT id, gmt_created, gmt_modified, is_deleted, email, gender, locked, name, phone ' +'FROM student ' +'WHERE id = ?', StringMode.SameAsSpace);// 驗(yàn)證sql參數(shù)db.sqlList().wantFirstPara().eqReflect(new Object[]{1L}); } @DisplayName('沒有 ID 則根據(jù) name 獲取') @Test void selectByIdOrName_byName() {StudentEntity student = new StudentEntity();student.setName('小飛機(jī)');student.setId(null);StudentEntity result = studentDao.selectByIdOrName(student);// 驗(yàn)證執(zhí)行的sql語句db.sqlList().wantFirstSql().eq('' +'SELECT id, gmt_created, gmt_modified, is_deleted, email, gender, locked, name, phone ' +'FROM student ' +'WHERE name = ?', StringMode.SameAsSpace);// 驗(yàn)證sql參數(shù)db.sqlList().wantFirstPara().eqReflect(new Object[]{'小飛機(jī)'}); } @DisplayName('沒有 ID 和 name, 返回 null') @Test void selectByIdOrName_null() {StudentEntity student = new StudentEntity();StudentEntity result = studentDao.selectByIdOrName(student);// 驗(yàn)證執(zhí)行的sql語句db.sqlList().wantFirstSql().eq('' +'SELECT id, gmt_created, gmt_modified, is_deleted, email, gender, locked, name, phone ' +'FROM student ' +'WHERE 1=2', StringMode.SameAsSpace);// 驗(yàn)證sql參數(shù)db.sqlList().wantFirstPara().eqReflect(new Object[]{}); }}參考

示例代碼地址Fluent MyBatis地址Fluent MyBatis文檔Test4J框架

到此這篇關(guān)于Fluent MyBatis實(shí)現(xiàn)動(dòng)態(tài)SQL的文章就介紹到這了,更多相關(guān)Fluent MyBatis 動(dòng)態(tài)SQL內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

相關(guān)文章:
主站蜘蛛池模板: 久产久精品 | 国产成人精品999在线观看 | 国产中文视频 | 成人欧美在线视频 | 日本天天操 | 午夜精品久久久久久久久久久久 | 欧美日韩中文 | 亚洲精品一区在线观看 | 国产精品永久免费自在线观看 | 亚洲综合视频一区 | 国产午夜精品一区二区三区 | 午夜婷婷丁香 | 国产精品久久久久一区二区三区 | 国产精品一二区 | 亚洲精品乱码久久久久久麻豆不卡 | 国产成人av网站 | 国产精品污www一区二区三区 | 一级全黄少妇性色生活片毛片 | 欧美一级网 | 99视频在线播放 | 亚洲精品福利 | 日韩精品一区二区在线观看 | 国产美女自拍视频 | 日韩国产精品一区二区三区 | 日韩在线免费 | 九九综合九九 | 在线视频中文字幕 | 欧美理论在线观看 | 久久精品免费观看 | 日本久久99 | 色婷婷综合久久久中文字幕 | 99精品欧美一区二区三区综合在线 | 成人av免费在线观看 | 久久久久综合 | 成人免费小视频 | 日本久久久久久久久久 | 日韩精品久久 | 九九热这里只有 | 国产黄色免费小视频 | 一级毛片免费完整视频 | 羞羞视频网站免费看 | 在线观看视频一区二区 | 国产精品久久久久久中文字 | 在线小视频 | 999国产在线观看 | 亚洲一区中文字幕 | 91精品久久久久久久久久入口 | 欧洲一区二区在线观看 | 亚洲久久 | 久久男人的天堂 | 精品一区二区三区免费 | 亚洲人成人一区二区在线观看 | 日本午夜影院 | 欧美一区二区三区视频 | 草草久久久 | 激情五月综合网 | 青草青草久热精品视频在线观看 | 亚洲第一国产精品 | 久久一区| av在线免费观看一区二区 | 国产a免费| 国产精品成人在线观看 | 国产精品视频一区二区三区不卡 | 一级黄色片欧美 | 五月天在线婷婷 | 欧美精品欧美精品系列 | 国产免费高清 | 一区二区日本 | 午夜影院男女 | 干中文字幕 | 精品久久久久一区二区国产 | 精品久久久久久久人人人人传媒 | 久久久久999| 免费在线a| 成人免费av | 国产www视频| 久久综合一区二区 | 一区二区三区精品视频免费看 | 欧美精品一区二区在线观看 | 国产精品一级 | 在线日韩欧美 | 免费成人在线观看视频 | 国产99精品在线 | 亚洲精品一区国语对白 | av高清在线看 | 久久综合一区二区 | 黄色毛片观看 | 欧美日黄| 日本免费www| 日韩av在线中文字幕 | 午夜精品久久久久久99热软件 | 欧美成人精品一区二区男人看 | 国产欧美精品一区二区 | 国产成人免费视频网站高清观看视频 | 国产色| 狠狠操天天干 | 黄色国产| 国产精品18hdxxxⅹ在线 | 欧美国产免费 | 日韩综合在线 | 精品国产成人 | 亚洲骚片 | 精品亚洲一区二区三区在线观看 | 影音先锋成人资源网 | 探花在线观看 | 成人美女免费网站视频 | 日韩国产在线 | 美日韩免费视频 | 中国黄色毛片 大片 | 成人免费在线网址 | 美女h视频 | 日韩中文字幕在线视频 | 久久久精品免费观看 | 国产精品一区二区三区四区 | 玖玖视频 | 日本成人福利视频 | 国产精品成人国产乱一区 | 91精品国产乱码久久久久久久久 | 欧美成亚洲 | 婷婷色国产偷v国产偷v小说 | 午夜毛片 | 本道综合精品 | 国产成人高清视频 | 色综合天天综合网国产成人网 | 精品自拍视频 | 97精品视频| 久久精品一区二区三区四区 | 国产一区二区精品 | 91污在线| 天天爱爱网 | 在线国产一区二区 | 四虎影院在线免费播放 | 成人午夜视频网 | 黄色精品一区二区 | 日韩国产一区二区 | 91短视频版在线观看免费大全 | 不用播放器的毛片 | 亚洲一区成人 | 国产精品二区三区 | 黄色激情网站 | 亚洲欧美日韩精品 | 久久精品久久久久 | 久久国产精品久久久久久电车 | 精品久久中文字幕 | 精品无人乱码一区二区三区的优势 | 精品久久久久久久久久久久久久 | 亚洲精品99 | 国产精品毛片久久久久久久 | 国产精品毛片在线 | 少妇黄色一级片 | 国产精品原创av片国产免费 | 日韩色图在线观看 | 日韩国产在线观看 | 国产精品999 | 超碰在线播 | 另类 综合 日韩 欧美 亚洲 | 欧美激情一区二区 | 大香一网| 日韩精品日韩激情日韩综合 | 日韩在线免费观看网站 | av在线日韩| 国产三级久久久久 | 激情毛片 | 免费在线看a | 天天爱天天草 | 日本三级电影天堂 | 日韩成人中文字幕 | 69日影院| 国产欧美精品区一区二区三区 | 99亚洲视频 | 亚洲国产网站 | 欧美国产一区二区 | 欧美精品一区二区三区手机在线 | 日韩一区不卡 | 激情网站免费观看 | 久久婷婷色 | 亚洲人成在线观看 | 国产欧美日韩一区 | 国色天香成人网 | 国产亚洲视频在线 | 国产一区二区三区四区 | a级在线| 久久精品国产99国产精品 | 夜夜av| 亚洲综合精品 | 成人欧美| 99精品欧美一区二区三区 | 久热九九 | 欧美伦理一区二区三区 | 国产欧美一区二区三区国产幕精品 | 国产免费看 | 波多野结衣一区二区三区高清 | 91观看| 亚洲福利电影网 | 成人无遮挡毛片免费看 | 九九热免费看 | 国产二区视频 | 五月天婷婷丁香 | 午夜影院免费体验区 | 欧美激情视频一区二区三区 | a√免费视频 | av中文字幕在线播放 | 日韩高清在线一区 | 狠狠色综合色综合网络 | 国产亚洲精品精品国产亚洲综合 | 久久综合九色综合欧美狠狠 | 亚洲国产精品一区二区三区 | 日韩在线视频一区 | 黄色高清视频 | 久久精品影片 | 日本黄网站在线观看 | 日本在线网| 欧美精品欧美激情 | 国产精品无码久久久久 | 超碰香蕉| 少妇精品久久久久久久久久 | 91成人精品| 91成人黄色 | 一区二区av在线 | 亚洲精品在线视频观看 | 国产美女在线播放 | 毛片毛片毛片毛片毛片毛片 | 欧美日韩一级视频 | 成人不卡 | 国产精品2019 | 成人精品鲁一区一区二区 | 日韩性猛交 | 777777777亚洲妇女 | 欧美国产激情 | 免费高潮视频95在线观看网站 | 欧美顶级毛片在线播放 | 亚洲精品视频免费 | 天天爽夜夜爽 | 一级性大片 | 簧片免费网站 | 成人欧美一区二区三区在线播放 | 精品久久一区 | 亚洲精品在线视频观看 | 成人国产免费视频 | 精品久久久久久久久久久 | 中文字幕一区在线观看视频 | 国产精品三级久久久久久电影 | 成人影音 | 午夜小电影 | av在线中文 | 亚洲视频中文字幕 | 欧美激情在线精品一区二区三区 | 欧美日韩国产一区二区三区 | 久久精品 | 国产一级免费在线观看 | 在线看91 | 男女午夜网站 | 欧美日韩精品一区二区在线播放 | 免费一区二区三区 | 成人国产精品久久久 | 热久久久| 国产一区二区三区四区在线观看 | 日韩在线免费 | 国产精品欧美久久久久一区二区 | 亚洲一区| 久久精品国产久精国产 | 99爱在线观看 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 亚洲精品久久久一区二区三区 | 在线视频二区 | 亚州中文字幕 | 国产一区91 | 日日做夜夜爽毛片麻豆 | 69久久99精品久久久久婷婷 | 国产成人午夜 | 午夜精品久久久久久久星辰影院 | 一级毛片在线播放 | 一级毛片大全免费播放 | 黄色精品网站 | 亚洲一区av| 一区二区三区免费在线观看 | 羞羞视频免费观看网站 | 亚洲成人一区二区 | 看片wwwwwwwwwww| 国产v片 | 成人性大片免费观看网站 | 亚洲精品国产第一综合99久久 | 成人国产一区二区 | 日韩精品在线一区 | 三级无遮挡污在线观看 | 成av在线| 国产精品久久久久久一区二区三区 | 中文字幕一区二区三区四区不卡 | 欧美精品一二三 | 国外成人在线视频网站 | 国产精品第一区 | 国产一区二区视频在线播放 | 亚洲一区免费观看 | 日韩久久久久久 | 黄色片在线观看视频 | 久久精品一区二区三区四区 | 日批免费视频 | 日本一区二区三区四区 | 日韩欧美一区二区视频 | 91麻豆精品国产91久久久更新资源速度超快 | 男女做爰高清无遮挡免费视频 | 国产精品永久免费自在线观看 | 黄色一级视屏 | 操操操操操操操操操操操操操操 | 偷拍呻吟高潮91 | 成人免费毛片高清视频 | 久久久久久一区二区 | 羞羞视频免费观看 | 一区二区三区精品视频 | 老牛嫩草一区二区三区眼镜 | 国产成人亚洲综合 | 亚洲免费视频网 | 亚洲www永久成人夜色 | 午夜黄色av | 久久国产成人午夜av影院宅 | 亚洲一区在线观看视频 | 婷婷综合五月天 | 人人插人人 | 日本一区二区不卡 | 国产精品永久免费 | 亚洲 欧美 另类 综合 偷拍 | 视频一区二区国产 | 色综合久| 污片在线免费看 | 男女视频在线免费观看 | 久久久久久久久99精品 | 国产美女在线观看 | 毛片毛片毛片 | 欧美日韩视频第一页 | 国产一区二区三区四区在线观看 | 久久久久国产视频 | 中文字幕亚洲在线 | 欧美在线一区二区 | 一区二区视频 | 国产免费av在线 | 偷拍自拍第一页 | 日韩城人免费 | 国产精品自产拍在线观看 | 一区二区色 | 亚洲视频免费在线观看 | 白浆在线播放 | 欧美一区不卡 | 天天干人人 | 一级一级黄色片 | 国产成人精品久久二区二区91 | 欧美日韩一区二区三区四区 | 中文字幕电影在线 | 中文字幕免费中文 | 丝袜 亚洲 另类 欧美 综合 | 一级黄色毛片免费观看 | 少妇久久久| 91成人小视频 | 亚洲一区视频 | 四虎永久免费在线 | 日韩城人免费 | 国产精品国产a级 | 欧美一区二区在线观看 | av在线视 | 欧美午夜精品久久久 | 日韩免费一区 | 久久精品欧美一区二区三区不卡 | 蜜桃精品久久久久久久免费影院 | 亚洲欧美综合 | 黄色一级视屏 | 精品一区二区三区在线观看 | 亚洲精品视频免费 | www,99热| 日韩中文字幕在线视频 | 国产亚洲一区二区三区 | 成人在线视频观看 | 北条麻妃99精品青青久久 | 成人免费黄色毛片 | 日韩欧美精品一区二区三区 | 日韩视频精品在线 | 亚洲精品一区二区三区99 | 精品久久久久久久久久久久 | 狠狠av| 男人天堂av网站 | 日韩在线视频网站 | 免费日本视频 | 91精品国产综合久久香蕉922 | 国产一区二区三区四区 | 毛片一区二区 | 无码少妇一区二区三区 | 国产欧美日本 | 午夜a级理论片915影院 | 国产日韩欧美视频 | 国产精品久久久久久久久 | 欧美视频免费在线 | 欧美自拍网| 毛片免费看| 欧美日韩精品一区二区三区 | 欧美一级免费 | 伊人青青久 | 久久久久免费精品视频 | 欧美日韩中文字幕在线 | 欧美日韩国产一区二区三区在线观看 | 欧美成人免费观看 | 国产一区在线视频 | 欧美日在线| av大片| 亚洲色图偷拍视频 | 免费观看一级特黄欧美大片 | 色www精品视频在线观看 | 日韩一区中文字幕 | 精品无码久久久久久国产 | 日韩精品观看 | 国产精品久久久久久久久污网站 | 成人国产精品视频 | 视频一区二区三区中文字幕 | 中文字幕亚洲欧美 | 国产亚洲一区二区精品 | 亚洲国产成人久久一区二区三区 | 精品视频一区在线观看 | 成人免费的视频 | 日本aa级毛片免费观看 | 欧美理论片在线观看 | 中文字幕一二三区 | 欧美国产在线观看 | 久久精品成人 | 中文字幕亚洲二区 | 日韩精品在线网站 | 国产精品久久久久久久久久 | 色999视频| 欧美在线视频播放 | www亚洲成人 | 国产98色在线 | 日韩 | 亚洲电影一区二区三区 | 欧美日韩国产在线观看 | 日韩成人精品视频在线观看 | v888av成人 | 91偷拍精品一区二区三区 | 羞羞视频在线播放 | 免费黄看片 | 久久免费视频3 | av免费黄色 | 国产高清在线观看 | 国产在线视频网 | 欧美成在线观看 | 精品国产91 | 性培育学校羞耻椅子调教h 欧美精品网站 | 欧美激情在线精品一区二区三区 | 一本一道久久a久久精品综合蜜臀 | 欧美日韩在线一区二区三区 | 欧美日韩一区不卡 | 欧美日韩高清 | 欧美中文字幕在线 | 欧美日韩精品亚洲 | 最新中文字幕视频 | 久久视频精品 | 91看片在线观看 | 一级黄色a视频 | 91成人短视频在线观看 | 97伦理电影 | 无码一区二区三区视频 | 自拍亚洲 | 精品三级三级三级三级三级 | 亚洲精品一区在线观看 | 高清一区二区三区 | 日韩视频网| 日韩视频在线免费观看 | 国产成人福利在线观看 | 亚洲欧美视频在线 | 久久免费视频国产 | 自拍偷拍一区二区三区 | 一区二区中文字幕在线观看 | 国产精自产拍久久久久久 | 成人超碰 | 久久久久国产精品一区二区 | 国产欧美精品一区二区 | 亚洲永久 | 日韩国产一区二区 | av手机在线播放 | 在线亚洲人成电影网站色www | 久久久久一区二区三区 | 中午字幕在线观看 | 欧美精品99 | 波多野结衣先锋影音 | 亚洲伊人精品酒店 | 亚洲视频免费在线 | 久久国产精品一区二区三区 | 国产精品成人一区二区三区夜夜夜 | 97色综合| 欧美日韩成人在线 | 国产三级精品三级 | 99久久夜色精品国产亚洲1000部 | 激情婷婷综合 | 国产丝袜在线 | 国产精品久久 | 日韩在线永久免费播放 | 精品久久久久久亚洲精品 | xxxx网| 欧美成人一级 | 国产精品自产拍在线观看桃花 | 国产成人精品一区二区三区视频 | 91色视频在线观看 | 激情欧美一区 | 免费的一级视频 | 久久免费精品 | 91性高湖久久久久久久久网站 | 亚洲 欧美日韩 国产 中文 | 一区二区日韩 | 国产精品久久久久久久久久久新郎 | 久久亚洲91 | 一级片在线观看 | 亚洲综合在线一区 | 久久成人一区 | 免费观看黄色大片 | 欧美日韩不卡视频 | 黄片毛片在线观看 | 一级全黄少妇性色生活片免费 | 亚洲在线免费观看 | 91精品国产91久久久久久蜜臀 | 欧美在线 | 亚洲 | 日韩欧美在线免费观看 | 一区二区亚洲视频 | 91日日| 国产成人精品一区二区三区视频 | 免费成人av在线 | 一区二区毛片 | 一级做a爰 | 亚洲欧洲日本国产 | 亚洲精品电影在线观看 | 国外成人在线视频 | 国产成人av一区二区三区 | 久久久国产精品 | 亚洲精品一区 | 波多野结衣在线网址 | 成人在线免费视频 | 欧洲亚洲精品久久久久 | 亚洲精品自在在线观看 | 一区二区三区精品视频 | 国产激情 | 一区二区三区在线不卡 | 国产在线精品视频 | 精品三级三级三级三级三级 | 三级黄色片在线免费观看 | 成人精品视频 | 91一区二区在线观看 | 一a毛片 | 久久在线播放 | 欧美成人激情 | 久久久国产一区 | 精品久久久久久久久久久下田 | 91夜夜操| 国产亚洲精品综合一区91555 | 亚洲国产精品久久久 | 美女国产精品 | 亚洲高清在线 | 精品国产一区二区三区免费 | 欧美激情精品久久久久 | 91影院 | 午夜爱爱毛片xxxx视频免费看 | 国产图区 | 亚洲美女视频一区二区三区 | 国产精品久久九九 | 三级黄色片在线观看 | 日本在线视频一区 | av网站免费 | 成人在线h | 日韩成人在线观看 | 国产美女永久免费无遮挡 | 久久精品免费视频播放 | 国产拍揄自揄精品视频麻豆 | 人人射人人干 | 在线观看免费国产 | 精品一区二区三区四区 | 国产精品99 | 国产精品一区人伦免视频播放 | 国产77777| 国产丝袜在线 | 久久这里精品 | 国产大学生一区 | 成人综合av | 黄色毛片在线看 | 日韩在线精品强乱中文字幕 | 婷婷国产在线观看 | 黄色片免费看 | 亚洲性视频网站 | 久久久www成人免费无遮挡大片 | 叶山小百合av一区二区 | 免费99精品国产自在在线 | 久久精品国产亚洲精品 | 五月天在线婷婷 | 啪一啪 | 亚洲精品视频在线 | 二区影院 | 国产精品久久久久一区二区三区 | 欧美成人a∨高清免费观看 在线视频成人 | 精品一区二区视频 | 欧美a在线 | 欧美国产精品一区二区三区 | av天空| 亚洲欧美中文日韩v在线观看 | 日韩一区二区在线免费 | 国产一区二区综合 | 综合久久综合 | 午夜精品福利一区二区三区蜜桃 | 日韩欧美一级片 | 欧美一级裸体视频 | 国产精品xxxx | 欧美中文字幕在线观看 | av一级久久 | 日韩精品在线播放 | 久久99精品国产.久久久久 | 成人午夜性a一级毛片免费看 | 一区二区三区av | 涩涩视频观看 | 91在线视频福利 | 久久免费视频观看 | 国产精品久久综合 | 在线看免费观看日本 | 国产欧美日韩综合精品一区二区 | 国产亚洲精品久久久久动 | 91精品国产综合久久久久久 |