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

SpringBoot + Mybatis + Druid + PageHelper 實(shí)現(xiàn)多數(shù)據(jù)源分頁

共 15405字,需瀏覽 31分鐘

 ·

2020-08-21 23:56


點(diǎn)擊上方藍(lán)色“程序猿DD”,選擇“設(shè)為星標(biāo)”

回復(fù)“資源”獲取獨(dú)家整理的學(xué)習(xí)資料!

作者 |?虛無境的博客

來源 |?http://8rr.co/N8gV

前言

本篇文章主要講述的是SpringBoot整合MybatisDruidPageHelper?并實(shí)現(xiàn)多數(shù)據(jù)源和分頁。其中SpringBoot整合Mybatis這塊,在之前的的一篇文章中已經(jīng)講述了,這里就不過多說明了。重點(diǎn)是講述在多數(shù)據(jù)源下的如何配置使用Druid和PageHelper 。

Druid介紹和使用

在使用Druid之前,先來簡單的了解下Druid。

Druid是一個(gè)數(shù)據(jù)庫連接池。Druid可以說是目前最好的數(shù)據(jù)庫連接池!因其優(yōu)秀的功能、性能和擴(kuò)展性方面,深受開發(fā)人員的青睞。Druid已經(jīng)在阿里巴巴部署了超過600個(gè)應(yīng)用,經(jīng)過一年多生產(chǎn)環(huán)境大規(guī)模部署的嚴(yán)苛考驗(yàn)。Druid是阿里巴巴開發(fā)的號稱為監(jiān)控而生的數(shù)據(jù)庫連接池!

同時(shí)Druid不僅僅是一個(gè)數(shù)據(jù)庫連接池,Druid 核心主要包括三部分:

  • 基于Filter-Chain模式的插件體系。
  • DruidDataSource 高效可管理的數(shù)據(jù)庫連接池。
  • SQLParser

Druid的主要功能如下:

  1. 是一個(gè)高效、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫連接池。
  2. 可以監(jiān)控?cái)?shù)據(jù)庫訪問性能。
  3. 數(shù)據(jù)庫密碼加密
  4. 獲得SQL執(zhí)行日志
  5. 擴(kuò)展JDBC

介紹方面這塊就不再多說,具體的可以看官方文檔。那么開始介紹Druid如何使用。

首先是Maven依賴,只需要添加druid這一個(gè)jar就行了。


????com.alibaba
????druid
????1.1.8

配置方面,主要的只需要在application.propertiesapplication.yml添加如下就可以了。說明:因?yàn)檫@里我是用來兩個(gè)數(shù)據(jù)源,所以稍微有些不同而已。Druid 配置的說明在下面中已經(jīng)說的很詳細(xì)了,這里我就不在說明了。

##?默認(rèn)的數(shù)據(jù)源
master.datasource.url=jdbc:mysql://localhost:3306/springBoot?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
master.datasource.username=root
master.datasource.password=123456
master.datasource.driverClassName=com.mysql.jdbc.Driver

##?另一個(gè)的數(shù)據(jù)源
cluster.datasource.url=jdbc:mysql://localhost:3306/springBoot_test?useUnicode=true&characterEncoding=utf8
cluster.datasource.username=root
cluster.datasource.password=123456
cluster.datasource.driverClassName=com.mysql.jdbc.Driver

#?連接池的配置信息??
#?初始化大小,最小,最大??
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initialSize=5??
spring.datasource.minIdle=5??
spring.datasource.maxActive=20??
#?配置獲取連接等待超時(shí)的時(shí)間??
spring.datasource.maxWait=60000??
#?配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒??
spring.datasource.timeBetweenEvictionRunsMillis=60000??
#?配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒??
spring.datasource.minEvictableIdleTimeMillis=300000??
spring.datasource.validationQuery=SELECT?1?FROM?DUAL??
spring.datasource.testWhileIdle=true??
spring.datasource.testOnBorrow=false??
spring.datasource.testOnReturn=false??
#?打開PSCache,并且指定每個(gè)連接上PSCache的大小??
spring.datasource.poolPreparedStatements=true??
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20??
#?配置監(jiān)控統(tǒng)計(jì)攔截的filters,去掉后監(jiān)控界面sql無法統(tǒng)計(jì),'wall'用于防火墻??
spring.datasource.filters=stat,wall,log4j??
#?通過connectProperties屬性來打開mergeSql功能;慢SQL記錄??
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000??

成功添加了配置文件之后,我們再來編寫Druid相關(guān)的類。首先是MasterDataSourceConfig.java這個(gè)類,這個(gè)是默認(rèn)的數(shù)據(jù)源配置類。

@Configuration
@MapperScan(basePackages?=?MasterDataSourceConfig.PACKAGE,?sqlSessionFactoryRef?=?"masterSqlSessionFactory")
public?class?MasterDataSourceConfig?{

????static?final?String?PACKAGE?=?"com.pancm.dao.master";
????static?final?String?MAPPER_LOCATION?=?"classpath:mapper/master/*.xml";

????@Value("${master.datasource.url}")??
????private?String?url;??
??????
????@Value("${master.datasource.username}")??
????private?String?username;??
??????
????@Value("${master.datasource.password}")??
????private?String?password;??
??????
????@Value("${master.datasource.driverClassName}")??
????private?String?driverClassName;??
??????
????
????
????
????@Value("${spring.datasource.initialSize}")??
????private?int?initialSize;??
??????
????@Value("${spring.datasource.minIdle}")??
????private?int?minIdle;??
??????
????@Value("${spring.datasource.maxActive}")??
????private?int?maxActive;??
??????
????@Value("${spring.datasource.maxWait}")??
????private?int?maxWait;??
??????
????@Value("${spring.datasource.timeBetweenEvictionRunsMillis}")??
????private?int?timeBetweenEvictionRunsMillis;??
??????
????@Value("${spring.datasource.minEvictableIdleTimeMillis}")??
????private?int?minEvictableIdleTimeMillis;??
??????
????@Value("${spring.datasource.validationQuery}")??
????private?String?validationQuery;??
??????
????@Value("${spring.datasource.testWhileIdle}")??
????private?boolean?testWhileIdle;??
??????
????@Value("${spring.datasource.testOnBorrow}")??
????private?boolean?testOnBorrow;??
??????
????@Value("${spring.datasource.testOnReturn}")??
????private?boolean?testOnReturn;??
??????
????@Value("${spring.datasource.poolPreparedStatements}")??
????private?boolean?poolPreparedStatements;??
??????
????@Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize}")??
????private?int?maxPoolPreparedStatementPerConnectionSize;??
??????
????@Value("${spring.datasource.filters}")??
????private?String?filters;??
??????
????@Value("{spring.datasource.connectionProperties}")??
????private?String?connectionProperties;??
????
????
????@Bean(name?=?"masterDataSource")
????@Primary?
????public?DataSource?masterDataSource()?{
????????DruidDataSource?dataSource?=?new?DruidDataSource();
????????dataSource.setUrl(url);??
????????dataSource.setUsername(username);??
????????dataSource.setPassword(password);??
????????dataSource.setDriverClassName(driverClassName);??
??????????
????????//具體配置?
????????dataSource.setInitialSize(initialSize);??
????????dataSource.setMinIdle(minIdle);??
????????dataSource.setMaxActive(maxActive);??
????????dataSource.setMaxWait(maxWait);??
????????dataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);??
????????dataSource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);??
????????dataSource.setValidationQuery(validationQuery);??
????????dataSource.setTestWhileIdle(testWhileIdle);??
????????dataSource.setTestOnBorrow(testOnBorrow);??
????????dataSource.setTestOnReturn(testOnReturn);??
????????dataSource.setPoolPreparedStatements(poolPreparedStatements);??
????????dataSource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);??
????????try?{??
????????????dataSource.setFilters(filters);??
????????}?catch?(SQLException?e)?{?
?????????e.printStackTrace();
????????}??
????????dataSource.setConnectionProperties(connectionProperties);??
????????return?dataSource;
????}

