亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

基于maven的ssm框架整合的示例代碼

2024-07-13 10:15:15
字體:
來源:轉載
供稿:網友

基本概念

1.1、Spring

Spring是一個開源框架,Spring是于2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。 簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVC

Spring MVC屬于SpringFrameWork的后續產品,已經融合在Spring Web Flow里面。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。

1.3、MyBatis

MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis 。MyBatis是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。

第一步:通過maven建立一個web項目。

第二步:pom文件導入jar包

(1) pom.xml

我把我pom文件整個都拷貝來了,有些初始化就有的東西你要去掉,保留你自己pom生成的那份。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.test</groupId> <artifactId>ssm</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>ssm Maven Webapp</name> <url>http://maven.apache.org</url>  <properties>   <!-- spring版本號 -->   <spring.version>4.0.2.RELEASE</spring.version>   <!-- mybatis版本號 -->   <mybatis.version>3.2.6</mybatis.version>   <!-- log4j日志文件管理包版本 -->   <slf4j.version>1.7.7</slf4j.version>   <log4j.version>1.2.17</log4j.version>  </properties>   <dependencies> <dependency>  <groupId>junit</groupId>  <artifactId>junit</artifactId>  <version>3.8.1</version>  <scope>test</scope> </dependency>  <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-core</artifactId>    <version>${spring.version}</version>   </dependency>    <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-web</artifactId>    <version>${spring.version}</version>   </dependency>   <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-oxm</artifactId>    <version>${spring.version}</version>   </dependency>   <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-tx</artifactId>    <version>${spring.version}</version>   </dependency>    <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-jdbc</artifactId>    <version>${spring.version}</version>   </dependency>    <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-webmvc</artifactId>    <version>${spring.version}</version>   </dependency>   <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-aop</artifactId>    <version>${spring.version}</version>   </dependency>    <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-context-support</artifactId>    <version>${spring.version}</version>   </dependency>    <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-test</artifactId>    <version>${spring.version}</version>   </dependency>   <!-- mybatis核心包 -->   <dependency>    <groupId>org.mybatis</groupId>    <artifactId>mybatis</artifactId>    <version>${mybatis.version}</version>   </dependency>   <!-- mybatis/spring包 -->   <dependency>    <groupId>org.mybatis</groupId>    <artifactId>mybatis-spring</artifactId>    <version>1.2.2</version>   </dependency>   <!-- 導入java ee jar 包 -->   <dependency>    <groupId>javax</groupId>    <artifactId>javaee-api</artifactId>    <version>7.0</version>   </dependency>   <!-- 導入Mysql數據庫鏈接jar包 -->   <dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>5.1.30</version>   </dependency>   <!-- 導入dbcp的jar包,用來在applicationContext.xml中配置數據庫 -->   <dependency>    <groupId>commons-dbcp</groupId>    <artifactId>commons-dbcp</artifactId>    <version>1.2.2</version>   </dependency>   <!-- JSTL標簽類 -->   <dependency>    <groupId>jstl</groupId>    <artifactId>jstl</artifactId>    <version>1.2</version>   </dependency>   <!-- 日志文件管理包 -->   <!-- log start -->   <dependency>    <groupId>log4j</groupId>    <artifactId>log4j</artifactId>    <version>${log4j.version}</version>   </dependency>         <!-- 格式化對象,方便輸出日志 -->   <dependency>    <groupId>com.alibaba</groupId>    <artifactId>fastjson</artifactId>    <version>1.1.41</version>   </dependency>     <dependency>    <groupId>org.slf4j</groupId>    <artifactId>slf4j-api</artifactId>    <version>${slf4j.version}</version>   </dependency>    <dependency>    <groupId>org.slf4j</groupId>    <artifactId>slf4j-log4j12</artifactId>    <version>${slf4j.version}</version>   </dependency>   <!-- log end -->   <!-- 映入JSON -->   <dependency>    <groupId>org.codehaus.jackson</groupId>    <artifactId>jackson-mapper-asl</artifactId>    <version>1.9.13</version>   </dependency>   <!-- 上傳組件包 -->   <dependency>    <groupId>commons-fileupload</groupId>    <artifactId>commons-fileupload</artifactId>    <version>1.3.1</version>   </dependency>   <dependency>    <groupId>commons-io</groupId>    <artifactId>commons-io</artifactId>    <version>2.4</version>   </dependency>   <dependency>    <groupId>commons-codec</groupId>    <artifactId>commons-codec</artifactId>    <version>1.9</version>   </dependency>  </dependencies> <build> <finalName>ssm</finalName> </build></project>

