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

Spring boot的Mybatis多數據源配置

運維 數據庫運維
最近在項目開發中,需要為一個使用 MySQL 數據庫的 SpringBoot 項目,新添加一個 PLSQL 數據庫數據源,那么就需要進行 SpringBoot 的多數據源開發。代碼很簡單,下面是實現的過程。

 最近在項目開發中,需要為一個使用 MySQL 數據庫的 SpringBoot 項目,新添加一個 PLSQL 數據庫數據源,那么就需要進行 SpringBoot 的多數據源開發。代碼很簡單,下面是實現的過程。

環境準備

實驗環境:

  • JDK 1.8
  • SpringBoot 2.4.1
  • Maven 3.6.3
  • MySQL 5.7

因為我本地只有 MySQL 數據庫,為了方便演示,我會在啟動一個本地 MySQL,在 MySQL 創建兩個數據庫,每個庫中均有一個表,以此進行演示。

數據準備

本地 MySQL 端口默認不做改動,端口號 3306。

創建數據庫 demo1,demo2。在 demo1 數據庫中創建表 book。

  1. -- create table 
  2. create table Book 
  3.     id          int auto_increment 
  4.         primary key
  5.     author      varchar(64)  not null comment '作者信息'
  6.     name        varchar(64)  not null comment '書籍名稱'
  7.     price       decimal      not null comment '價格'
  8.     createTime  datetime     null comment '上架時間'
  9.     description varchar(128) null comment '書籍描述' 
  10. ); 
  11. -- insert data 
  12. INSERT INTO demo1.Book (id, author, name, price, createTime, description) VALUES (1, '金庸''笑傲江湖', 13, '2020-12-19 15:26:51''武俠小說'); 
  13. INSERT INTO demo1.Book (id, author, name, price, createTime, description) VALUES (2, '羅貫中''三國演義', 14, '2020-12-19 15:28:36''歷史小說'); 

 在 demo2 數據庫中創建表 user。

  1. -- create table 
  2. create table User 
  3.     id       int auto_increment 
  4.         primary key
  5.     name     varchar(32) null comment '用戶名稱'
  6.     birthday date        null comment '出生日期' 
  7.     comment '用戶信息表'
  8. -- insert data 
  9. INSERT INTO demo2.User (id, name, birthday) VALUES (1, '金庸''1924-03-10'); 
  10. INSERT INTO demo2.User (id, name, birthday) VALUES (2, '羅貫中''1330-01-10'); 

 數據準備完畢,表中都新增了兩條數據。

項目準備

這里直接從 Spring 官方上初始化一個添加了 web、lombok、mybatis、mysql 依賴的 SpringBoot 項目。

  • 訪問直接下載: https://start.spring.io/starter.zip?type=maven-project&language=java&bootVersion=2.4.1.RELEASE&baseDir=demo&groupId=com&artifactId=wdbyte&name=demo&description=Demo%20project%20for%20Spring%20Boot&packageName=com.wdbyte.demo&packaging=jar&javaVersion=1.8&dependencies=mybatis,lombok,web,mysql

如果你手上已經有了一個 SpringBoot 項目,既然你想改造成多數據源,那么你應該已經有了一個數據源了,如果新增的數據源數據庫和目前的一致,你可以直接使用你的項目進行改造測試。

多數據源

SpringBoot 的多數據源開發十分簡單,如果多個數據源的數據庫相同,比如都是 MySQL,那么依賴是不需要任何改動的,只需要進行多數據源配置即可。

如果你新增的數據庫數據源和目前的數據庫不同,記得引入新數據庫的驅動依賴,比如 MySQL 和 PGSQL。

  1. <dependency> 
  2.     <groupId>mysql</groupId> 
  3.     <artifactId>mysql-connector-java</artifactId> 
  4.     <scope>runtime</scope> 
  5. </dependency> 
  6.  
  7. <dependency> 
  8.     <groupId>org.postgresql</groupId> 
  9.     <artifactId>postgresql</artifactId> 
  10.     <version>42.2.7</version> 
  11. </dependency> 

 連接配置