????@Bean(name?=?"masterTransactionManager")
????@Primary
????public?DataSourceTransactionManager?masterTransactionManager()?{
????????return?new?DataSourceTransactionManager(masterDataSource());
????}

????@Bean(name?=?"masterSqlSessionFactory")
????@Primary
????public?SqlSessionFactory?masterSqlSessionFactory(@Qualifier("masterDataSource")?DataSource?masterDataSource)
????????????throws?Exception?{
????????final?SqlSessionFactoryBean?sessionFactory?=?new?SqlSessionFactoryBean();
????????sessionFactory.setDataSource(masterDataSource);
????????sessionFactory.setMapperLocations(new?PathMatchingResourcePatternResolver()
????????????????.getResources(MasterDataSourceConfig.MAPPER_LOCATION));
????????return?sessionFactory.getObject();
????}
}

其中這兩個(gè)注解說明下:

  • @Primary?:標(biāo)志這個(gè) Bean 如果在多個(gè)同類 Bean 候選時(shí),該 Bean 優(yōu)先被考慮。多數(shù)據(jù)源配置的時(shí)候注意,必須要有一個(gè)主數(shù)據(jù)源,用 @Primary 標(biāo)志該 Bean。
  • @MapperScan:掃描 Mapper 接口并容器管理。

需要注意的是sqlSessionFactoryRef?表示定義一個(gè)唯一?SqlSessionFactory?實(shí)例。

上面的配置完之后,就可以將Druid作為連接池使用了。但是Druid并不簡簡單單的是個(gè)連接池,它也可以說是一個(gè)監(jiān)控應(yīng)用,它自帶了web監(jiān)控界面,可以很清晰的看到SQL相關(guān)信息。在SpringBoot中運(yùn)用Druid的監(jiān)控作用,只需要編寫StatViewServletWebStatFilter類,實(shí)現(xiàn)注冊服務(wù)和過濾規(guī)則。這里我們可以將這兩個(gè)寫在一起,使用@Configuration@Bean。為了方便理解,相關(guān)的配置說明也寫在代碼中了,這里就不再過多贅述了。代碼如下:

@Configuration
public?class?DruidConfiguration?{

?@Bean
?public?ServletRegistrationBean?druidStatViewServle()?{
??//注冊服務(wù)
??ServletRegistrationBean?servletRegistrationBean?=?new?ServletRegistrationBean(
????new?StatViewServlet(),?"/druid/*");
??//?白名單(為空表示,所有的都可以訪問,多個(gè)IP的時(shí)候用逗號隔開)
??servletRegistrationBean.addInitParameter("allow",?"127.0.0.1");
??//?IP黑名單?(存在共同時(shí),deny優(yōu)先于allow)?
??servletRegistrationBean.addInitParameter("deny",?"127.0.0.2");
??//?設(shè)置登錄的用戶名和密碼
??servletRegistrationBean.addInitParameter("loginUsername",?"pancm");
??servletRegistrationBean.addInitParameter("loginPassword",?"123456");
??//?是否能夠重置數(shù)據(jù).
??servletRegistrationBean.addInitParameter("resetEnable",?"false");
??return?servletRegistrationBean;
?}

?@Bean
?public?FilterRegistrationBean?druidStatFilter()?{
??FilterRegistrationBean?filterRegistrationBean?=?new?FilterRegistrationBean(
????new?WebStatFilter());
??//?添加過濾規(guī)則
??filterRegistrationBean.addUrlPatterns("/*");
??//?添加不需要忽略的格式信息
??filterRegistrationBean.addInitParameter("exclusions",
????"*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
??System.out.println("druid初始化成功!");
??return?filterRegistrationBean;

?}
}

編寫完之后,啟動程序,在瀏覽器輸入:http://127.0.0.1:8084/druid/index.html ,然后輸入設(shè)置的用戶名和密碼,便可以訪問Web界面了。

多數(shù)據(jù)源配置

在進(jìn)行多數(shù)據(jù)源配置之前,先分別在springBootspringBoot_testmysql數(shù)據(jù)庫中執(zhí)行如下腳本。

--?springBoot庫的腳本

CREATE?TABLE?`t_user`?(
??`id`?int(11)?NOT?NULL?AUTO_INCREMENT?COMMENT?'自增id',
??`name`?varchar(10)?DEFAULT?NULL?COMMENT?'姓名',
??`age`?int(2)?DEFAULT?NULL?COMMENT?'年齡',
??PRIMARY?KEY?(`id`)
)?ENGINE=InnoDB?AUTO_INCREMENT=15?DEFAULT?CHARSET=utf8

--?springBoot_test庫的腳本

CREATE?TABLE?`t_student`?(
??`id`?int(11)?NOT?NULL?AUTO_INCREMENT,
??`name`?varchar(16)?DEFAULT?NULL,
??`age`?int(11)?DEFAULT?NULL,
??PRIMARY?KEY?(`id`)
)?ENGINE=InnoDB?AUTO_INCREMENT=2?DEFAULT?CHARSET=utf8

注:為了偷懶,將兩張表的結(jié)構(gòu)弄成一樣了!不過不影響測試!

application.properties中已經(jīng)配置這兩個(gè)數(shù)據(jù)源的信息,上面已經(jīng)貼出了一次配置,這里就不再貼了。這里重點(diǎn)說下 第二個(gè)數(shù)據(jù)源的配置。和上面的MasterDataSourceConfig.java差不多,區(qū)別在與沒有使用**@Primary** 注解和名稱不同而已。需要注意的是MasterDataSourceConfig.java對package和mapper的掃描是精確到目錄的,這里的第二個(gè)數(shù)據(jù)源也是如此。那么代碼如下:

@Configuration
@MapperScan(basePackages?=?ClusterDataSourceConfig.PACKAGE,?sqlSessionFactoryRef?=?"clusterSqlSessionFactory")
public?class?ClusterDataSourceConfig?{

?static?final?String?PACKAGE?=?"com.pancm.dao.cluster";
?static?final?String?MAPPER_LOCATION?=?"classpath:mapper/cluster/*.xml";

?@Value("${cluster.datasource.url}")
?private?String?url;

?@Value("${cluster.datasource.username}")
?private?String?username;

?@Value("${cluster.datasource.password}")
?private?String?password;

?@Value("${cluster.datasource.driverClassName}")
?private?String?driverClass;

?//?和MasterDataSourceConfig一樣,這里略

?@Bean(name?=?"clusterDataSource")
?public?DataSource?clusterDataSource()?{
?????DruidDataSource?dataSource?=?new?DruidDataSource();
?????dataSource.setUrl(url);??
?????dataSource.setUsername(username);??
?????dataSource.setPassword(password);??
?????dataSource.setDriverClassName(driverClass);??
???
?????//?和MasterDataSourceConfig一樣,這里略?...
?????return?dataSource;
?}

?@Bean(name?=?"clusterTransactionManager")
?public?DataSourceTransactionManager?clusterTransactionManager()?{
?????return?new?DataSourceTransactionManager(clusterDataSource());
?}

?@Bean(name?=?"clusterSqlSessionFactory")
?public?SqlSessionFactory?clusterSqlSessionFactory(@Qualifier("clusterDataSource")?DataSource?clusterDataSource)
?????????throws?Exception?{
?????final?SqlSessionFactoryBean?sessionFactory?=?new?SqlSessionFactoryBean();
?????sessionFactory.setDataSource(clusterDataSource);
?????sessionFactory.setMapperLocations(new?PathMatchingResourcePatternResolver().getResources(ClusterDataSourceConfig.MAPPER_LOCATION));
?????return?sessionFactory.getObject();
?}
}

成功寫完配置之后,啟動程序,進(jìn)行測試。分別在springBootspringBoot_test庫中使用接口進(jìn)行添加數(shù)據(jù)。

t_user

POST?http://localhost:8084/api/user
{"name":"張三","age":25}
{"name":"李四","age":25}
{"name":"王五","age":25}

t_student

POST?http://localhost:8084/api/student
{"name":"學(xué)生A","age":16}
{"name":"學(xué)生B","age":17}
{"name":"學(xué)生C","age":18}

成功添加數(shù)據(jù)之后,然后進(jìn)行調(diào)用不同的接口進(jìn)行查詢。

請求:

GET?http://localhost:8084/api/user?name=李四

返回:

{
????"id":?2,
????"name":?"李四",
????"age":?25
}

請求:

?GET?http://localhost:8084/api/student?name=學(xué)生C

返回:

{
????"id":?1,
????"name":?"學(xué)生C",
????"age":?16
}

通過數(shù)據(jù)可以看出,成功配置了多數(shù)據(jù)源了。

PageHelper 分頁實(shí)現(xiàn)

PageHelper是Mybatis的一個(gè)分頁插件,非常的好用!這里強(qiáng)烈推薦?。?!

PageHelper的使用很簡單,只需要在Maven中添加pagehelper這個(gè)依賴就可以了。Maven的依賴如下:

???
???com.github.pagehelper
???pagehelper-spring-boot-starter
???1.2.3
??

注:這里我是用springBoot版的!也可以使用其它版本的。

添加依賴之后,只需要添加如下配置或代碼就可以了。第一種,在application.propertiesapplication.yml添加

??pagehelper:
??helperDialect:?mysql
??offsetAsPageNum:?true
??rowBoundsWithCount:?true
??reasonable:?false

第二種,在mybatis.xml配置中添加

??"sqlSessionFactory"?class="org.mybatis.spring.SqlSessionFactoryBean">
????"dataSource"?ref="dataSource"?/>
????
????"mapperLocations"?value="classpath:mapper/*.xml">
????
?????"plugins">
????????
??????????"com.github.pagehelper.PageHelper">
????????????"properties">
??????????????
????????????????helperDialect=mysql
????offsetAsPageNum=true
????rowBoundsWithCount=true
????reasonable=false
??????????????

????????????
??????????
????????

??????
??

第三種,在代碼中添加,使用@Bean注解在啟動程序的時(shí)候初始化。

?@Bean
??public?PageHelper?pageHelper(){
????PageHelper?pageHelper?=?new?PageHelper();
???Properties?properties?=?new?Properties();
???//數(shù)據(jù)庫
???properties.setProperty("helperDialect",?"mysql");
???//是否將參數(shù)offset作為PageNum使用
???properties.setProperty("offsetAsPageNum",?"true");
???//是否進(jìn)行count查詢
???properties.setProperty("rowBoundsWithCount",?"true");
???//是否分頁合理化
???properties.setProperty("reasonable",?"false");
???pageHelper.setProperties(properties);
??}

因?yàn)檫@里我們使用的是多數(shù)據(jù)源,所以這里的配置稍微有些不同。我們需要在sessionFactory這里配置。這里就對MasterDataSourceConfig.java進(jìn)行相應(yīng)的修改。在masterSqlSessionFactory方法中,添加如下代碼。