第三步:看整體的項目架構,先說明下我這里還沒有有關springMVC的相關東西,因為我先整合sping-mybatis,在測試是否成功,成功在整合springMVC

maven,ssm框架整合,maven整合ssm框架配置

第四步:建立model類

public class User { private int id; private String name; private String password; private String password2; /*提供set和get方法,toString方法*/}

第五步:創建數據庫,UserDao接口和mapper映射文件

(1)建立很簡單的一張表

maven,ssm框架整合,maven整合ssm框架配置

(2)UserDao接口

public interface UserDao {  User findUserById(User user);}

(3)UesrMapper.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- namespace命名空間,指向UserDao全路徑--><mapper namespace="com.ssm.dao.UserDao"> <!-- 根據id查詢用戶信息 --> <!--   id:唯一標識 一個statement,和UserDao方法名一致  #{}:表示 一個占位符,如果#{}中傳入簡單類型的參數,#{}中的名稱隨意  parameterType:輸入 參數的類型,和UserDao()里參數一致  resultType:輸出結果 類型,和UserDao()返回類型一致  --> <select id="findUserById" parameterType="com.ssm.model.User" resultType="com.ssm.model.User">  SELECT * FROM USER   <where>  <if test="name != null">   AND Name= #{name}  </if>  <if test="password != null">   AND password= #{password}  </if>  </where>  </select> </mapper>

第五步:創建UserService和UserServiceImpl

(1)UserService

public interface UserService {  public User getUserById(User user); }

(2)UserServiceImpl

import org.springframework.stereotype.Service;import com.ssm.dao.UserDao;import com.ssm.model.User;import com.ssm.service.UserService;@Service("userService")public class UserServerImpl implements UserService { @Resource private UserDao userDao; public User getUserById(User user) {  return this.userDao.findUserById(user); }}

第六步:創建jdbc文件和log日志文件

(1)jdbc.properties

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc/:mysql/://localhost/:3306/test?useUnicode=true&&characterEncoding=UTF-8jdbc.username=rootjdbc.password=root

(2)log4j.properties

log4j.rootLogger=INFO,Console,File #定義日志輸出目的地為控制臺 log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out #可以靈活地指定日志輸出格式,下面一行是指定具體的格式 log4j.appender.Console.layout = org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  #文件大小到達指定尺寸的時候產生一個新的文件 log4j.appender.File = org.apache.log4j.RollingFileAppender #指定輸出目錄 log4j.appender.File.File = logs/ssm.log #定義文件最大大小 log4j.appender.File.MaxFileSize = 10MB # 輸出所以日志,如果換成DEBUG表示輸出DEBUG以上級別日志 log4j.appender.File.Threshold = ALL log4j.appender.File.layout = org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH/:mm/:ss}][%c]%m%n 

第七步:整合spring-mybatis.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  xmlns:context="http://www.springframework.org/schema/context"  xmlns:mvc="http://www.springframework.org/schema/mvc"  xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd       http://www.springframework.org/schema/context       http://www.springframework.org/schema/context/spring-context-3.1.xsd       http://www.springframework.org/schema/mvc       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  <!-- 自動掃描 -->  <context:component-scan base-package="com.ssm" />  <!-- 引入實現jdbc配置文件 -->  <bean id="propertyConfigurer"   class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">   <property name="location" value="classpath:jdbc.properties" />  </bean>   <!-- 2.數據庫連接池 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"   destroy-method="close">   <property name="driverClassName" value="${jdbc.driver}" />   <property name="url" value="${jdbc.url}" />   <property name="username" value="${jdbc.username}" />   <property name="password" value="${jdbc.password}" />  </bean>    <!-- spring和MyBatis整合,通過spring來管理MyBatis的SqlSessionFactory會話工廠 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">   <!-- 指定數據庫連接池引用 -->  <property name="dataSource" ref="dataSource" />   <!-- 自動掃描mapping.xml文件 -->   <property name="mapperLocations" value="classpath:com/ssm/mapper/*.xml"></property>  </bean>   <!-- DAO接口所在包名,Spring會自動查找其下的類 -->  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">   <property name="basePackage" value="com.ssm.dao" />   <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  </bean>   <!-- (事務管理)transaction manager, use JtaTransactionManager for global tx -->  <bean id="transactionManager"   class="org.springframework.jdbc.datasource.DataSourceTransactionManager">   <property name="dataSource" ref="dataSource" />  </bean> </beans>