既然有多個數據源,因為數據庫用戶名密碼可能不相同,所以是需要配置多個數據源信息的,直接在 properties/yml 中配置即可。這里要注意根據配置的屬性名進行區分,同時因為數據源要有一個默認使用的數據源,最好在名稱上有所區分(這里使用 primary 作為主數據源標識)。

  1. ########################## 主數據源 ################################## 
  2. spring.datasource.primary.jdbc-url=jdbc:mysql://127.0.0.1:3306/demo1?characterEncoding=utf-8&serverTimezone=GMT%2B8 
  3. spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver 
  4. spring.datasource.primary.username=root 
  5. spring.datasource.primary.password
  6.  
  7. ########################## 第二個數據源 ############################### 
  8. spring.datasource.datasource2.jdbc-url=jdbc:mysql://127.0.0.1:3306/demo2?characterEncoding=utf-8&serverTimezone=GMT%2B8 
  9. spring.datasource.datasource2.driver-class-name=com.mysql.jdbc.Driver 
  10. spring.datasource.datasource2.username=root 
  11. spring.datasource.datasource2.password
  12.  
  13. # mybatis 
  14. mybatis.mapper-locations=classpath:mapper/*.xml 
  15. mybatis.type-aliases-package=com.wdbyte.domain 

 注意,配置中的數據源連接 url 末尾使用的是 jdbc-url .

因為使用了 Mybatis 框架,所以 Mybatis 框架的配置信息也是少不了的,指定掃描目錄mapper 下的 mapper xml 配置文件。

Mybatis 配置

如何編寫 Mybatis Mapper 或者如何使用工具生成 Mybatis Mapper 不是本文的重點,如果你不知道可以參考 Mybatis 官方文檔或者我之前的文章。

鏈接一: 使用 Mybatis(自動生成插件) 訪問數據庫

鏈接二: 使用 Mybatis 集成 pagehelper 分頁插件和 mapper 插件

下面我已經按照上面的兩個庫中的兩個表,Book 和 User 表分別編寫相應的 Mybatis 配置。

創建 BookMapper.xml 和 UserMapper.xml 放到配置文件配置的路徑 mapper 目錄下。創建 UserMapper 和 BookMapper 接口操作類放在不同的目錄。這里注意 Mapper 接口要按數據源分開放在不同的目錄中。后續好使用不同的數據源配置掃描不同的目錄,這樣就可以實現不同的 Mapper 使用不同的數據源配置。


Service 層沒有變化,這里 BookMapper 和 UserMapper 都有一個 selectAll() 方法用于查詢測試。

多數據源配置

上面你應該看到了,到目前為止和 Mybatis 單數據源寫法唯一的區別就是 Mapper 接口使用不同的目錄分開了,那么這個不同點一定會在數據源配置中體現。

主數據源

開始配置兩個數據源信息,先配置主數據源,配置掃描的 MapperScan 目錄為com.wdbyte.mapper.primary

  1. /** 
  2.  * 主數據源配置 
  3.  * 
  4.  * @author niujinpeng 
  5.  * @website: https://www.wdbyte.com 
  6.  * @date 2020/12/19 
  7.  */ 
  8. @Configuration 
  9. @MapperScan(basePackages = {"com.wdbyte.mapper.primary"}, sqlSessionFactoryRef = "sqlSessionFactory"
  10. public class PrimaryDataSourceConfig { 
  11.  
  12.     @Bean(name = "dataSource"
  13.     @ConfigurationProperties(prefix = "spring.datasource.primary"
  14.     @Primary 
  15.     public DataSource dataSource() { 
  16.         return DataSourceBuilder.create().build(); 
  17.     } 
  18.  
  19.     @Bean(name = "sqlSessionFactory"
  20.     @Primary 
  21.     public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception { 
  22.         SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); 
  23.         bean.setDataSource(dataSource); 
  24.         bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml")); 
  25.         return bean.getObject(); 
  26.     } 
  27.  
  28.     @Bean(name = "transactionManager"
  29.     @Primary 
  30.     public DataSourceTransactionManager transactionManager(@Qualifier("dataSource") DataSource dataSource) { 
  31.         return new DataSourceTransactionManager(dataSource); 
  32.     } 
  33.  
  34.     @Bean(name = "sqlSessionTemplate"
  35.     @Primary 
  36.     public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) { 
  37.         return new SqlSessionTemplate(sqlSessionFactory); 
  38.     } 

 和單數據源不同的是這里把

  1. dataSource 
  2. sqlSessionFactory 
  3. transactionManager 
  4. sqlSessionTemplate 

 都單獨進行了配置,簡單的 bean 創建,下面是用到的一些注解說明。

  • @ConfigurationProperties(prefix = "spring.datasource.primary") :使用spring.datasource.primary 開頭的配置。
  • @Primary :聲明這是一個主數據源(默認數據源),多數據源配置時 必不可少 。
  • @Qualifier :顯式選擇傳入的 Bean。

第二個數據源

第二個數據源和主數據源唯一不同的只是 MapperScan 掃描路徑和創建的 Bean 名稱,同時沒有 @Primary 主數據源的注解。

  1. /** 
  2.  * 第二個數據源配置 
  3.  *  
  4.  * @author niujinpeng 
  5.  * @website: https://www.wdbyte.com 
  6.  * @date 2020/12/19 
  7.  */ 
  8. @Configuration 
  9. @MapperScan(basePackages = {"com.wdbyte.mapper.datasource2"}, sqlSessionFactoryRef = "sqlSessionFactory2"
  10. public class SecondDataSourceConfig { 
  11.  
  12.     @Bean(name = "dataSource2"
  13.     @ConfigurationProperties(prefix = "spring.datasource.datasource2"
  14.     public DataSource dataSource() { 
  15.         return DataSourceBuilder.create().build(); 
  16.     } 
  17.  
  18.     @Bean(name = "sqlSessionFactory2"
  19.     public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource2") DataSource dataSource) throws Exception { 
  20.         SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); 
  21.         bean.setDataSource(dataSource); 
  22.         bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml")); 
  23.         return bean.getObject(); 
  24.     } 
  25.  
  26.     @Bean(name = "transactionManager2"
  27.     public DataSourceTransactionManager transactionManager(@Qualifier("dataSource2") DataSource dataSource) { 
  28.         return new DataSourceTransactionManager(dataSource); 
  29.     } 
  30.  
  31.     @Bean(name = "sqlSessionTemplate2"
  32.     public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory2") SqlSessionFactory sqlSessionFactory) { 
  33.         return new SqlSessionTemplate(sqlSessionFactory); 
  34.     } 

 注意:因為已經在兩個數據源中分別配置了掃描的 Mapper 路徑,如果你之前在 SpringBoot 啟動類中也使用了 Mapper 掃描注解, 需要刪掉 。

訪問測試

編寫兩個簡單的查詢 Controller 然后進行訪問測試。

  1. // BookController 
  2. @RestController 
  3. public class BookController { 
  4.  
  5.     @Autowired 
  6.     private BookService bookService; 
  7.  
  8.     @GetMapping(value = "/books"
  9.     public Response selectAll() throws Exception { 
  10.         List<Book> books = bookService.selectAll(); 
  11.         return ResponseUtill.success(books); 
  12.     } 
  13.  
  14. // UserController 
  15. @RestController 
  16. public class UserController { 
  17.  
  18.     @Autowired 
  19.     private UserService userService; 
  20.  
  21.     @ResponseBody 
  22.     @GetMapping(value = "/users"
  23.     public Response selectAll() { 
  24.         List<User> userList = userService.selectAll(); 
  25.         return ResponseUtill.success(userList); 
  26.     } 

 訪問測試,我這里直接 CURL 請求 

  1. ➜  ~ curl localhost:8080/books  
  2.   "code""0000"
  3.   "message""success"
  4.   "data": [ 
  5.     { 
  6.       "id": 1, 
  7.       "author""金庸"
  8.       "name""笑傲江湖"
  9.       "price": 13, 
  10.       "createtime""2020-12-19T07:26:51.000+00:00"
  11.       "description""武俠小說" 
  12.     }, 
  13.     { 
  14.       "id": 2, 
  15.       "author""羅貫中"
  16.       "name""三國演義"
  17.       "price": 14, 
  18.       "createtime""2020-12-19T07:28:36.000+00:00"
  19.       "description""歷史小說" 
  20.     } 
  21.   ] 
  22. ➜  ~ curl localhost:8080/users  
  23.   "code""0000"
  24.   "message""success"
  25.   "data": [ 
  26.     { 
  27.       "id": 1, 
  28.       "name""金庸"
  29.       "birthday""1924-03-09T16:00:00.000+00:00" 
  30.     }, 
  31.     { 
  32.       "id": 2, 
  33.       "name""羅貫中"
  34.       "birthday""1330-01-09T16:00:00.000+00:00" 
  35.     } 
  36.   ] 
  37. ➜  ~ 

 至此,多數據源配置完成,測試成功。

連接池

其實在多數據源改造中,我們一般情況下都不會使用默認的 JDBC 連接方式,往往都需要引入連接池進行連接優化,不然你可能會經常遇到數據源連接被斷開等報錯日志。其實數據源切換連接池數據源也是十分簡單的,直接引入連接池依賴,然后把創建 dataSource 的部分換成連接池數據源創建即可。

下面以阿里的 Druid 為例,先引入連接池數據源依賴。

  1. <dependency> 
  2.    <groupId>com.alibaba</groupId> 
  3.    <artifactId>druid</artifactId> 
  4. </dependency> 

 添加 Druid 的一些配置。

  1. spring.datasource.datasource2.initialSize=3 # 根據自己情況設置 
  2. spring.datasource.datasource2.minIdle=3 
  3. spring.datasource.datasource2.maxActive=20 

 改寫 dataSource Bean 的創建代碼部分。

  1. @Value("${spring.datasource.datasource2.jdbc-url}"
  2. private String url; 
  3. @Value("${spring.datasource.datasource2.driver-class-name}"
  4. private String driverClassName; 
  5. @Value("${spring.datasource.datasource2.username}"
  6. private String username; 
  7. @Value("${spring.datasource.datasource2.password}"
  8. private String password
  9. @Value("${spring.datasource.datasource2.initialSize}"
  10. private int initialSize; 
  11. @Value("${spring.datasource.datasource2.minIdle}"
  12. private int minIdle; 
  13. @Value("${spring.datasource.datasource2.maxActive}"
  14. private int maxActive; 
  15.  
  16. @Bean(name = "dataSource2"
  17. public DataSource dataSource() { 
  18.     DruidDataSource dataSource = new DruidDataSource(); 
  19.     dataSource.setUrl(url); 
  20.     dataSource.setDriverClassName(driverClassName); 
  21.     dataSource.setUsername(username); 
  22.     dataSource.setPassword(password); 
  23.     dataSource.setInitialSize(initialSize); 
  24.     dataSource.setMinIdle(minIdle); 
  25.     dataSource.setMaxActive(maxActive); 
  26.     return dataSource; 

 【編輯推薦】

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-01-04 09:33:31

SpringBootMybatis

2022-05-18 12:04:19

Mybatis數據源Spring

2024-10-30 10:22:17

2023-06-07 08:08:37

MybatisSpringBoot

2023-09-07 08:39:39

copy屬性數據源

2023-10-18 15:25:29

數據源數據庫

2009-08-14 10:26:27

ibatis多數據源

2020-11-24 09:56:12

數據源讀寫分離

2022-06-02 10:38:42

微服務數據源分布式

2022-12-19 07:21:35

Hutool-db數據庫JDBC

2025-01-17 09:11:51

2023-10-31 07:52:53

多數據源管理后端

2023-12-13 12:20:36

SpringMySQL數據源

2010-12-27 09:59:11

ODBC數據源

2009-06-15 13:24:46

JBoss數據源

2023-01-10 16:30:22

Spring數據庫

2020-03-13 14:05:14

SpringBoot+數據源Java

2020-06-02 07:55:31

SpringBoot多數據源

2025-01-09 11:21:25

2022-05-10 10:43:35

數據源動態切換Spring
點贊
收藏

51CTO技術棧公眾號

99国产精品视频免费观看| 欧美日韩女优| 白白色 亚洲乱淫| 日韩**中文字幕毛片| 一级特黄曰皮片视频| 只有精品亚洲| 欧美日韩激情美女| 国产成年人在线观看| 色欲av永久无码精品无码蜜桃 | 凹凸成人在线| 欧洲一区二区三区在线| 天堂8在线天堂资源bt| 都市激情在线视频| 99久久国产综合精品麻豆| 国产精品一区二区三| 日本学生初尝黑人巨免费视频| 91日韩视频| 亚洲美女黄色片| 制服下的诱惑暮生| 久久精品97| 色综合网站在线| 黄色激情在线视频| 粗大黑人巨茎大战欧美成人| 久久精品一区二区三区四区| 国产精品一区二区三区免费| 国产精品怡红院| 日日夜夜免费精品| 欧美亚洲在线观看| 精品无码久久久久| 欧美激情第二页| 久久精品小视频| 国产123在线| 亚洲制服欧美另类| 亚洲精品99999| 韩国三级在线看| 国产不卡精品在线| 欧美老年两性高潮| 少妇一级淫免费放| 超薄肉色丝袜脚交一区二区| 日韩欧美福利视频| 5月婷婷6月丁香| 国产蜜臀在线| 亚洲午夜久久久久中文字幕久| 男人的天堂视频在线| 成视频免费观看在线看| 亚洲欧美成人一区二区三区| 91社在线播放| 国产在线观看免费麻豆| 亚洲欧美国产高清| 国内精品国产三级国产99| 97caopor国产在线视频| 亚洲精品久久久久久国产精华液| 最新中文字幕久久| 日韩av毛片| 亚洲电影中文字幕在线观看| 成人性生活视频免费看| 色偷偷偷在线视频播放| 色综合欧美在线| 香蕉视频禁止18| 视频欧美精品| 日韩女优电影在线观看| 国产一卡二卡三卡四卡| 女人抽搐喷水高潮国产精品| 亚洲精品视频中文字幕| 91禁男男在线观看| 欧美成人69| 91大神在线播放精品| 午夜影院免费在线观看| 日本成人在线电影网| 国产日产欧美精品| 国产99视频在线| 成人av在线观| 欧美日韩国产不卡在线看| 成年网站在线| 亚洲免费看黄网站| 国产老熟妇精品观看| 成人va天堂| 欧美一区日韩一区| 久久一区二区电影| 久久高清精品| 欧美国产精品人人做人人爱| 色播视频在线播放| 日本不卡一区二区三区高清视频| 成人黄色短视频在线观看 | 亚洲性av在线| 日韩在线一卡二卡| 亚洲精品少妇| 国产精品视频免费观看www| www.日韩在线观看| 久久久久国产一区二区三区四区 | 在线综合+亚洲+欧美中文字幕| 精人妻一区二区三区| 欧美日韩爱爱| 精品中文字幕在线2019| 国产又粗又猛又黄视频| 国产一区二区三区香蕉| 久久久久久久有限公司| dy888亚洲精品一区二区三区| 狠狠色狠色综合曰曰| 一区二区三区欧美精品| 香蕉久久99| 久久伊人免费视频| 中文字幕精品视频在线观看| 国产精品91xxx| 日韩欧美一区二区三区四区五区 | 国产综合视频一区二区三区免费| 亚洲人成小说网站色在线| 黄色av网址在线播放| www.欧美| 在线亚洲午夜片av大片| 久久露脸国语精品国产91| 经典一区二区三区| 日韩动漫在线观看| 久热在线观看视频| 欧美mv日韩mv国产网站app| 俄罗斯毛片基地| 乱人伦精品视频在线观看| 国产精品99久久久久久久| 天天在线视频色| 91黄色激情网站| 国产精品无码毛片| 精品二区视频| 99久久久精品免费观看国产| 888av在线| 在线观看亚洲成人| 制服 丝袜 综合 日韩 欧美| 亚洲少妇一区| 九九九热999| 波多野结衣中文在线| 日韩亚洲欧美成人一区| 成年人一级黄色片| 精品制服美女丁香| 在线免费观看成人网| www.精品国产| 深夜福利一区二区| 91精品人妻一区二区三区果冻| 国产日韩精品视频一区| 精品视频无码一区二区三区| 精品99又大又爽又硬少妇毛片| 亚洲在线成人| 国产精品美女诱惑| 先锋成人av| 麻豆精品国产91久久久久久| 精品综合久久久| 爱情岛亚洲播放路线| 欧美zozozo| 麻豆91精品91久久久| 国产精品911| 国产玉足脚交久久欧美| 成人性生交大片免费看中文视频| 欧美精品久久久久a| 懂色av一区二区三区四区| 日本猛少妇色xxxxx免费网站| 精品国产乱码久久久久久果冻传媒| 人九九综合九九宗合| 国产亚洲日本欧美韩国| 精品无码久久久久成人漫画| 精一区二区三区| 黄色一级视频播放| 日韩国产在线不卡视频| 久久青草福利网站| 婷婷在线免费视频| 色婷婷av久久久久久久| gv天堂gv无码男同在线观看| 中日韩美女免费视频网址在线观看 | 91av资源网| 一本色道久久综合亚洲精品酒店| 国产va免费精品高清在线观看| jizz在线免费观看| 欧美一级日韩不卡播放免费| 青娱乐91视频| 99精品1区2区| www.精品在线| 韩日欧美一区| 欧美一区少妇| 免费精品一区| 91精品国产色综合| 91网页在线观看| 欧美电影免费提供在线观看| 久草视频在线观| 国产精品女上位| 国产黑丝一区二区| 麻豆精品视频在线| www.99热这里只有精品| 不卡中文一二三区| www.av一区视频| 成人mm视频在线观看| 欧美福利视频网站| 97电影在线看视频| 亚洲电影av在线| 中文字幕在线一| 亚洲一本大道在线| 国产黄色录像视频| 99久久免费精品高清特色大片| 亚洲久久中文字幕| 中文在线不卡| 成人毛片100部免费看| 欧美日韩在线播放视频| 国产精品12| 91精品一久久香蕉国产线看观看| 欧美一级电影久久| 欧美78videosex性欧美| 一区三区二区视频| 日本免费一区视频| 日韩一区二区影院| 成人黄色免费网| 精品国产精品自拍| 黄色在线观看免费| 国产精品久久影院| 中文字幕免费视频| 白白色 亚洲乱淫| 日韩精品――色哟哟| 久久爱www久久做| aa免费在线观看| 日韩一区二区久久| 9191国产视频| 久久久久久久久久久妇女 | 亚洲a中文字幕| 中文字幕日本一区二区| **欧美日韩vr在线| 超级碰碰不卡在线视频| 欧美老少配视频| 成人a在线视频免费观看| 中文在线不卡视频| 韩国三级在线观看久| 日韩久久精品成人| 天堂av中文在线资源库| 亚洲精品www久久久久久广东| 成人激情四射网| 日韩久久久精品| 精品国产99久久久久久宅男i| 欧美日本国产一区| 国产一区二区三区中文字幕| 欧美天堂一区二区三区| 国产成人自拍偷拍| 91福利小视频| 亚洲av无码乱码国产精品fc2| 日韩欧美第一页| 无码日韩精品一区二区| 色视频欧美一区二区三区| 国产精品免费精品一区| 色综合久久久网| 色老头一区二区| 欧美性受xxxx| 中文字幕日韩国产| 欧美精品高清视频| 国产三级伦理片| 日韩欧美精品三级| xxxx18国产| 亚洲第一天堂av| 青春草在线观看| 亚洲一区二区久久| 日本电影在线观看网站| 久久av在线看| 国产黄色大片在线观看| 欧美极品欧美精品欧美视频| 51av在线| 国产精品av网站| 四虎在线精品| aa成人免费视频| 另类春色校园亚洲| 日韩免费毛片| 午夜精品国产| avav在线看| 久久国产视频网| 精品人妻一区二区三区免费| 成人三级在线视频| 永久免费成人代码| 国产精品视频一区二区三区不卡| 黑鬼狂亚洲人videos| 精品福利一区二区| 精品国产青草久久久久96| 日韩一级黄色片| 日本一区高清| 久久久精品在线| 日韩伦理福利| 国产视频999| 久久精品66| 亚洲视频sss| 亚洲韩日在线| 一区二区xxx| 成人av网站免费| 夫妇露脸对白88av| 精品国产精品三级精品av网址| 中文字幕一区二区人妻| 精品sm捆绑视频| 午夜在线小视频| 91国产一区在线| 欧美日韩视频免费看| 开心激情综合网| 337p粉嫩大胆噜噜噜噜噜91av| 手机看片福利视频| 一区二区免费在线| 精品视频一二三区| 日韩免费电影一区| 成人综合影院| 亚州成人av在线| 亚洲欧美在线综合| 欧美性bbwbbwbbwhd| 欧美在线视屏| 中文字幕亚洲乱码| 91网页版在线| 日本免费在线播放| 在线电影国产精品| 国产一级免费在线观看| 久久免费视频在线观看| 日本一区二区三区播放| 色999五月色| 99在线|亚洲一区二区| 亚洲av无码久久精品色欲| 国产精品丝袜久久久久久app| 狠狠人妻久久久久久| 亚洲国产天堂久久综合| 影音先锋中文在线视频| 国产欧美最新羞羞视频在线观看| 欧亚精品一区| 加勒比成人在线| 国产福利一区二区| 搜索黄色一级片| 欧美日韩国产成人在线91| 久久天堂电影| 欧美重口另类videos人妖| 女同一区二区三区| 免费无码毛片一区二三区| 国产精品资源网站| 午夜激情福利电影| 欧美色手机在线观看| 国产天堂素人系列在线视频| 欧美一性一乱一交一视频| 精品一区二区男人吃奶| 免费看黄在线看| 成人免费视频视频| 久久精品国产亚洲av无码娇色| 日韩一区二区三区在线观看| www久久日com| αv一区二区三区| 欧美日本中文| 成人欧美精品一区二区| 一区二区三区免费观看| 亚洲av永久纯肉无码精品动漫| 欧美精品免费在线| 久久综合偷偷噜噜噜色| 青青草综合在线| 成人午夜精品一区二区三区| 国产在线视频二区| 亚洲精品美女免费| 亚洲成人看片| 亚洲7777| 国产在线不卡视频| 精品97人妻无码中文永久在线| 日韩免费一区二区| 国产精品探花在线| 久久久久久一区| 日韩高清欧美激情| 91制片厂在线| 精品sm在线观看| 欧美男女交配| 亚洲高清在线观看一区| 国产在线一区二区综合免费视频| 538任你躁在线精品视频网站| 精品国产电影一区二区| 中国色在线日|韩| 亚洲人久久久| 国产乱码一区二区三区| 日本一区二区欧美| 亚洲视频在线视频| 成人动漫视频在线观看| 国产自产在线视频| 精品九九久久| 91a在线视频| 免费精品国产| 天天色综合天天色| 最新中文字幕一区二区三区| 亚洲av无码国产精品久久不卡| 国内精品中文字幕| 欧美一二区在线观看| 日韩欧美色视频| 欧美日韩国产在线看| 在线观看麻豆| 好吊色欧美一区二区三区 | 一本色道久久综合无码人妻| 精品少妇v888av| 欧美猛男同性videos| 香蕉视频xxxx| 色婷婷亚洲一区二区三区| 看黄网站在线观看| 久久精品国产精品青草色艺| 久久国产人妖系列| 日本中文字幕免费| 日韩亚洲欧美中文在线| 欧美美女在线直播| 欧美成人乱码一二三四区免费| 亚洲地区一二三色| 欧美激情二区| 欧美亚州在线观看| 成人一区二区视频| 亚洲系列在线观看| 欧美最顶级丰满的aⅴ艳星| 欧美成人国产| 91视频免费在观看|