国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

sharding jdbc分庫分表實現(xiàn)源碼分享

共 8020字,需瀏覽 17分鐘

 ·

2020-09-16 07:37

點擊上方藍色字體,選擇“標星公眾號”

優(yōu)質(zhì)文章,第一時間送達

66套java從入門到精通實戰(zhàn)課程分享?

  • 背景

最近在研究Mysql的分庫分表,前面的博客已經(jīng)詳細介紹了分庫分表!

由于sharding-jdbc是不支持動態(tài)進行建庫的SQL,那么就需要一次把需要的數(shù)據(jù)庫和數(shù)據(jù)表都建好

  • 建庫、建表

考慮到這只是一個測試的demo,所以,只建了兩個庫和兩個表

  1. CREATE?TABLE?`t_order_0`?(
    ?`id`?BIGINT(20)?NOT?NULL?AUTO_INCREMENT?COMMENT?'主鍵id',
    ?`order_id`?VARCHAR(32)?NULL?DEFAULT?NULL?COMMENT?'順序編號',
    ?`user_id`?VARCHAR(32)?NULL?DEFAULT?NULL?COMMENT?'用戶編號',
    ?`userName`?VARCHAR(32)?NULL?DEFAULT?NULL?COMMENT?'用戶名',
    ?`passWord`?VARCHAR(32)?NULL?DEFAULT?NULL?COMMENT?'密碼',
    ?`nick_name`?VARCHAR(32)?NULL?DEFAULT?NULL,
  • SpringBoot+Mybatis+sharding-jdbc框架搭建(pom文件)


  1. ????????
    ????????????org.springframework.boot
    ????????????spring-boot-starter
    ????????

    ????????
    ????????????org.springframework.boot
    ????????????spring-boot-starter-test
    ????????????test
    ????????

    ????????
    ????????????org.springframework.boot
    ????????????spring-boot-starter-web
    ????????

    ????????
    ????????????org.mybatis.spring.boot
    ????????????mybatis-spring-boot-starter
    ????????????1.1.1
    ????????

    ????????
    ????????????mysql
    ????????????mysql-connector-java
    ????????

    ????????
    ????????????org.springframework.boot
    ????????????spring-boot-devtools
    ????????????true
    ????????

    ?
    ????????
    ????????????org.projectlombok
    ????????????lombok
    ????????

    ?
    ????????
    ????????
    ????????????com.dangdang
    ????????????sharding-jdbc-core
    ????????????1.5.4
    ????????

    ????

  • 配置文件

  1. mybatis.config-locations=classpath:mybatis/mybatis-config.xml
    ?
    #datasource
    spring.devtools.remote.restart.enabled=false
    ?
    #data?source1
    spring.datasource.test1.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.test1.jdbcUrl=jdbc:mysql://127.0.0.1:3306/test_msg1?serverTimezone=UTC
    spring.datasource.test1.username=root
    spring.datasource.test1.password=123456
    ?
    #data?source2
    spring.datasource.test2.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.test2.jdbcUrl=jdbc:mysql://127.0.0.1:3306/test_msg2?serverTimezone=UTC
    spring.datasource.test2.username=root
    spring.datasource.test2.password=123456
  • 啟動文件

  1. @SpringBootApplication
    @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})?//排除DataSourceConfiguratrion
    @EnableTransactionManagement(proxyTargetClass?=?true)???//開啟事物管理功能
    public?class?ShardingJdbcApplication?{
    ????
    ????public?static?void?main(String[]?args)?{
    ????????SpringApplication.run(ShardingJdbcApplication.class,?args);
    ????}
    }
  • 實體類(Data注解可免去set/get方法)

  1. @Data
    public?class?User?{
    ?
    ????private?Long?id;
    ????private?Long?order_id;
    ????private?Long?user_id;
    ????private?String?userName;
    ????private?String?passWord;
    ????private?String?nickName;
    }
  • Service層

  1. @Slf4j
    @Service
    public?class?UserService?{
    ?
    ????@Resource
    ????private?UserMapper?userMapper;
    ?
    ????public?void?insert(User?user)?{
    ????????userMapper.insert(user);
    ????}
    }
  • Mapper層

  1. public?interface?UserMapper?{
    ?
    ????void?insert(User?user);
    }
  • 數(shù)據(jù)源配置和Mybatis配置和分庫分表規(guī)則(重要)

這里,我們是將多個數(shù)據(jù)源交給sharding-jdbc進行管理,并且有默認的數(shù)據(jù)源,當沒有設(shè)置分庫分表規(guī)則的時候就可以使用默認的數(shù)據(jù)源

分表:user_id%2 = 0的數(shù)據(jù)存儲到test_msg1,為1的存儲到test_msg0