第八步:建立測試類

經過以上步驟(log4j不配也沒影響),我們已經完成了Spring和mybatis的整合,這樣我們就可以編寫一段測試代碼來試試是否成功了。

測試類在src/test/java中建立,如果測試成功,表示Spring和Mybatis已經整合成功了。輸出信息使用的是Log4j打印到控制臺。

(1)TestMyBatis測試類

package ssm;import javax.annotation.Resource;import org.apache.log4j.Logger;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.ssm.model.User;import com.ssm.service.UserService;/*讓測試運行于Spring測試環境*/@RunWith(SpringJUnit4ClassRunner.class) /*用來指定加載的Spring配置文件的位置,會加載默認配置文件*/@ContextConfiguration(locations = { "classpath:spring-mybatis.xml" })public class TestMyBatis { @Resource(name = "userService")  private UserService userService; @Test public void test1() {  User user=new User();  user.setName("張三");  user.setPassword("123");  User user1 = userService.getUserById(user);  System.out.println(user1.toString()); }}

最后!關鍵看后臺輸出,也是見證奇跡的時候,如果輸出對象那說明你配置整合成功!

maven,ssm框架整合,maven整合ssm框架配置

那接下來我們開始整合springMVC

maven,ssm框架整合,maven整合ssm框架配置

第九步:配置springmvc.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  xmlns:context="http://www.springframework.org/schema/context"  xmlns:mvc="http://www.springframework.org/schema/mvc"  xsi:schemaLocation="http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd       http://www.springframework.org/schema/context       http://www.springframework.org/schema/context/spring-context-3.1.xsd       http://www.springframework.org/schema/mvc       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  <!-- 自動掃描該包,使SpringMVC認為包下用了@controller注解的類是控制器 -->  <context:component-scan base-package="com.ssm.controller" />  <!--避免IE執行AJAX時,返回JSON出現下載文件 -->  <bean id="mappingJacksonHttpMessageConverter"   class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">   <property name="supportedMediaTypes">    <list>     <value>text/html;charset=UTF-8</value>    </list>   </property>  </bean>  <!-- 啟動SpringMVC的注解功能,完成請求和注解POJO的映射 -->  <bean   class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">   <property name="messageConverters">    <list>     <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON轉換器 -->    </list>   </property>  </bean>  <!-- 定義跳轉的文件的前后綴 ,視圖模式配置-->  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">   <!-- 這里的配置我的理解是自動給后面action的方法return的字符串加上前綴和后綴,變成一個 可用的url地址 -->   <property name="prefix" value="/WEB-INF/jsp/" />   <property name="suffix" value=".jsp" />  </bean>    <!-- 配置文件上傳,如果沒有使用文件上傳可以不用配置,當然如果不配,那么配置文件中也不必引入上傳組件包 -->  <bean id="multipartResolver"   class="org.springframework.web.multipart.commons.CommonsMultipartResolver">   <!-- 默認編碼 -->   <property name="defaultEncoding" value="utf-8" />   <!-- 文件大小最大值 -->   <property name="maxUploadSize" value="10485760000" />   <!-- 內存中的最大值 -->   <property name="maxInMemorySize" value="40960" />  </bean>  </beans>

第十步:配置web.xml文件