????@Bean(name?=?"masterSqlSessionFactory")
????@Primary
????public?SqlSessionFactory?masterSqlSessionFactory(@Qualifier("masterDataSource")?DataSource?masterDataSource)
????????????throws?Exception?{
????????final?SqlSessionFactoryBean?sessionFactory?=?new?SqlSessionFactoryBean();
????????sessionFactory.setDataSource(masterDataSource);
????????sessionFactory.setMapperLocations(new?PathMatchingResourcePatternResolver()
????????????????.getResources(MasterDataSourceConfig.MAPPER_LOCATION));
????????//分頁插件
????????Interceptor?interceptor?=?new?PageInterceptor();
????????Properties?properties?=?new?Properties();
????????//數(shù)據(jù)庫
????????properties.setProperty("helperDialect",?"mysql");
????????//是否將參數(shù)offset作為PageNum使用
????????properties.setProperty("offsetAsPageNum",?"true");
????????//是否進(jìn)行count查詢
????????properties.setProperty("rowBoundsWithCount",?"true");
????????//是否分頁合理化
????????properties.setProperty("reasonable",?"false");
????????interceptor.setProperties(properties);
????????sessionFactory.setPlugins(new?Interceptor[]?{interceptor});
????????
????return?sessionFactory.getObject();
??}

注:其它的數(shù)據(jù)源也想進(jìn)行分頁的時(shí)候,參照上面的代碼即可。

這里需要注意的是reasonable參數(shù),表示分頁合理化,默認(rèn)值為false。如果該參數(shù)設(shè)置為 true 時(shí),pageNum<=0 時(shí)會查詢第一頁,pageNum>pages(超過總數(shù)時(shí)),會查詢最后一頁。默認(rèn)false 時(shí),直接根據(jù)參數(shù)進(jìn)行查詢。

設(shè)置完P(guān)ageHelper 之后,使用的話,只需要在查詢的sql前面添加PageHelper.startPage(pageNum,pageSize);,如果是想知道總數(shù)的話,在查詢的sql語句后買呢添加?page.getTotal()?就可以了。代碼示例:

public?List?findByListEntity(T?entity)?{
??List?list?=?null;
??try?{
???Page?page?=PageHelper.startPage(1,2);?
???System.out.println(getClassName(entity)+"設(shè)置第一頁兩條數(shù)據(jù)!");
???list?=?getMapper().findByListEntity(entity);
???System.out.println("總共有:"+page.getTotal()+"條數(shù)據(jù),實(shí)際返回:"+list.size()+"兩條數(shù)據(jù)!");
??}?catch?(Exception?e)?{
???logger.error("查詢"+getClassName(entity)+"失敗!原因是:",e);
??}
??return?list;
?}

代碼編寫完畢之后,開始進(jìn)行最后的測試。

查詢t_user表的所有的數(shù)據(jù),并進(jìn)行分頁。

請求:

GET?http://localhost:8084/api/user

返回:

[
????{
????????"id":?1,
????????"name":?"張三",
????????"age":?25
????},
????{
????????"id":?2,
????????"name":?"李四",
????????"age":?25
????}
]

控制臺打印:

開始查詢...
User設(shè)置第一頁兩條數(shù)據(jù)!
2018-04-27?19:55:50.769?DEBUG?6152?---?[io-8084-exec-10]?c.p.d.m.UserDao.findByListEntity_COUNT???:?==>??Preparing:?SELECT?count(0)?FROM?t_user?WHERE?1?=?1?
2018-04-27?19:55:50.770?DEBUG?6152?---?[io-8084-exec-10]?c.p.d.m.UserDao.findByListEntity_COUNT???:?==>?Parameters:?
2018-04-27?19:55:50.771?DEBUG?6152?---?[io-8084-exec-10]?c.p.d.m.UserDao.findByListEntity_COUNT???:?<==??????Total:?1
2018-04-27?19:55:50.772?DEBUG?6152?---?[io-8084-exec-10]?c.p.dao.master.UserDao.findByListEntity??:?==>??Preparing:?select?id,?name,?age?from?t_user?where?1=1?LIMIT???
2018-04-27?19:55:50.773?DEBUG?6152?---?[io-8084-exec-10]?c.p.dao.master.UserDao.findByListEntity??:?==>?Parameters:?2(Integer)
2018-04-27?19:55:50.774?DEBUG?6152?---?[io-8084-exec-10]?c.p.dao.master.UserDao.findByListEntity??:?<==??????Total:?2
總共有:3條數(shù)據(jù),實(shí)際返回:2兩條數(shù)據(jù)!

查詢t_student表的所有的數(shù)據(jù),并進(jìn)行分頁。

請求:

GET??http://localhost:8084/api/student

返回:

[
????{
????????"id":?1,
????????"name":?"學(xué)生A",
????????"age":?16
????},
????{
????????"id":?2,
????????"name":?"學(xué)生B",
????????"age":?17
????}
]

控制臺打印:

開始查詢...
Studnet設(shè)置第一頁兩條數(shù)據(jù)!
2018-04-27?19:54:56.155?DEBUG?6152?---?[nio-8084-exec-8]?c.p.d.c.S.findByListEntity_COUNT?????????:?==>??Preparing:?SELECT?count(0)?FROM?t_student?WHERE?1?=?1?
2018-04-27?19:54:56.155?DEBUG?6152?---?[nio-8084-exec-8]?c.p.d.c.S.findByListEntity_COUNT?????????:?==>?Parameters:?
2018-04-27?19:54:56.156?DEBUG?6152?---?[nio-8084-exec-8]?c.p.d.c.S.findByListEntity_COUNT?????????:?<==??????Total:?1
2018-04-27?19:54:56.157?DEBUG?6152?---?[nio-8084-exec-8]?c.p.d.c.StudentDao.findByListEntity??????:?==>??Preparing:?select?id,?name,?age?from?t_student?where?1=1?LIMIT???
2018-04-27?19:54:56.157?DEBUG?6152?---?[nio-8084-exec-8]?c.p.d.c.StudentDao.findByListEntity??????:?==>?Parameters:?2(Integer)
2018-04-27?19:54:56.157?DEBUG?6152?---?[nio-8084-exec-8]?c.p.d.c.StudentDao.findByListEntity??????:?<==??????Total:?2
總共有:3條數(shù)據(jù),實(shí)際返回:2兩條數(shù)據(jù)!

查詢完畢之后,我們再來看Druid 的監(jiān)控界面。在瀏覽器輸入:http://127.0.0.1:8084/druid/index.html

可以很清晰的看到操作記錄! 如果想知道更多的Druid相關(guān)知識,可以查看官方文檔!

結(jié)語

這篇終于寫完了,在進(jìn)行代碼編寫的時(shí)候,碰到過很多問題,然后慢慢的嘗試和找資料解決了。本篇文章只是很淺的介紹了這些相關(guān)的使用,在實(shí)際的應(yīng)用可能會更復(fù)雜。如果有有更好的想法和建議,歡迎留言進(jìn)行討論!