分表:order_id%2 = 0的數(shù)據(jù)存儲到t_order_0,為1的存儲到t_order_1

  1. /**
    ?*?@Auther:?Tinko
    ?*?@Date:?2018/12/19?16:27
    ?*?@Description:?數(shù)據(jù)源配置和Mybatis配置和分庫分表規(guī)則
    ?*/
    @Configuration
    @MapperScan(basePackages?=?"com.example.shardingjdbc.mapper",?sqlSessionTemplateRef??=?"test1SqlSessionTemplate")
    public?class?DataSourceConfig?{
    ?
    ????/**
    ?????*?配置數(shù)據(jù)源0,數(shù)據(jù)源的名稱最好要有一定的規(guī)則,方便配置分庫的計算規(guī)則
    ?????*?@return
    ?????*/
    ????@Bean(name="dataSource0")
    ????@ConfigurationProperties(prefix?=?"spring.datasource.test1")
    ????public?DataSource?dataSource0(){
    ????????return?DataSourceBuilder.create().build();
    ????}
    ????/**
    ?????*?配置數(shù)據(jù)源1,數(shù)據(jù)源的名稱最好要有一定的規(guī)則,方便配置分庫的計算規(guī)則
    ?????*?@return
    ?????*/
    ????@Bean(name="dataSource1")
    ????@ConfigurationProperties(prefix?=?"spring.datasource.test2")
    ????public?DataSource?dataSource1(){
    ????????return?DataSourceBuilder.create().build();
    ????}
    ?
    ????/**
    ?????*?配置數(shù)據(jù)源規(guī)則,即將多個數(shù)據(jù)源交給sharding-jdbc管理,并且可以設(shè)置默認的數(shù)據(jù)源,
    ?????*?當表沒有配置分庫規(guī)則時會使用默認的數(shù)據(jù)源
    ?????*?@param?dataSource0
    ?????*?@param?dataSource1
    ?????*?@return
    ?????*/
    ????@Bean
    ????public?DataSourceRule?dataSourceRule(@Qualifier("dataSource0")?DataSource?dataSource0,
    ?????????????????????????????????????????@Qualifier("dataSource1")?DataSource?dataSource1){
    ????????Map?dataSourceMap?=?new?HashMap<>();?//設(shè)置分庫映射
    ????????dataSourceMap.put("dataSource0",?dataSource0);
    ????????dataSourceMap.put("dataSource1",?dataSource1);
    ????????return?new?DataSourceRule(dataSourceMap,?"dataSource0");?//設(shè)置默認庫,兩個庫以上時必須設(shè)置默認庫。默認庫的數(shù)據(jù)源名稱必須是dataSourceMap的key之一
    ????}
    ?
    ????/**
    ?????*?配置數(shù)據(jù)源策略和表策略,具體策略需要自己實現(xiàn)
    ?????*?@param?dataSourceRule
    ?????*?@return
    ?????*/
    ????@Bean
    ????public?ShardingRule?shardingRule(DataSourceRule?dataSourceRule){
    ????????//具體分庫分表策略
    ????????TableRule?orderTableRule?=?TableRule.builder("t_order")
    ????????????????.actualTables(Arrays.asList("t_order_0",?"t_order_1"))
    ????????????????.tableShardingStrategy(new?TableShardingStrategy("order_id",?new?ModuloTableShardingAlgorithm()))
    ????????????????.dataSourceRule(dataSourceRule)
    ????????????????.build();
    ?
    ????????//綁定表策略,在查詢時會使用主表策略計算路由的數(shù)據(jù)源,因此需要約定綁定表策略的表的規(guī)則需要一致,可以一定程度提高效率
    ????????List?bindingTableRules?=?new?ArrayList();
    ????????bindingTableRules.add(new?BindingTableRule(Arrays.asList(orderTableRule)));
    ????????return?ShardingRule.builder()
    ????????????????.dataSourceRule(dataSourceRule)
    ????????????????.tableRules(Arrays.asList(orderTableRule))
    ????????????????.bindingTableRules(bindingTableRules)
    ????????????????.databaseShardingStrategy(new?DatabaseShardingStrategy("user_id",?new?ModuloDatabaseShardingAlgorithm()))
    ????????????????.tableShardingStrategy(new?TableShardingStrategy("order_id",?new?ModuloTableShardingAlgorithm()))
    ????????????????.build();
    ????}
    ?
    ????/**
    ?????*?創(chuàng)建sharding-jdbc的數(shù)據(jù)源DataSource,MybatisAutoConfiguration會使用此數(shù)據(jù)源
    ?????*?@param?shardingRule
    ?????*?@return
    ?????*?@throws?SQLException
    ?????*/
    ????@Bean(name="dataSource")
    ????public?DataSource?shardingDataSource(ShardingRule?shardingRule)?throws?SQLException?{
    ????????return?ShardingDataSourceFactory.createDataSource(shardingRule);
    ????}
    ?
    ????/**
    ?????*?需要手動配置事務(wù)管理器
    ?????*?@param?dataSource
    ?????*?@return
    ?????*/
    ????@Bean
    ????public?DataSourceTransactionManager?transactitonManager(@Qualifier("dataSource")?DataSource?dataSource){
    ????????return?new?DataSourceTransactionManager(dataSource);
    ????}
    ?
    ????@Bean(name?=?"test1SqlSessionFactory")
    ????@Primary
    ????public?SqlSessionFactory?testSqlSessionFactory(@Qualifier("dataSource")?DataSource?dataSource)?throws?Exception?{
    ????????SqlSessionFactoryBean?bean?=?new?SqlSessionFactoryBean();
    ????????bean.setDataSource(dataSource);
    ????????bean.setMapperLocations(new?PathMatchingResourcePatternResolver().getResources("classpath:mybatis/*.xml"));
    ????????return?bean.getObject();
    ????}
    ?
    ????@Bean(name?=?"test1SqlSessionTemplate")
    ????@Primary
    ????public?SqlSessionTemplate?testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory")?SqlSessionFactory?sqlSessionFactory)?throws?Exception?{
    ????????return?new?SqlSessionTemplate(sqlSessionFactory);
    ????}
    }
  • 分庫規(guī)則

  • /**
    ?*?@Auther:?Tinko
    ?*?@Date:?2018/12/19?16:31
    ?*?@Description:?分庫規(guī)則
    ?*/
    public?class?ModuloDatabaseShardingAlgorithm?implements?SingleKeyDatabaseShardingAlgorithm?{
    ?
    ????@Override
    ????public?String?doEqualSharding(Collection?databaseNames,?ShardingValue?shardingValue)?{
    ????????for?(String?each?:?databaseNames)?{
    ????????????if?(each.endsWith(Long.parseLong(shardingValue.getValue().toString())?%?2?+?""))?{
    ????????????????return?each;
    ????????????}
    ????????}
    ????????throw?new?IllegalArgumentException();
    ????}
    ?
    ????@Override
    ????public?Collection?doInSharding(Collection?databaseNames,?ShardingValue?shardingValue)?{
    ????????Collection?result?=?new?LinkedHashSet<>(databaseNames.size());
    ????????for?(Long?value?:?shardingValue.getValues())?{
    ????????????for?(String?tableName?:?databaseNames)?{
    ????????????????if?(tableName.endsWith(value?%?2?+?""))?{
    ????????????????????result.add(tableName);
    ????????????????}
    ????????????}
    ????????}
    ????????return?result;
    ????}
    ?
    ????@Override
    ????public?Collection?doBetweenSharding(Collection?databaseNames,?ShardingValue?shardingValue)?{
    ????????Collection?result?=?new?LinkedHashSet<>(databaseNames.size());
    ????????Range?range?=?(Range)?shardingValue.getValueRange();
    ????????for?(Long?i?=?range.lowerEndpoint();?i?<=?range.upperEndpoint();?i++)?{
    ????????????for?(String?each?:?databaseNames)?{
    ????????????????if?(each.endsWith(i?%?2?+?""))?{
    ????????????????????result.add(each);
    ????????????????}
    ????????????}
    ????????}
    ????????return?result;
    ????}
    }?
  • 分表規(guī)則

  • /**
    ?*?@Auther:?Tinko
    ?*?@Date:?2018/12/19?16:30
    ?*?@Description:?分表規(guī)則
    ?*/
    public?class?ModuloTableShardingAlgorithm?implements?SingleKeyTableShardingAlgorithm?{
    ?
    ????@Override
    ????public?String?doEqualSharding(Collection?tableNames,?ShardingValue?shardingValue)?{
    ????????for?(String?each?:?tableNames)?{
    ????????????if?(each.endsWith(shardingValue.getValue()?%?2?+?""))?{
    ????????????????return?each;
    ????????????}
    ????????}
    ????????throw?new?IllegalArgumentException();
    ????}
    ?
    ????@Override
    ????public?Collection?doInSharding(Collection?tableNames,?ShardingValue?shardingValue)?{
    ????????Collection?result?=?new?LinkedHashSet<>(tableNames.size());
    ????????for?(Long?value?:?shardingValue.getValues())?{
    ????????????for?(String?tableName?:?tableNames)?{
    ????????????????if?(tableName.endsWith(value?%?2?+?""))?{
    ????????????????????result.add(tableName);
    ????????????????}
    ????????????}
    ????????}
    ????????return?result;
    ????}
    ?
    ????@Override
    ????public?Collection?doBetweenSharding(Collection?tableNames,?ShardingValue?shardingValue)?{
    ????????Collection?result?=?new?LinkedHashSet<>(tableNames.size());
    ????????Range?range?=?(Range)?shardingValue.getValueRange();
    ????????for?(Long?i?=?range.lowerEndpoint();?i?<=?range.upperEndpoint();?i++)?{
    ????????????for?(String?each?:?tableNames)?{
    ????????????????if?(each.endsWith(i?%?2?+?""))?{
    ????????????????????result.add(each);
    ????????????????}
    ????????????}
    ????????}
    ????????return?result;
    ????}
    }
  • 與Mysql交互的配置的文件

  • "1.0"?encoding="UTF-8"??>
    "-//mybatis.org//DTD?Mapper?3.0//EN"?"http://mybatis.org/dtd/mybatis-3-mapper.dtd"?>
    "com.example.shardingjdbc.mapper.UserMapper"?>
    ?
    ????"Base_Column_List"?>
    ????????id,?userName,?passWord,?user_sex,?nick_name
    ????
    ?
    ????"insert"?parameterType="com.example.shardingjdbc.entity.User"?>
    ????????INSERT?INTO
    ????????t_order
    ????????(order_id,user_id,userName,passWord)
    ????????VALUES
    ????????(#{order_id},#{user_id},#{userName},?#{passWord})
    ????
    ?

git傳送門

https://github.com/MissDistin/sharding-jdbc-1

然后,測試可行!??!



版權(quán)聲明:本文為博主原創(chuàng)文章,遵循?CC 4.0 BY-SA?版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

本文鏈接:

https://blog.csdn.net/a992795427/article/details/85102918



粉絲福利:108本java從入門到大神精選電子書領(lǐng)取

???

?長按上方鋒哥微信二維碼?2 秒
備注「1234」即可獲取資料以及
可以進入java1234官方微信群



感謝點贊支持下哈?


瀏覽 57
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 亚洲福利视频网站| 亚洲免费人妻| 日本黄色片| 91精品婷婷国产综合久久竹菊| 亚洲资源网| 国产一级A片久久久免费看快餐| 亚洲小说欧美激情另类A片小说| 伊人成人在线视频观看| 亚洲午夜无码久久久| 欧美日韩成人在线观看| 亚洲视频中文字幕| 成人黄色在线| 大香蕉伊人免费| 综合色五月| 欧美一区三区| 青娱乐亚洲自拍| 北条麻妃视频在线观看| 色福利网| 黄片网站在线免费观看| www.xxx国产| 99热在线免费| 一本一道久久综合狠狠躁牛牛影视 | 久久艹逼| 亚洲免费在线播放| 高清免费无码| 色色色91| 亚洲激色| 天堂中文字幕在线观看| 成人在线无码| 人人操人人透| 另类TS人妖一区二区三区| 日韩成人三级| 俺来也俺也去| 中文字幕日韩人妻| 亚洲成人中文字幕| 黃色毛片A片AAAA级20| 国产中文字字幕乱码无限| 久久理论| 亚洲视频免费看| 精品国产va久久久久久| 国模无码在线| 婷久久久| 日本视频精品| 在线观看污网站| 日韩视频在线免费观看| 亚洲综合免费观看高清完整版在线| 中文字幕网站在线观看| 偷拍久久久| 久久夜色精品国产噜噜亚洲AV| 国产操逼小视频| 伊人狠狠蜜桃亚洲综合| 中文字幕伊人| 亚洲欧洲视频在线观看| 国产女人18水真多18精品 | 北条麻妃久久久| 亚洲成人午夜电影| 亚洲天堂无码高清| 91在线精品一区二区| 一区二区三区AV| 一区二区小视频| 91三级在线观看| 国产在线观看AV| 中国老熟妇| jizz免费视频| 欧美操逼网址| 亚洲无码免费在线| 亚洲无码黄色片| 亚洲中文字墓| A在线观看| 996久久| 久99在线视频| 无码av一区二区| 日韩无码一二三| 色五月天导航| 国产精品AV在线观看| 天天干天天干天天干| 日韩逼逼| 日日操操| 中文字幕一区二区三区人妻在线视频| 老司机精品| 97人人插| 国产激情精品视频| 人妻二区| 欧美AAAAAA视频| 肏屄视频在线看| 亚洲AV成人无码| 久干妞| 婷婷无码在线| 欧美精品久久久久久久多人混战| 黄片网站免费在线观看| 日韩A级毛片| 欧美成人在线免费| 国产黄色视频网站在线观看| 女人A片一级黄色| 国产熟睡乱子伦午夜视频_第1集 | 一级A片黃色A片| 双飞人妻13p| 女人BBBB| 国产精品无码7777777| 精品人妻一二三区| 天堂无码高清| 呦小BBBB小小BBBB| av在线资源网站| 色五月激情网| 亚洲第一福利视频| 午夜av电影| 五月婷婷综合在线| 一级无码毛片| 欧美日韩国产成人电影| 四川少妇BBw搡BBBB槡BBBB| 青青操久久| 欧美一二三区黄色免费视屏| www黄色在线观看| 亚洲三级片在线观看| 亚洲人免费视频| 狠狠操在线| 亚洲天堂在线观看视频网站| 国产精品一区在线| 国产无码一二三区| 色屁屁草草影院ccyycom| 精品欧美无人区乱码毛片| 无码专区av| 中文最新天堂8√| AV婷婷在线| 免费观看黄色小视频| 九九热毛片在线观看| 丁香啪啪| 成人免费大香蕉| 亚洲无码高清免费| 久久婷婷视频| 美女黄色片| 91新婚人妻偷拍| 国产精品久久久久久久久久久免费看 | 日韩高清无码一区| 久久久久99精品成人片三人毛片| 豆花网无码视频观看| 欧美一级AA大片免费看视频| 成人免费AV| 91在线超碰| 一级a看片在线观看| 性爱无码AV| 色婷婷中文字幕| 成人天堂一区二区三区| 国产黄色不卡| 欧美日韩亚洲视频| 99热在线观看者| 国产成人三级片| 91嫖妓站街埯店老熟女| 国产欧美日韩综合| 草逼电影| 国语偷拍| 成人AV婷婷| 国产乱码一区二区三区四区在线 | 日韩欧美精品在线| 草免费视频| 免费观看黄色视频网站| 麻豆黄色电影| 中文字幕观看av| 日韩欧美成人视频| 99re在线观看观看这里只有精品 | 蜜桃av在线播放| 成人理伦A级A片在线论坛| 久久青娱乐| 日本成人激情视频| 免费看一级无码成人片| 一区二区视频在线| 天堂a√在线8| 99热加勒比| 最近中文字幕免费MV第一季歌词怀孕| 日韩操屄视频| 一卡二卡在线视频| 欧美自拍性爱视频| 国产草逼视频| 黄在观看线| 加勒比无码综合| 91AV在线播放| 一级a免一级a做免费线看内裤的注意事项 | 福利导航视频| 日本三级片免费观看| 亚洲毛片在线观看| 五月丁香六月激情综合| 青青草成人免费在线视频| 在线天堂av| 日韩av一级| 亚洲欧美精品| 91无码在线视频| 久综合网| 色tv在线| 四个熟妇搡BBBB搡BBBB| 欧美黄色a片| 人妻无码精品| 欧美网站在线观看| 91久久精品日日躁夜夜躁欧美| 在线观看三级网址| 国产成人精| 欧美激情一区二区A片成人牛牛| 久久精品一区二区三区四区五区| 欧美精品在线观看视频| 色婷婷在线播放| 乌克兰性爱视频| 久久国产高清视频| 91热| 久色精品| 亚洲中文无码av| 亚洲天堂本一| 婷婷五月av| 蜜臀久久久99久久久久久久| 国产字幕在线观看| 欧洲黑人成人A版免费视频| 成人AAA片| 日韩无码中文字幕视频| 伊人成人免费视频| 午夜av在线播放| 狼友视频在线观看18| 日韩国产一区二区| 四虎成人精品在永久免费| 91亚洲精华国产精华精华液| 日本大胆中出| 国产激情视频在线观看| 黄色天堂| 精品日韩AV| 亚洲小电影在线观看| 亚洲中文av| 国产91在线亚洲| 丁香五月亚洲| 米奇色色色| 91精品国产闺蜜国产在线闺蜜| 亚洲一级黄色电影| 久久天堂网| 大香蕉精品在线视频| 91在线综合| 久久久久久无码| 粉嫩小泬BBBBBB免费看| 国产精品福利在线播放| 91在线无码精品秘网站| 国产乱伦电影| 国产A片免费| 一级片学生妹| AV天堂中文字幕| 在线观看免费黄视频| 97无码视频| 中文字幕乱视频| 亚洲最大的成人网站| 午夜精品人妻无码| 99日韩精品| 日韩精品一区二区亚洲AV观看| 久久国产精品电影| av一卡二卡| 国产伦子伦一级A片免费看老牛| 亚洲777| 山东熟妇搡BBBB搡BBBB| 国产午夜在线视频| 人妻精品在线| 撸一撸在线| 无码99| 天干夜天干天天天爽视频| 老妇槡BBBB| 日韩亚洲精品中文字幕| 亚洲AV图片| 国产亲子乱婬一级A片借种| 欧美久久大香蕉| 不卡a12| AV资源在线免费观看| 日韩一区二区视频在线观看| 日韩经典视频在线播放| 亚洲免费在线婷婷| 老女人操逼网| 亚洲欧美精品AAAAAA片| 91操美女视频| 欧美干干| www.777熟女人妻| 国产一二| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 蜜臀久久99精品久久久久酒店更新时间| 高清无码在线免费视频| 日本中文无码| 亚洲成人黄色视频| 年轻女教师高潮2| 国产91嫩草乱婬A片2蜜臀| 国产乱叫456在线| 99国产高清| 日本中文不卡| 超碰人人妻| 中文字幕精品视频在线观看| 一级黄色电影免费观看| 人妻二区| 七十路の高齢熟妇无码| 男人的天堂在线视频| 搡BBBB推BBBB推BBBB| 91视频在线观看免费| 亚洲一级片| 日韩免费在线视频| 成人视频91| 国产又黄又大又粗的视频| 嫩草在线播放| 嘉兴少妇按摩69XX| 人妻精品一区二区| 啊啊啊网站| 精品无码视频| 密臀福利导航| www.seses| 不卡视频一区二区三区| 你懂的网站在线观看| 中文无码日韩欧美久久| 亚洲91在线| 手机不卡黄色视频在线| 久久艹综合网| 久久私人影院| 麻豆mdapp01.tⅴ| 中文字幕视频一区| 99欧美精品| 97爱爱爱| 欧美一级网| 色哟哟国产精品| 伊人大香蕉视频| 91白丝喷水自慰网站| 日韩精品一区二区三区黄冈站长| 日韩无码精品电影| 操东北老女人| 精品国产久久久久| 偷拍视频第一页| 亚洲在线视频免费观看| 精品久久视频| 人人操91| 日本一区二区三区在线播放| 亚洲秘无码一区二区三区欧美| 摸BBB槡BBBB搡BBB,,,,,| 青青色视频| 国产欧美精品| 国产欧美在线不卡| 97大香蕉在线视频| 国产色无码网站www色视频| Av天堂图片在线| 国产精品免费久久| 亚洲第一毛片| 一区在线观看| 亚洲性爱手机版| 成人777777免费视频色| 亚洲va欧洲va国产va不卡| 毛片网站在线| 中文字幕无码A片久久| 天天艹av| 中文字幕亚洲欧美| 亚洲色欲色欲www在线成人网| 91乱子伦国产乱子伦| 乳揉みま痴汉电车羽月希免费观看| 操逼大毛片| 国产精品九九九九九九| 91精品国产综合久久久蜜臀主演| 亚洲精品免费视频| 奇米四色秒播| 五月天综合在线| 国产视频在线免费观看| 特级av| 欧美视频一区二区三区| 97人妻人人操| 水蜜桃网站在线观看| 嫩草亚洲小泬久久夂| 日韩精品你懂的| 偷拍无码| 青青成人| 日韩在线视频网| 特级西西西88大胆无码| 国产一级婬片A片AAA樱花| 毛片毛片毛片毛片| 亚洲国产av电影| 一级a看片在线观看| 国产黄色在线免费观看| 苍井空亚洲精品AA片在线播放| 777偷窥盗摄00000| 2019人人操| 日韩AV在线电影| 天堂av中文字幕| 欧美在线中文| 91偷拍网| 国产一级特黄| 少妇bbb搡bbbb搡bbbb| 丰满人妻一区二区三区蜜桃视频| 国产在线欧美在线白浆| 亚洲婷婷AV| 澳门免费毛片| 香蕉日逼| 在线亚洲欧洲| 大鸡巴久久久| 午夜福利不卡视频| 免费内射网站| 亚洲日韩成人| 在线播放一区二区三区| 超碰在线观看99| 超碰老熟女| 99久在线视频| 大肉大捧一进一出两腿| 亚洲视频在线免费| 国产一级婬片A片AAA樱花| 粉嫩AV蜜乳AV蜜臀AV蜂腰AV | 美女福利视频| 三级片中文字幕| 亚洲国产精品成人综合色在线婷婷| 黄色av免费观看| 狼友在线视频| 亚洲精品国产精品国自产网站| 97成人在线| 北条麻妃二区三区| 操屄视频在线| 欧美h网站| 色综合久久久无码中文字幕999| 日韩一区二区三区视频| 国产精品久久7777777精品无码| 爆草美女| 亚洲成人大香蕉视频| 日本中文字幕免费| 日韩福利| 中文字幕av免费观看| 肏逼网站| 麻豆一级| 日韩午夜成人| 国产黄在线| 在线视频亚洲| 免费一级AAAAA片在线播放| 免费无码成人片在线观看在线| 亚洲手机在线播放| 天天久久综合| 伊人亚洲综合| 国内成人自拍| 99在线国产| 怡红院欧美| 亚洲jizzjizz| 亚洲xxxxx| 无码人妻丰满熟妇区17水蜜桃 | 亚洲在线免费观看| 黄色一级片免费观看| 无码国产精品一区二区三| 欧美另类综合| 人人操人人爱人人拍| 欧美亚洲成人网| 久久久久人| 欧美三级电影在线观看| 日日爱av| 欧美成人久久| 中文字幕日本无码| 亚洲国产成人在线| 欧美性69| 波多野结衣视频无码| 激情五月丁香婷婷| 国产欧美日韩在线播放| 激情六月天| 人人看人人摸人人草| 巨乳无码噜噜噜久久久| 337p大胆色噜噜噜噜噜| 人妻中文字幕av| 久久女人| 久久精品毛片| 亚洲一区二区三区免费视频| 五月丁香欧美| 欧美一级婬片AAAAAA片| 精品日韩在线视频| 日韩人妻无码一区| 一级电影视频去去去| 五月天激情午夜福利| 制服丝袜大香蕉| 色婷久久| 国产91一区在线精品| 婷婷午夜精品久久久久久性色AV| 丁香六月婷婷综合激情欧美| 国产精品视频一区二区三| 超碰成人97| 特级爱爱视频| www黄片| www五月天| 亚洲视频在线免费| 黄色国产| 国产日韩欧美在线播放| 亚洲AⅤ无码一区二区波多野按摩| 欧美一区二区三区在线| 水蜜桃视频免费观看| 欧美性爱在线播放| 丁香婷婷久久久综合精品国产| 人人肏| 羽月希奶水饱胀在线播放| 97国产在线| 日本毛片在线观看| 国产91高跟丝袜| 久久久国产91桃色一区二区三区| 日本电影一区二区| 99视频免费在线| 久操视频在线| 亚洲成人大香蕉| 狠狠躁日日躁夜夜躁A片视频| 精品91海角乱| 粗长哭叫打桩H体育生| 欧美99在线| 内射免费看| 深夜福利18| 337P粉嫩大胆噜噜噜55569| 亚洲中文自拍| 精品人妻一区二区三区日产| 99久久久国产精品无码| 最新免费一区二区三区| 大香蕉九九| 波多野结衣无码高清| 欧美日韩一级视频| 在线播放一区二区三区| 色秘乱码一区二区三区| 亚洲成人无码电影| 黄色无码电影| 亚洲日韩免费| 亚洲午夜AV| 猫咪视频大全视频| 日本三级在线| 亚洲AV无码精品成人| 国产人成| aa人人操夜夜操人人| 国产亚洲欧美在线| 九九综合伊人7777777| 人妻毛片| 天天操夜夜操视频免费高清 | 四川BBB操BBB| Av天堂图片在线| 爽好紧别夹喷水欧美| 99精品视频在线观看免费| 免费视频一区二区三区四区| 十八禁视频在线观看网站.www| 少妇成人网| 天天爽爽爽爽爽成人片| 国产在线小视频| 亚洲中文字幕高清| 国产AV影片| 悠悠久久久| 欧美性爱a视频| 日韩欧美一级片| 国产少妇| 久久精品小视频| 久久艹久久| 操逼网站在线看| 91网站在线免费观看| av三级片在线播放| 亚洲福利视频电影精| 欧美不卡视频| 女人天堂av| 日韩免费视频一区二区| 欧美极品视频| 国产精品五月天| 丁香五月婷婷中文字幕| 在线观看操逼| 亚韩在线| 国产A片录制现场妹子都很多| 亚洲AV在线观看| 亚洲一级在线| 中文字幕在线观看免费高清电影| 国产欧美精品一区二区色综合| 2025av在线| 一道本无码在线播放| 思思热思思操| 国产成人午夜精品无码区久久麻豆| 国产乱子伦一区二区三区免看| 无码人妻AV一区| 大吊无码| 翔田千里无码| 韩国av在线| 全国最大成人网站| 在线观看免费无码视频| 久草超碰在线| 无码精品电影| 午夜AV电影| 欧美三级网站在线观看| 草逼视频网站| 久久久久久大香蕉| 国产精品嫩草久久久久yw193 | 欧洲一区二区| 亚洲欧美日韩一区二区| 亚洲AV无码成人精品区| 国产棈品久久久久久久久久九秃| 亚洲成人大香蕉| 日本操逼片| 成人短视频在线观看| 京东一热本色道久久爱| AⅤ在线| AV无码免费一区二区三区不卡| 偷拍-91爱爱| 乱子伦国产精品视频一级毛| 真人无码| 成人性爱视频网站| 亚洲A片一区二区三区电影网 | 校园春色av| 操逼毛片视频| 国产成人无码一区二区在线播放| 亚洲一区二区久久| 色婷婷av在线| 亚洲大片免费看| 日本欧美在线播放中文| 婷婷久久综合久| 91精品国产乱码香蕉黄瓜草莓| 91精品久久久久久久久久| 波多野结衣一级婬片A片免费下载| 97国产精品人人爽人人做| 91超碰人人操| 精品在线一区| 午夜看黄片| 大香蕉av在线观看| 无码一区二区视频| 91乱子伦国产乱子伦海的味道| 免费无码视频在线观看| 精品欧美一区二区三区| 五月天黄色电影| 蕉久中文字慕| 青青草无码在线视频| 亚洲无码AV麻豆| 美女少妇激情BBBB| 中文字幕性爱电影| 人妻少妇精品无码| 91无码AⅤ在线| 日本高清无码在线| A免费视频| 欧美日韩毛| 久草在线| 亚洲中文自拍| 大香蕉电影网站| 国产一级二级片| 中文字幕99页| 男女啪啪| 无码人妻一区二区三区免费n狂飙 性猛交AAAA片免费看蜜桃视频 | 99久久精品国产精品有折扣吗| 性爱视频免费网站| 无码视频一区| 国产熟女一区二区视频网站| 亚洲欧美精品AAAAAA片| 东京热av一区二区| 成人免费精品视频| jizz在线观看| 在线视频你懂得| 国产无码在线影院| 日韩干| japanese在线观看| 亚洲一区二区三区视频| 日韩熟妇无码中文字幕| 欧美视频在线观看免费| 久草黄色电影在线观看| 四川揉BBB搡BBB| 好男人WWW社区在线视频夜恋| 欧美日韩成人在线观看| 无码免费视频在线观看| 国产激情无码| 亚洲视频在线免费| 一区二区三区四区在线看| 成人久久精品| 日本黄色视频电影| 免费在线观看内射| 青青青国产| 少妇搡BBBB搡BBB搡澳门| 国产欧美一区二区| 好逼123| 99久久99久久兔费精桃| 亚洲高清无码在线视频| 成人免费观看视频| 青青草成人免费在线视频| www日韩欧美| 亚洲精品成人无码AV在线| 色婷婷AV一区二区三区软件| 国内毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 亚洲a片在线观看| 日本爱爱网站| 亚洲精品一区二区二区的游戏情况| 蜜桃精品一区二区| 久久精品夜色噜噜亚洲A∨| 伊人网址| 国产在线观看黄| 青娱乐精品在线| 人人妻人人爽人人澡人人精品| 久草视频免费在线观看| 欧美三级不卡| 欧美一级一区| 日本高清一区| 国产最新在线| 嘿嘿午夜影院| 国产亚洲天堂| 日本韩国无码| 99色色| 欧美日韩在线观看中文字幕 | 亚洲欧美成人片| 久久久久久免费毛片精品| 天堂网av在线| 国产成人tv| 欧美aaa视频| 日日av| 午夜精品一区二区三区在线成人| 欧美人妻中文字幕| 99人妻视频| 国产人妻人伦精品1国产丝袜| 亚洲色色色| 高h视频在线观看| 超碰在线日韩| 三级片网站在线观看| 日本成人中文字幕| 日韩在线观看视频免费| 亚洲黄色视频网站在线观看| 91操操| 久久久永久免费视频| 91免费高清视频| 成人aV免费观看| 亚洲七区| 色老板亚洲| 亚洲午夜久久久之蝌蚪窝| 日韩夜夜操| 9I成人免费版| 国产在线精品自拍| 成人做爰100部免费网站| 亚洲AV在线人妻| 亚洲日韩欧美色图| 免费v片在线观看| 免费人成年激情视频在线观看 | 亚洲欧美美国产| 97国产精品手机| 色婷婷7777| 人人澡人人爽人人精品| 伊人久久大香色综合久久| 免费日韩视频| 亚洲天堂av在线观看| 久久艹久久| 国产成人免费视频| 婷婷国产综合| 色中文字幕| 久久久久久大香蕉| 欧美操B| 婷婷无码成人精品俺来俺去| 国产色av| 激情三区| 欧美黄片在线| 久久情| 黄色国产| 久久免费播放视频| 午夜黄色| 亚洲AV无码精品国产| av免费网站| 精品成人在线视频| 婷婷亚洲综合| 久草麻豆| 黄片视频免费| 无码精品人妻| 无套进入无套内谢| 欧美三级黄色| 欧美日韩AV| 超碰97资源| 日韩精品成人在线视频| 色婷婷视频在线播放| 午夜福利AV电影| 国产精品av在线| 一大高清日韩| 三级片无码在线播放| 免费操逼网址| A免费视频| 野花Av| 欧美黄色免费看| 国产99页| 五月丁香在线观看| 国产精品高潮呻吟| 中国熟女网站| 岛国av免费看| 日韩中文久久| 亚洲无aV在线中文字幕| 国产精品v欧美精品v日韩精品| 久久66| 看免费黄色视频| 韩国毛片基地久久| 成人婷婷| 天天干欧美| 亚洲无码中文字幕在线观看| 国产在线A片| 国产乱国产乱老熟300视频| 欧美黄色网址| 色色色色AV| 国产77777| 亚洲精选一区二区三区| 日韩二| 国产精品黄色电影| 亚洲精品黄色电影| 成人视频网| 久久精品国产精品| 日韩操逼AV| 精品视频在线播放| 污网站免费观看| 伊人9| 日韩高清AV| 色三区| 瑟瑟免费视频| 国产A片免费看| 色婷婷精品视频| 亚洲人成77777| 亚洲无码电影在线| 欧美熟妇BBB搡BBB| 在线免费观看国产| 亚州精品人妻一二三区| 97AV在线| 边摸边插| 欧美成人视频在线观看| 玖玖99视频| av在线无码观看| 国产AV影院| 精品成人免费视频| 青青草91在线| 操逼麻豆| 久久视频免费看| 狼人香蕉网| 亚洲无码。| 天堂vs亚洲| 亚色天堂| 欧美精品一级片| 日日夜夜综合| 大鸡巴黄色视频免费观看| 成人免费黄色| 欧美操b视频| 免费欧美成人网站| 无码中文字幕高清| 中文字幕第5页| 成人A片免费视频| 成人综合在线观看| 国产美女操逼网站| 91亚洲成人| 丁香五月婷婷在线| 一本色道久久无码人妻精品69| 黑人粗大无码| 波多野结衣网址| 亚洲精品国产av| 翔田千里在线播放| 中文字幕无码一区二区三区一本久| 老妇性BBWBBWBBWBBW| 日本一级黃色大片看免费| 久久久久亚洲AV无码麻豆| 日韩精品无码AV| 亚洲无码A片在线| 黄片视频免费看| 成人毛片在线| 蜜桃视频网址| 天天草av| 亚洲一区色| 91中文字幕| 99色视频| 欧美中文在线观看| 久久精品在线播放| 欧美性爱AAA| 波多野结衣成人网站| 999精品视频| 精品无码久久| 精产国品一区二区区别| 日本高清无码在线观看| 翔田千里无码一区| 91吊逼| 操逼天堂| 久久久久黄色| 亚洲第一综合| 色丁香在线| 8050午夜| 在线一级片| 国精产品一区一区三区四川| 91久久成人| 97人妻一区二区精品视频| 国产一二| 午夜av在线播放| 偷拍视频网站| 不卡的av在线| 欧美在线无码| 久热思思| 欧美日韩免费在线视频| 一区二区成人免费视频| 91乱伦| 精品国产国产没封| 国产淫语| 高清无码激情| 欧美日逼网| AV2014天堂网| 日韩视频久久| 四虎影成人精品A片| 琪琪色五月天| 天天艹天天| 水果派红桃AV解说| 国产一级a毛一级a做免费的视频 | 影音先锋色资源站| 欧美3P视频| 韩国日本美国免费毛片| 一级黄片免费看| 成人在线免费| 操逼在线视频| 安徽妇女BBBWBBBwm| 日韩视频一区二区三区| 五月丁香综合激情| 日本爱爱网站| 在线观看国产免费视频| 岛国A片| 国产欧美日本| 少妇搡BBBB搡BBB搡视频一级 | 久草com| 欧美v在线观看| 中文字幕第27页| 国产女人十八水真多| 揉BBB搡BBB搡BBB| 无码国产99精品久久久久网站| 黑人精品XXX一区一二区| 最新中文字幕AV| 日韩AV在线天堂| 婷婷成人综合网| 狠狠撸天天操|