這里面對spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是為了完成SSM整合,之前2框架整合不需要在此處進行任何配置。

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://java.sun.com/xml/ns/javaee"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  version="3.0">  <display-name>Archetype Created Web Application</display-name>  <!-- Spring和mybatis的配置文件 -->  <context-param>   <param-name>contextConfigLocation</param-name>   <param-value>classpath:spring-mybatis.xml</param-value>  </context-param>  <!-- 編碼過濾器 -->  <filter>   <filter-name>encodingFilter</filter-name>   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>   <async-supported>true</async-supported>   <init-param>    <param-name>encoding</param-name>    <param-value>UTF-8</param-value>   </init-param>  </filter>  <filter-mapping>   <filter-name>encodingFilter</filter-name>   <url-pattern>/*</url-pattern>  </filter-mapping>  <!-- Spring監聽器 -->  <listener>   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>  <!-- 防止Spring內存溢出監聽器 -->  <listener>   <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  </listener>   <!-- Spring MVC servlet -->  <servlet>   <servlet-name>SpringMVC</servlet-name>   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>   <init-param>    <param-name>contextConfigLocation</param-name>    <param-value>classpath:springmvc.xml</param-value>   </init-param>   <load-on-startup>1</load-on-startup>   <async-supported>true</async-supported>  </servlet>  <servlet-mapping>   <servlet-name>SpringMVC</servlet-name>   <!-- 此處可以可以配置成*.do,對應struts的后綴習慣 -->   <url-pattern>/</url-pattern>  </servlet-mapping>  <welcome-file-list>   <welcome-file>/index.jsp</welcome-file>  </welcome-file-list>  </web-app>

第十一步最后測試:

(1) 先寫login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><html><head><title>用戶登錄:</title></head><body><form action="login"><label>用戶名:</label><input type="text" id="username" name="username"></input><br><br><label>密碼:</label><input type="text" id="password" name="password"></input><br><br><input type="submit" value="登錄"/></form></body></html>

界面:

maven,ssm框架整合,maven整合ssm框架配置

(2)在寫UserController