參考文章:https://www.bysocket.com/?p=1712

Durid官方地址:https://github.com/alibaba/druid

PageHelper官方地址:https://github.com/pagehelper/Mybatis-PageHelper

項(xiàng)目我放到github上面去了: https://github.com/xuwujing/springBoot

往期推薦

華為阿里下班時(shí)間曝光:所有的光鮮,都有加班的味道

MySQL 的 Binlog 日志處理工具(Canal,Maxwell,Databus,DTS)對比

Serverless:為我們到底帶來了什么

為什么有些大公司技術(shù)弱爆了?

Docker 禁止被列入美國“實(shí)體名單”的國家、企業(yè)、個(gè)人使用


星球限時(shí)拼團(tuán)優(yōu)惠進(jìn)行中


我的星球是否適合你?

點(diǎn)擊閱讀原文看看我們都聊過啥?

瀏覽 69
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 中文字幕四区| 婷婷五月天激情四射| 狠狠干在线观看| 超碰人人人人人人人人| 日本黄色视频电影| 成人福利在线| 人人澡人人爽人人精品| 亚洲综合精品| 俄罗斯老熟妇与子伦| 自拍第一页| 国精产品一区二区三区| 午夜福利成人视频| 婷婷成人综合| 久久伊人综合| 最新亚洲无码在线观看| 黄色在线网| 久久青草视频| 91丨人妻丨偷拍| 最近中文字幕免费mv第一季歌词大全 | 超碰9| mm131亚洲国产精品久久| 成人黄片网| 黄色a级毛片| 五月涩| 亚洲无码免费看| 久艹在线观看视频| 精品无码一区二区Av蜜桃| 欧洲一区二区三区| 国产精品果冻传媒| 国产精品无码无套在线照片| 一区二区三区色| 99久久久成人国产精品| 日韩V欧美| 少妇厨房愉情理伦BD在线观看 | 欧美日韩亚洲综合| 人人干人人干| 91蝌蚪视频在线| 欧美黄页| 69免费视频| 中文字幕无码A片久久| 狼友视频首页| 日本黄色视频在线| 五月天四房播播| 成人午夜小视频| 国产一区二区无码| 嫩草A片www在线观看| 黄片无码免费| 超碰97免费| 91欧美精品成人AAA片| 99高清无码| 热久久久久| 内射学生妹视频| ChineSe露脸老女人| 欧美成视频| 成人亚洲性情网站www在线| 青青草在线免费视频| 全国最大成人网站| 欧美国产另类| 国产精品夜夜爽7777777| 色婷婷一区二区三区四区五区精品视| 国产aⅴ| jizz在线免费观看| 91精品91久久久中77777| 日韩免费看| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 97国产精品手机| 91色噜噜狠狠色婷婷| 亚洲AV无码成人精品久久久| 有码中文字幕在线观看| mm131亚洲国产精品久久| 亚洲精品一区二区三区无码电影| 国产在线第一页| 无码人妻精品一区二区蜜桃网站| 国精产品一二四区黑人| 日韩高清一级免费| 久久无码高清| 国产三级日本三级国产三级| 成人网站三级片| 黄片免费视频| 日韩天堂在线观看| 97人妻精品| 天堂成人AV| 尤物视频在线| 丁香花中文字幕| 十八禁无码网站在线观看| 深爱婷婷网| 天堂va欧美va亚洲va在线| 天天天天干| 狠狠色噜噜狠狠狠7777| 日韩在线小视频| 婷婷五月天啪啪| 熟妇人妻中文AV无码| 亚洲中文视频在线| 操操操影院| 亚洲一区二区三区免费视频| 一级特黄AAAA片| 国产搡BBB爽爽爽视频| 日本国产精品| 黄色搞逼视频| 91久久国产综合| 国产AV二区| 最新av在线| 97干在线| 亚洲秘无码一区二区三区观看| 天天色色天天| AV毛片| 精品99999| 国产最新在线| 午夜成人AV| 久久国产一级片| 五十路av| 天天操欧美| 午夜福利无码视频| 免费无码婬片AAAA片老婦| 色色网站免费| 国产棈品久久久久久久久久九秃| 久久性爱免费视频| 免费三级网址| 成人无码精品亚洲| 日本一级特黄电影| 色老板亚洲| 操逼免费观看视频| 福利视频网站| 国产日女人| 成人夜间视频| 久久久久久久久免费看无码| 国产伦精品一区二区三区妓女下载 | 人人看人人做| 亚洲国产另类无码| 免费中文资源在线观看| 91视频专区| 无码一区二区三区免费看| 人人看人人射| 伊人综合大香蕉| 丰满人妻一区二区三区Av猛交| 成人av免费在线观看| 99国产免费| 38D蜜桃臀| 日本国产精品| 亚洲AV图片| 免费一级无码婬片A片AAA毛片| 第九色| 国产女人十八水真多| 91五月天| 亚洲无码视频一区二区| 国产亚洲精品久久久波多野结衣 | 久久久久久久毛片| 操屄视频在线观看| www.18av| 免费黄色小视频在线观看| 成人一区二区三区四区| 毛片A级| 色狠狠AV| 内射免费视频| 男人天堂手机在线| 免费色色视频| 精品人妻一区二区三区四区| 国产av黄色| 久草免费在线观看视频| 久久天堂av| 天堂一区二区| 亚洲激情无码视频| 久久综合伊人7777777| 欧美大香蕉视频| 亚洲高清无码一区二区三区| 亚洲无码乱码精品| 波多野结衣av在线观看窜天猴| 欧美一级一级| 国产一级AV片| 91色色色色| 国产精品乱码毛片在线人与 | 亚洲成人免费在线| 欧美午夜精品久久久久免费视| 亚洲成人无码在线| 亚洲综合国产| 福利视频一区二区三区| 日本A∨在线| 亚洲中文无码第一页| 亚洲性爱中文字幕| 欧美男人的天堂| 91精品青青草| 97精品人妻麻豆一区二区| 国产欧美日韩在线| 影音先锋资源站| 久久肉| 亚洲AV无码成人精品区h麻豆 | 欧美中文网| 操女人逼AV| 国产乱轮视频| 麻豆二区| 丁香五月婷婷啪啪| 国产又爽又黄视频在线看| 少妇搡BBBB搡BBB搡打电话| 久久无码电影| 国产欧美精品| 婷婷无码在线| 91色区| 青青青国产在线| 麻豆午夜福利| 免费中文字幕日韩欧美| 色婷婷18| 国精产品一二四区黑人| 露脸老熟女91集合| 日本黄色片视频| 日本亚洲国产| 91无码人妻| 夜夜骑天天操| 亚洲精品无码视频| 午夜操人妻| 日韩xxx视频| 欧美中文网| 成人免费一区| 俺去俺来也www色官网cms| 欧美激情综合色综合啪啪五月| 亚洲中文在线观看| v天堂在线观看| 国产亚洲精品午夜福利巨大软件 | 97自拍| 欧美偷拍视频| 亚洲午夜久久久之蝌蚪窝| 国产suv精品一区二区6精华液| 日韩欧美中文字幕公布| AV一区二区三区四区| 亚洲AV成人无码久久精品麻豆| 91日综合欧美| 日韩色爱| 操逼中文字幕| 亚洲三级片在线视频| 黄色成人网站在线观看| 一本色道久久88亚洲精品综合| 亚洲欧美成人视频| 国产棈品久久久久久久久久九秃| 国产乱婬AAAA片视频| 精品欧美激情精品一区| 偷拍视频图片综合网| 日韩偷拍网| 久久婷五月| 欧美色性乐汇操日本娘们| 天堂成人av| 欧美亚洲成人电影| 北条麻妃高清无码| 麻豆三级片| 簧片网站免费| 国产精品欧美一区二区| 91成人视频在线播放| 成人做爱免费网站| www99精品| 久久综合伊人777777| 国产精品久久久精品| 国产精品国内自产拍| 99re这里只有精品6| 日韩色色网| 久久99深爱久久99精品| 日韩高清无码免费看| 欧美成人三级片| 你懂得在线观看| 国产免费无码| 吴梦梦无码| 亚州免费视频| 特级av| 欧美成人网站视频| BBw日本熟妇BBwHD| 五月婷久久| 操逼逼视频| 免费观看黄色在线视频| 国产熟女| 人人干人人爱| 亚洲在线观看网站| 青青草成人电影| 在线无码人妻| 亚洲高清福利| 成人自拍在线| 先锋资源AV| 国产成人a亚洲精品www| 在线三级片视频| 国产熟妇婬乱A片免费看牛牛| 亚洲九九| a视频免费看| AV中文字幕在线播放| 日逼视频网站| 国产女人18水真多18精品| 日本91| 无码免费看| 日韩成人无码影片| 免费做a爰片77777| 欧美视频免费| 久久久久久久久久久久成人| 一级A片免费| 欧美视频一区二区| 黄色小视频免费| 亚洲av动漫| 91在线无码精品秘国产三年| 国产无码午夜| 91人人在线| 日韩综合| 日本一级黄色| 美日韩无码| 亚洲一二区| 九九精品在线视频| 亚洲51| 黄片视频在线免费播放| 日本无码在线视频| 五月丁香在线| 中文字幕一级A片高清免| 午夜久久| 美日韩一区二区| 麻豆视频一区二区三区| 精品乱子伦一区二区三区| 激情婷婷av| 亚洲天堂视频在线观看免费| AV免费网站| 在线观看中文字幕一区| 日韩AV免费在线| 欧美综合网在线观看| www.操| 精品国产91乱码一区二区三区| 大香蕉啪啪啪啪| 欧美精品日韩| 亚洲一区| 美日韩在线| 91在线播放视频| 一区二区中文字幕| 亚洲国产成人91PORN| 亚洲vs无码秘蜜桃少妇小说| 国产网站精品| 五月丁香中文字幕| 国产日韩91| 色婷婷在线无码精品秘人口传媒| 九九r在线精品观看视频| 操B视频免费看| 国产女人18毛片18精品| 成人一级黄色电影| 日本综合在线| 中文无码日本高潮喷水| 成人片免费看| 操逼无码| 日韩三级片在线视频| 伊人大香蕉在线观看| 狠狠操免费| 残忍另类BBWBBWBBW| 国产卡一卡二在线观看| 青青视频网| 肉片无遮挡一区二区三区免费观看视频 | а√在线中文网新版地址在线| 婷婷五月开心五月| 国产操逼片| 亚洲69v久久久无码精品| 国内自拍第一页| 亚洲日韩精品成人无码专区AV| 91豆花成人网站| 人人爱人人爽人人操| 国产精品98| 午夜精品18码视频国产17c| 国产成人精品av在线观看| 午夜黄色| 少妇A片| 蜜桃视频一区| 影音先锋无码专区| 中文字幕在线日韩| 91色色色色| 免费A视频| 精品一区二区三区无码| 天天操夜夜操狠狠操| 人人看人人摸人人插| 少妇视频一区| 日韩免费在线观看| 亚洲欧洲精品在线| 3DAV一区二区三区动漫| 成人在线免费网站| 婷婷五月激情中文字幕| 特级毛片WWW| 精品九九九九九九| 色婷婷综合激情| 国产潮吹| 69看片| 久久婷婷精品| 日韩精品成人无码免费| 伊人久久大香蕉视频| 无码操逼视频| 国产成人午夜福利视频| 精品久久精品| 婷婷电影网| 亚洲色情在线观看| 少妇人妻一级A毛片| 操逼操逼操逼操逼| 内射视频网| 黑人丰满大荫蒂| 久久久久久少妇| 国产精品操逼视频| 国产精品免费网站| 免费黄色大片| 亚洲无码资源| 蜜挑视频一区二区三区| 亚洲成人视频免费在线观看| 永久免费看片视频5355| 国产AV影片| 午夜黄色影视| 91青青草视频| 日本一区二区三区视频在线观看| 狼友在线观看| 日本黄色片在线播放| 国产乱轮视频| 久久久波多野结衣| 操老女人视频| 久久色播| 大香蕉网站在线观看| 成人无码区免费A片久久| 国产免费av在线观看| 色婷婷色99国产综合精品| 亚洲国产高清国产精品| 婷婷五月天av| 成人不卡在线| 黄色成人网站在线观看| 天天操人人| 色五月婷婷丁香五月| 欧美中文在线观看| A片操逼| 永久黄网站| 国产精品无码激情| 亚洲欧美大香蕉视频网| 波多野结衣无码一区二区| 校园春色成人| 三级高清无码| 中文字幕无码A片| 操逼在线观看| 18禁av在线| 欧美精产国品一| 怡春院在线| 丁香花五月天| 久久99视频| 亚洲中文字幕不卡| 亚洲欧洲在线播放| 九九九久久久| 在线色| 97视频| 国产精品免费一区二区三区都可以 | 神马影院午夜福利| 无码人妻91| 欧美在线一区二区三区| 亚洲国产成人AV| 男人午夜AV| 97视频在线观看免费| 天天艹天天| 高清一区二区三区| 一级A色情大片| 精品乱子伦一区二区三区下载 | 无码射精电影| 成人黄色免费观看| 午夜视频18| 中文字幕h| 亚洲AV无码永久精品| 国产一区视频在线| 欧美在线综合| 免看一级a毛片一片成人不卡| 成人免费区一区二区三区| 国产一a毛一a毛A免费| 91在线观看网站| 免费在线成人网| 北条麻妃无码一区二区| 久久国产2025| 热久久免费视频| 一级Aa视频免费看| 高清免费在线中文Av| 一区二区AV| 亚洲无码入口| 3D精品啪啪一区二区三区| 久久免费观看视频| 一级黄色在线| 天天夜夜狠狠| 日韩人妻无码专区| 亚洲无码入口| 2024av在线| 欧美一级在线| 毛片毛片毛片毛片毛片| 一本色道久久综合亚洲怎么玩| AV免费网站| 在线观看日韩AV| 亚洲天堂一| 欧美99| 免费无码国产| 91在线视频免费| 国产精品一区网站| 成人电影91| 久久艹久久| 免费视频一二区| 东京热综合| 国产三级在线观看视频| 精品免费一区二区三区四区| 成人一级精品| 欧美毛片A| av在线一区二区三区| 日韩在线1| 国产乱伦电影| 婷婷天堂网| 成人免费av| 蜜桔视频嫩草蜜桃| 国产理伦| 各种BBwBBwBBwBBw| 天天干天天在线观看| 91狠狠综合| 欧美三级黄色| 超碰九一| 少妇高潮av久久久久久| 欧美狠狠操| 婷婷狠狠操| 欧美国产另类| 丁香色综合人妻| 一级黄色a片| 少妇厨房愉情理伦BD在线观看 | 激情午夜av| 按摩性高湖婬AAA片A片中国| 国产XXXX| 日韩色综合| 成人在线中文| 亚洲一级婬片A片AAAA网址| 操操操操操| 亚洲AV无码一区东京热久久| 亚洲日逼网| 欧美成人性色欲影院| 最新中文字幕在线| 囯产精品久久久久久久久久辛辛| 日韩美在线| 国产男女av| 亚洲专区免费| 69网站| 日韩无码链接| 日本家庭乱伦视频| 69无码| 91亚洲一线产区二线产区| 国产日本在线观看| 日韩无码黄色电影| 日韩综合| 免费乱伦| 久久一卡二卡| 婷婷六月色| 久久久一级| 免费A级毛片| 日韩在线高清| 欧美日韩免费在线| 欧美黄色一级网站| 天堂v在线观看| 亚洲在线看| 亚洲一级AV| H片免费在线观看| 亚洲国产精品成人综合色在线婷婷| 韩国GOGOGO高清| 伊人东京热| 黄色综合网| www.199麻豆在线观看网站 | 91丨熟女丨首页| 欧美成人免费A级在线观看| 91高潮久久久久久久| 亚洲免费观看高清视频| 国产a级毛片| 嫩小槡BBBB槡BBBB槡漫画| 熟女AV888| 第一福利导航大全| 69av视频在线观看| 国产日逼视频| 无码免费婬AV片在线观看| 欧美三级黄色| 日韩精品一区在线| 欧美最猛黑A片黑人猛交蜜桃视频| 亚洲污网| 亚洲高清在线视频| av中文字幕网| 97少妇| 在线国产日韩| 无码欧美精品一区二区| 成人三级电影网| 亚洲精品秘一区二区三区蜜桃久| 亚洲精品一区二区三| 亚洲天堂网在线视频| 伊人黄色视频| 久久久久中文字幕| 操屄视频播放| 污网站在线观看| 高清无码视频在线播放| 能看的av网站| 无码精品一区二区在线| 日爽夜爽| 影音先锋婷婷| 人人操人人干人人操| 五月天黄色电影| 99久久婷婷国产综合精品草原 | 有码中文字幕| 午夜精品18视频国产17c| 波多野结衣91| 欧美黄页| 丰滿人妻-区二区三区| 成人高清在线| 久久久久久成人无码| 国产激情在线| 蜜桃视频一区| 成人做爰黄A片免费看直播室动漫| 授乳奶水x88MAV| 在线观看老湿视频福利| 男人的天堂aa| 免费高清无码视频在线观看| 亚洲vs无码蜜桃少妇| 嫩草av在线| 大香蕉在线视频99| 成人黄片网站| 色婷婷影院| 久久久久久久网站| 五月婷婷五月| 国产亚洲色婷婷久久99精品| 麻豆一区在线| 天天色天天撸| 欧美干综合| 欧美aa片| 柒私黄片| 亚洲精品成人无码| 久久免费观看视频| 成人欧美| 99久久精品国产精品有折扣吗| A片视频免费观看| 欧美成人在线免费视频| 操嫩逼视频| 99精品自拍| 大地资源第5页在线| 大鸡巴日小逼| 丁香五月天婷婷久久| www.青青草视频| www久久| 99在线免费观看视频| 国产女人18毛片18精品| 精品人妻一区二区免费蜜桃视频 | 精品乱伦视频| 河南乱子伦视频国产| 日批动态图| 在桌下含她的花蒂和舌头H视频| 日本中文字幕精品| 伊人99在线| 人人妻人人玩澡人人爽| 青草网在线观看| 亚洲高清人妻| 丝袜诱惑AV| 人人妻人人爽| 亚洲视频免费| 日韩精品视频在线| 日韩成人免费| 亚洲无码动漫| 国产免费操逼视频| 91精品国产综合久久久蜜臀九色| 中文三级片| 中文字幕精品无码一区二区| 精品一区二区ww| 站街大龄熟女x| 色五月婷婷在线| 91丨熟女丨对白| 再深点好爽灬轻点久久国产 | 午夜丁香| 成人电影一区| 国产精品国产精品国产专区不卡 | 爱爱打炮影院| 中文无码av| AV在线天堂| 韩国AV在线| 中文字幕三级片| 一级无码毛片| 亚洲日韩精品中文字幕| 精品人妻一区二区三区日产| 三级片在线观看视频| 国产人妖视频| 欧一美一婬一伦一区二区三区自慰| 无码人妻一区二区一牛影视| 日韩无码小电影| 69视频网| 午夜国产在线观看| 91综合视频| 在线观看免费无码视频| 日日干夜夜操| 日韩在线视频一区| 69av在线播放| 亚洲天堂久久| 麻豆三级电影| 麻豆天美蜜桃91| 色婷婷AV| A黄色绿像| 成人午夜精品福利免费| 天天操天天干欧美精品| 影音先锋中文字幕资源| 小H片在线观看| 蜜臀99| 久久成人一区| 99视频自拍| 亚洲AV无码成人精品区h麻豆| 国产精品人人人人| 在线观看国产一级片| 日韩欧美在线一区| 亚洲无码av中文字幕| 在线视频你懂| 黑人AV在线观看| 欧美AAA在线观看| 国产操逼大全| 日韩AV中文| 免费黄片视频在线观看| 91人妻无码精品蜜桃| 日韩高清中文字幕| 欧美性爱在线视频| 91拍真实国产伦偷精品| 99国产在线视频| 亚洲激情小说| 殴殴美日韩在线| 翔田千里与黑人50分钟| 日韩高清色| 一级无码在线| 操b视频免费| 亚洲性爱小说网址| 五月丁香婷婷啪啪| 国产成人自拍视频在线观看| www.99国产| 色婷婷在线观看视频| 国产精品国产精品国产专区不| 夜夜操天天操| 成人免费视频18| 免费看a| 色婷婷艹| C逼| 五月天四房播播| 国产精品美女久久久久久久久 | 亚洲国产日本| 婷婷五月天网址| 久在线观看| www.麻豆网91成人久久久| 国产精品自拍视频| 色色网站免费| 一道本视频在线免费观看| 久久久久久亚洲AV黄床| 噜噜色小说| 97人妻人人澡人人爽人人| 国产AV中文| 日本黄色视| 欧美成人自拍| 欧美伊人网| 日本成人不卡视频| 日韩小电影在线观看| 霸道总裁雷总各种姿势白浆爱情岛论坛 | 婷婷色综合| 日韩综合一区| 另类av| 豆花成人在线| 国产又粗又长又硬又大毛苴茸图片| 国产在线观看无码| 人人操人人干人人看| 久久99久久99久久99| 高H视频在线观看| 日韩性爱网| 91熟女丰满原味| 北条麻妃视频在线播放| 五月丁香婷婷在线观看| 国产尤物| 精品无码一区二区三区的天堂| 久操人妻| 色色五月婷婷| 久热久| 蜜桃视频欧美| 99久久人妻无码中文字幕系列| 美日韩无码视频| 日韩无码影视| 午夜男女福利| 国产精品毛片久久久久久久| 洞av| 亚洲天堂AV2025| 在线观看AV网站| 色诱AV| 一区二区三区精品视频| 亚洲va国产va天堂va久久 | 国产精品视频久久久久| 波多野结衣无码一区| 丝袜毛片| 中文无码电影| 亚洲热在线| 99久久国内精品成人免费| 玖玖91| 2018中文字幕第一页| 乱子伦日B视频| 国产综合精品久久久久成人AV| 人人爱人人插| 翔田千里高潮90分钟| 影音先锋色色| 欧美老女人操逼视频| 午夜福利三级| 亚洲AV无码成人精品区国产| 69天堂| 天天干天天在线观看| 国产九九九视频| 国产一级A| 爱看福利视频| 安徽妇搡BBBB搡BBBB小说| 亚洲精品另类| 在线视频福利导航| 青青草手机在线观看| 国产av黄色| 国产AV一区二区三区| 91巨乳| 亚洲精品国产AV婷婷| 国产综合在线播放| 日韩av免费| 人人爱人人妻人人操| 激情视频在线播放| 色情一级AA片免费观看| 欧美性69| 成人在线网站| 日韩在线大香蕉| 无码中文在线| 亚洲精品成人视频| 在线观看黄| 欧美在线观看一区二区| 亚洲狠狠撸| 久久精品www人人爽人人| 无码av在线观看| 91丝袜足交| 一本之道高清数码大全| 天天爱天天爽| 四虎国产| 免费看欧美成人A片| 激情自拍偷拍| 一级二级三级无码| 91狠狠综合久久久| 免费v片在线| 黄色片AA| 水果派中文解说AⅤ| 黄色动态视频| 日本久久人体视频| 91无码精品国产AⅤ| 亚洲国产毛片| 黑人AV在线| 操一线天逼| 豆花成人视频在线观看| 1插菊花综合| 成人在线免费观看视频| 国产午夜福利视频在线观看| 亚洲天堂男人天堂| 免费看黄片,在线观看| 国产福利在线| 先锋AV资源在线| 亚洲精品视频免费看| www.久久99| 在线观看视频免费无码| 国产乱子伦无码视频免费| 97超碰资源| 国产熟妇码视频黑料| 国产精品毛片VA一区二区三区| 精品蜜桃秘一区二区三区在线播放| 欧美黑吊大战白妞| 亚洲国产精品久久久久婷婷老年| 精品a片| 五月天激情综合网| 亚洲AV在线观看| 国产日韩91| 色三区| 狠狠操在线视频| 91夜夜夜| 日韩日韩日韩日韩| 亚洲欧美成人网| 欧美日韩逼| 中文无码高清视频| 欧美在线视频免费观看| 久久v| 亚洲区在线播放| 97人妻无码| 乱伦精品| 大香蕉久在线| 五月婷婷六月色| www.狠狠操| 激情五月天av| 日本在线视频一区二区| 成人精品在线观看| 丰满人妻一区二区三区精品高清| 91亚洲国产成人久久精品麻豆| 成人A片免费| 国产婷婷内射| 97中文字幕在线| 中文无码熟妇人妻AV在线| 翔田千里在线一区二区三区| 午夜天堂精品久久久| 男人的天堂2019| 蜜芽av在线观看| 无码欧美成人| 日屄视频在线观看| 国产成人精品国内自产拍免费看 | 高清av免费| 亚洲AV无码成人精品区在线欢看| 韩日一区| 中字无码AV| 欧美伊人久久| 免费一级无码婬片A片APP直播| 亚洲三级自拍| 欧美日韩成人在线观看| 日韩国产一区| a日韩| 少妇搡BBBB搡BBB搡造水多| 欧美AⅤ| 久久青娱乐| 东方AV在线播放| 中文字幕高清无码免费视频| 免费在线观看黄片视频| 猫咪AV成人永久网站|