import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.ssm.dao.UserDao;import com.ssm.model.User;@Controllerpublic class UserController { @Resource private UserDao userDao;  @RequestMapping("/jsp/login") public String login(HttpServletRequest request){ String username=request.getParameter("username"); String password=request.getParameter("password"); User user=new User(); //根據用戶名和學生查詢數據庫 user.setName(username); user.setPassword(password);  User users=userDao.findUserById(user); //如果有學生就說明登錄成功 if(users!=null){  return "susscss"; } //這個jsp我沒有寫,大家知道就好,你們可以自己寫 return "err";} }

(3)最后susscss.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><html><body><P>用戶賬號密碼正確,登錄成功</P></body></html>

完美!

maven,ssm框架整合,maven整合ssm框架配置

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91欧美激情另类亚洲| 日韩av网站在线| 精品久久久久久电影| 久久久999精品| 日韩成人av网| 在线成人激情黄色| 成人激情视频免费在线| 黑人极品videos精品欧美裸| 成人激情在线播放| 成人免费在线视频网站| 欧美极品第一页| 欧美一区视频在线| 欧美日韩亚洲视频| 久久久久久久香蕉网| 国产精品久久视频| 亚洲欧美日韩第一区| 在线电影欧美日韩一区二区私密| 91老司机精品视频| 97在线视频国产| 国产日韩精品在线观看| 成人字幕网zmw| 欧美一区三区三区高中清蜜桃| 91久久嫩草影院一区二区| 欧美午夜宅男影院在线观看| 亚洲欧美变态国产另类| 91成人在线视频| 日本久久中文字幕| 午夜精品一区二区三区在线| 亚洲3p在线观看| 一区二区三区动漫| 91sao在线观看国产| 亚洲一区二区精品| 亚洲欧美日韩爽爽影院| 国产精品成人一区二区| 精品丝袜一区二区三区| 国产亚洲精品久久久优势| 国产精品jvid在线观看蜜臀| 丝袜美腿精品国产二区| 色婷婷综合久久久久中文字幕1| 国产91精品视频在线观看| 最近2019免费中文字幕视频三| 精品久久久香蕉免费精品视频| 色哟哟入口国产精品| 一个人看的www欧美| 久久精品国产亚洲7777| 菠萝蜜影院一区二区免费| 黑人巨大精品欧美一区二区免费| 亚洲精品动漫100p| 色天天综合狠狠色| 亚洲欧美在线免费| 国产成人精品久久亚洲高清不卡| 亚洲视频一区二区三区| 欧美日韩一区二区三区在线免费观看| 91老司机精品视频| 亚洲精品国精品久久99热| 欧美一级bbbbb性bbbb喷潮片| 亚洲一区二区福利| 亚洲精品视频中文字幕| 国产大片精品免费永久看nba| 亚洲第一视频在线观看| 91久久精品一区| 91免费观看网站| 亚洲福利小视频| 国产精品综合不卡av| 久久精品最新地址| 日韩成人久久久| 国产成人在线精品| 日本不卡免费高清视频| 91青草视频久久| 亚洲香蕉在线观看| 欧美激情精品久久久久久| 日韩中文字幕av| 在线日韩日本国产亚洲| 中文日韩在线观看| 91精品国产乱码久久久久久蜜臀| 欧美成人午夜视频| 人人澡人人澡人人看欧美| 深夜福利国产精品| 亚洲精品女av网站| 26uuu亚洲国产精品| 国产激情久久久| 九九久久久久99精品| 97在线观看视频国产| 欧洲成人免费aa| 青草青草久热精品视频在线网站| 91大神福利视频在线| 欧美在线一级视频| 国产欧美va欧美va香蕉在线| 伊人精品在线观看| 亚洲国产精品99| 久久久精品电影| 国产精品免费在线免费| 欧美裸体男粗大视频在线观看| 免费不卡欧美自拍视频| 国产精品高清免费在线观看| 成人黄色av网| 午夜精品蜜臀一区二区三区免费| 91影视免费在线观看| 成人黄色av播放免费| 亚洲国产精品专区久久| 欧美高清不卡在线| 91亚洲精品久久久久久久久久久久| 日韩电影视频免费| 欧美精品久久久久a| 日本高清不卡的在线| 北条麻妃一区二区三区中文字幕| 97婷婷大伊香蕉精品视频| 97视频在线观看免费高清完整版在线观看| 久久99久久亚洲国产| 91精品啪aⅴ在线观看国产| 欧美另类精品xxxx孕妇| 亚洲国产精品中文| 久久精品视频在线| 亚洲欧美国产日韩中文字幕| 成人444kkkk在线观看| 亚洲精选中文字幕| 亚洲欧美精品一区| 欧美一级片免费在线| 九九热这里只有精品免费看| 日韩精品免费在线| 亚洲一区二区三区乱码aⅴ| 日韩欧美成人精品| 午夜精品美女自拍福到在线| 欧美性视频精品| 精品视频在线观看日韩| 亚洲国产精品999| 91精品国产综合久久香蕉的用户体验| 国产精品色午夜在线观看| 国产亚洲人成网站在线观看| 亚洲韩国日本中文字幕| 国产精品嫩草影院一区二区| 精品女同一区二区三区在线播放| 久久久久这里只有精品| 最近更新的2019中文字幕| 欧美日本高清视频| 大量国产精品视频| 亚洲国产精彩中文乱码av| 91在线观看欧美日韩| 日韩av色综合| 国产一区二区av| 日韩在线视频观看正片免费网站| 欧美性猛交xxxx乱大交极品| 国产精品视频自拍| 亚洲视频在线观看免费| 97人洗澡人人免费公开视频碰碰碰| 日韩精品免费在线视频观看| 亚洲欧美一区二区精品久久久| 成人国产在线激情| 亚洲韩国欧洲国产日产av| 国产精品亚洲第一区| 国产一区二区欧美日韩| 日本亚洲精品在线观看| 欧美黄色成人网| 日韩高清中文字幕| 久久视频精品在线| 亚洲石原莉奈一区二区在线观看| 亚洲国产精品国自产拍av秋霞| 91探花福利精品国产自产在线| 国产精品久久久久一区二区| 国产精品99蜜臀久久不卡二区| 欧美巨大黑人极品精男| 成人免费看吃奶视频网站| 国产精品美女在线| 国产精品视频一区二区高潮|