日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyBatis 实践 -Mapper与DAO

發布時間:2025/3/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis 实践 -Mapper与DAO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MyBatis 實踐

標簽: Java與存儲


MyBatis簡介

MyBatis前身是iBatis,是一個基于Java的數據持久層/對象關系映射(ORM)框架.

MyBatis是對JDBC的封裝,使開發人員只需關注SQL本身,而不需花費過多的精力去處理如注冊驅動設置參數、創建Connection/Statement解析結果集等JDBC過程性代碼.MyBatis基于XML/注解的方式配置Statement,執行SQL,并將執行結果映射成Java對象, 大大降低了數據庫開發的難度.

MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.
– MyBatis項目地址/在線文檔.


初識MyBatis

使用MyBatis需要在pom.xml中添加如下依賴:

<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.0</version> </dependency> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.36</version> </dependency>

Select

  • 配置mybatis/mybatis-configuration.xml
    作為MyBatis的全局配置文件,其配置了MyBatis的運行環境信息(如數據源/mapper文件等).
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><environments default="development"><environment id="development"><!-- 配置JDBC事務管理--><transactionManager type="JDBC"/><!-- 配置數據源--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://host:port/db?characterEncoding=utf-8"/><property name="username" value="username"/><property name="password" value="password"/></dataSource></environment></environments><!-- 加載mapper映射文件 --><mappers><mapper resource="mybatis/mapper/UserDAO.xml"/></mappers> </configuration>
  • 書寫UserDAO(mapper映射)
    最為MyBatis最核心的部分,配置了操作數據庫的SQL語句:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="namespace"><select id="selectUserById" parameterType="java.lang.Integer" resultType="com.fq.domain.User">SELECT * FROM user WHERE id = #{id};</select><select id="selectUserByName" parameterType="java.lang.String" resultType="com.fq.domain.User">SELECT * FROM user WHERE name LIKE '%${value}%';</select></mapper> 屬性描述
namespace命名空間,用于隔離SQL語句
parameterType定義SQL輸入映射類型,MyBatis通過OGNL從輸入對象中獲取參數傳入SQL語句.
resultType定義SQL輸出映射類型,MyBatis將SQL查詢結果的一行記錄映射為resultType指定的類型.

mapper映射文件名有UserDAO.xml/UserMapper.xml/User.xml等幾種形式, 其一般存放在與mybatis-configuration.xml同級的mapper目錄下,由于其主要作用為定義SQL語句與映射關系, 因此一般統稱為mapper映射文件.

  • 定義PO類
    PO類主要作用為SQL(輸入/輸出)映射,通常與數據庫表對應:
/*** @author jifang* @since 15/12/31 下午2:27.*/ public class User {private Integer id;private String name;private String password;public User() {}public User(Integer id, String name, String password) {this.id = id;this.name = name;this.password = password;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", password='" + password + '\'' +'}';} }
  • UserDAO(Java對象)
    獲得SqlSession,執行SQL語句, 得到映射結果:
/*** @author jifang* @since 16/2/24 下午6:15.*/ public class UserDAO {private SqlSessionFactory factory;@Beforepublic void setUp() throws IOException {String resource = "mybatis/mybatis-configuration.xml";factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream(resource));}@Testpublic void selectUserById() {try (SqlSession session = factory.openSession()) {User user = session.selectOne("namespace.selectUserById", 1);System.out.println(user);}}@Testpublic void selectUserByName() {try (SqlSession session = factory.openSession()) {List<User> users = session.selectList("namespace.selectUserByName", "student");for (User user : users) {System.out.println(user);}}} }

Insert

  • mapper
<insert id="insertUser" parameterType="com.fq.domain.User">INSERT INTO user(name, password) VALUES(#{name}, #{password}); </insert>
  • UserDAO
@Test public void insertUser() {try (SqlSession session = factory.openSession()) {User user = new User();user.setName("new_name1");user.setPassword("new_password");session.insert("namespace.insertUser", user);session.commit();} }

自增主鍵返回

修改mapper文件,添加<selectKey/>,可以將MySQL的自增主鍵(即剛剛插入數據時生成的ID)返回:

<insert id="insertUser" parameterType="com.fq.domain.User"><selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">SELECT LAST_INSERT_ID();</selectKey>INSERT INTO user(name, password) VALUES(#{name}, #{password}); </insert> 屬性描述
keyProperty指定存儲到DO中的哪個屬性;
orderselectKey執行順序(相對于insert語句),AFTER/BEFORE;
resultType主鍵返回類型(DO中對應屬性的類型);
LAST_INSERT_ID()MySQL函數,返回auto_increment自增列新記錄值.
  • UserDAO
@Test public void insertUser() {try (SqlSession session = factory.openSession()) {System.out.println(session);User user = new User(null, "new_name", "new_password");session.insert("namespace.insertUser", user);// 需要在commit之后才能獲得自增主鍵session.commit();System.out.println(user.getId());} }

該功能還可以通過<insert/>的useGeneratedKeys/keyProperty兩個屬性合作完成, 詳見MyBatis文檔.


Update

  • mapper
<update id="updateUserById" parameterType="com.fq.domain.User">UPDATE user SET name = #{name}, password = #{password} WHERE id = #{id}; </update>
  • UserDAO
@Test public void updateUserById() {try (SqlSession session = factory.openSession(true)) {session.update("namespace.updateUserById",new User(1, "feiqing", "ICy5YqxZB1uWSwcVLSNLcA=="));} }

Delete

  • mapper
<delete id="deleteUserById" parameterType="java.lang.Integer">DELETE FROM user WHERE id = #{id}; </delete>
  • UserDAO
@Test public void deleteUserById() {try (SqlSession session = factory.openSession(true)) {session.delete("namespace.deleteUserById", 51615);} }

小結

  • #{}/${}

    • #{}: 表示一個占位符號,實現向PreparedStatement占位符中設置值(#{}表示一個占位符?),自動進行Java類型到JDBC類型的轉換(因此#{}可以有效防止SQL注入).#{}可以接收簡單類型或PO屬性值,如果parameterType傳輸的是單個簡單類型值,#{}花括號中可以是value或其它名稱.
    • ${}: 表示拼接SQL串,通過${}可將parameterType內容拼接在SQL中而不進行JDBC類型轉換,${}可以接收簡單類型或PO屬性值,如果parameterType傳輸的是單個簡單類型值,${}花括號中只能是value.
      雖然${}不能防止SQL注入,但有時${}會非常方便(如order by排序,需要將列名通過參數傳入SQL,則用ORDER BY ${column},使用#{}則無法實現此功能(詳見JDBC基礎關于PreparedStatement的討論).
  • SqlSession
    提供操作數據庫的方法(如:selectOne/selectList).但SqlSession是線程不安全的,因此最好將其定義成局部變量使用.

  • MyBatis優點(與JDBC相比)
    • SQL寫在Java代碼中導致不易維護, 而MyBatis將SQL寫在mapper中,XML與Java代碼分離.
    • 向SQL語句傳參繁瑣(如:SQL的where條件不一,SQL數據類型與Java不同),MyBatis通過parameterType自動將Java對象映射至SQL語句.
    • 結果集解析麻煩(SQL變化導致解析代碼變化,SQL數據類型與Java不同),MyBatis通過resultType自動將SQL執行結果映射成Java對象.

附: 最好在pom.xml中添加一個日志系統實現(logback/log4j), 這樣會在調試程序時打印日志信息,便于查錯, 以logback為例:

  • pom.xml
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.2</version> </dependency>
  • logback.xml
<configuration><property name="logRoot" value="/data/logs"/><property name="pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} - %msg%n"/><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${pattern}</pattern></encoder></appender><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${logRoot}/common-server.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>7</maxHistory></rollingPolicy><encoder><pattern>${pattern}</pattern></encoder></appender><root level="DEBUG"><appender-ref ref="STDOUT"/><appender-ref ref="FILE"/></root></configuration>

其他關于MyBatis日志的詳細信息可參考MyBatis文檔日志部分.


DAO開發

使用MyBatis開發DAO有兩個方法,原始DAO開發Mapper映射DAO開發.


原始DAO開發

原始DAO開發需要開發人員編寫DAO接口DAO實現,如根據ID查詢用戶信息:

  • mapper(同前)
<select id="selectUserById" parameterType="java.lang.Integer" resultType="com.fq.domain.User">SELECT * FROM user WHERE id = #{id}; </select>
  • UserDAO接口
/*** @author jifang* @since 16/2/22 上午10:20.*/ public interface UserDAO {User selectUserById(Integer id) throws Exception; }
  • UserDAO實現
public class UserDAOImpl implements UserDAO {private SqlSessionFactory factory;public UserDAOImpl(SqlSessionFactory factory) {this.factory = factory;}@Overridepublic User selectUserById(Integer id) throws Exception {SqlSession session = factory.openSession();User user = session.selectOne("namespace.selectUserById", id);session.close();return user;} }
  • Client
public class MyBatisClient {@Testpublic void originalClient() throws Exception {UserDAO dao = new UserDAOImpl(new SqlSessionFactoryBuilder().build(ClassLoader.getSystemResourceAsStream("mybatis/mybatis-configuration.xml")));User user = dao.selectUserById(1);System.out.println(user);} }
  • 原始DAO開發中存在的問題:
    1) DAO實現方法體中存在很多過程性代碼.
    2) 調用SqlSession的方法(select/insert/update)需要指定Statement的id,存在硬編碼,不利于代碼維護.

Mapper映射開發

mapper映射開發方法只需編寫DAO接口,MyBatis根據接口定義與mapper文件中的SQL語句動態創建接口實現.

  • mapper
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.fq.mybatis.UserDAO"><select id="selectUserById" parameterType="java.lang.Integer" resultType="com.fq.domain.User">SELECT * FROM user WHERE id = #{id};</select> </mapper>

注意: 此時namespace必須與UserDAO接口的全限定名相同.

  • UserDAO接口與前面相同, 但不再使用UserDAOImpl
  • Client
/*** @author jifang* @since 16/2/22 下午2:57.*/ public class MyBatisClient {private SqlSession session;private SqlSessionFactory factory;@Beforepublic void setUp() {factory = new SqlSessionFactoryBuilder().build(ClassLoader.getSystemResourceAsStream("mybatis/mybatis-configuration.xml"));session = factory.openSession();}@Testpublic void mapperClient() throws Exception {UserDAO dao = session.getMapper(UserDAO.class);User user = dao.selectUserById(1);System.out.println(user);}@Afterpublic void tearDown() {session.close();} }
  • mapper映射開發方法需要遵循以下規范:
  • mapper文件中的namespace與DAO接口的全限定名相同;
  • mapper文件中的Statement的id與DAO接口方法名相同;
  • mapper文件中的Statement的parameterType/resultType與DAO方法的入參/回參類型相同.

Mapper映射

mapper映射文件(如UserDAO.xml)主要作用是定義SQL語句(每個SQL是一個Statement),是MyBatis的核心.

MyBatis官方推薦使用mapper映射的方法來開發DAO,因此我們以后就不再過多介紹原始DAO的開發.


輸入映射

多個形參

傳遞簡單類型前面示例已經使用過,在此就不再贅述.當需要傳遞多個形參時,不再需要設置parameterType參數:

  • mapper
<update id="updateUserById">UPDATE user SET name = #{1}, password = #{2} WHERE id = #{0}; </update>
  • UserDAO
void updateUserById(Integer id, String name, String password) throws Exception;

傳入PO

MyBatis使用OGNL表達式解析對象屬性值:

  • mapper
<select id="selectUserByNamePassword" parameterType="com.fq.domain.User" resultType="com.fq.domain.User">SELECT *FROM userWHERE name = #{name} AND password = #{password}; </select>
  • UserDAO
User selectUserByNamePassword(User user) throws Exception;

傳入Map

  • mapper
<select id="selectUserByMap" parameterType="java.util.Map" resultType="com.fq.domain.User">SELECT *FROM userWHERE name = #{name} AND password = #{password}; </select>

#{}花括號內對應Map的key.

  • UserDAO
User selectUserByMap(Map<String, Object> map) throws Exception;

輸出映射

輸出簡單類型

  • mapper
<select id="selectUserCount" parameterType="java.lang.String" resultType="java.lang.Integer">SELECT count(*)FROM userWHERE name LIKE '%${value}%'; </select>
  • UserDAO
Integer selectUserCount(String name) throws Exception;

返回簡單類型必須保證查詢結果只有一行記錄,最終將第一個字段的值轉換為輸出類型.


輸出PO對象/列表

  • 前面已經演示過輸出兩種類型(selectUserById/selectUserByName雖然當時使用的是原始DAO開發方法, 但mapper定義形式大同小異),因此在這兒只做簡單總結:
  • 輸出單個PO對象和輸出PO列表在mapper中定義的resultType是一樣的;
  • 輸出單個PO對象要保證SQL查詢結果為單條數據,其內部使用selectOne方法調用;
  • 輸出PO列表表示查詢結果可能為多條,其內部使用selectList方法調用,接口返回值可用List<PO>/Set<PO>承載.

輸出Map

輸出PO對象完全可以改用Map輸出,字段名作key,字段值作value.

  • mapper
<select id="selectUserLikeName" resultType="java.util.Map">SELECT *FROM userWHERE name LIKE '%${value}%'; </select>
  • UserDAO
List<Map<String, Object>> selectUserLikeName(String name) throws Exception;

resultMap

resultType可將查詢結果映射為PO,但前提是PO屬性名SQL字段名必須一致,如不一致,則可通過resultMap作對應映射:

  • mapper
<resultMap id="userMap" type="com.fq.domain.User"><id column="user_id" property="id"/><result column="user_name" property="name"/><result column="user_password" property="password"/> </resultMap><select id="selectUserByName" parameterType="java.lang.String" resultMap="userMap">SELECTid user_id,name user_name,password user_passwordFROM userWHERE name = #{name}; </select> 屬性描述
<id/>表示查詢結果集的唯一標識;
<result/>表示普通結果,即PO屬性;
column表示SQL查詢出來的字段名,
property表示PO屬性.
  • UserDAO接口同前.

總結

以上是生活随笔為你收集整理的MyBatis 实践 -Mapper与DAO的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

中文超碰字幕 | 福利久久久 | 成人网444ppp| 久久久久中文字幕 | 操操操天天操 | 视频在线观看国产 | 正在播放 久久 | 日韩18p| 国产视频不卡一区 | 欧美日韩国产在线精品 | 国产色资源 | 欧美日韩中文视频 | www.99久久.com | 亚洲一级免费电影 | 日韩欧美高清一区二区三区 | 久在线观看 | av在线中文 | 水蜜桃亚洲一二三四在线 | av在线免费观看网站 | 欧美日本在线视频 | 天天干天天爽 | 国产一级做a爱片久久毛片a | 日韩免费网站 | 久久久www成人免费精品 | 成人在线免费看 | 亚洲日日射 | 7777精品伊人久久久大香线蕉 | 人人爽人人爽人人片av免 | 一区二区三区国产欧美 | 免费观看www小视频的软件 | 在线观看日韩专区 | 国产亚洲免费观看 | 久久国产精品视频观看 | 日韩91在线 | 国产剧情在线一区 | 国产成人精品亚洲 | 欧美在线观看视频免费 | 亚洲精品国偷自产在线91正片 | 黄色成人91 | 日日爱av| 91九色国产视频 | 国产玖玖在线 | 99精品视频一区 | 国产福利网站 | 免费a网站 | 国产精品美女久久久久久久 | 久久免费视频在线观看6 | 综合成人在线 | 免费国产在线观看 | 欧美性大战久久久久 | 成人在线免费观看视视频 | 欧美日韩国产一区二区在线观看 | 国产福利在线免费观看 | 中文字幕中文字幕在线中文字幕三区 | 在线观看日韩中文字幕 | 亚洲日本va在线观看 | 日韩成人免费在线电影 | 国产美女免费观看 | www.黄色网.com| 免费v片| 亚洲干视频在线观看 | 97久久精品午夜一区二区 | a黄色| 手机av网站 | 免费看黄的视频 | 欧美人体xx | 韩国av电影在线观看 | 国产精品小视频网站 | 欧美爽爽爽 | 97成人资源 | 在线免费91 | 精品自拍av | 99久久久久久久久久 | 天天碰天天操视频 | 午夜久久久精品 | 天天操福利视频 | 中文字幕一区二区三区在线播放 | 国产免费人成xvideos视频 | 人人擦 | av综合网址 | 国产夫妻性生活自拍 | 三级av免费| 久久久国产日韩 | 国产精品久久久久高潮 | 亚洲国产成人久久综合 | jizz18欧美18 | 日韩免费播放 | 国产日产欧美在线观看 | a天堂中文在线 | 日本久久中文字幕 | 最近2019年日本中文免费字幕 | 国产激情电影综合在线看 | 午夜精品一区二区三区在线观看 | 久久久久色 | 性色在线视频 | 91福利国产在线观看 | 国产精品视频免费 | 国产成人精品在线播放 | 91精品啪啪 | 色在线免费 | 中文字幕色在线 | 天天草天天爽 | 日韩欧美视频在线播放 | 97理论电影 | 99久久一区 | 中文字幕在线字幕中文 | 天天干天天干天天色 | 中文字幕 婷婷 | 中文字幕影片免费在线观看 | 午夜少妇 | 激情五月色播五月 | 丁香五月亚洲综合在线 | 蜜桃av人人夜夜澡人人爽 | av 一区 二区 久久 | 99在线精品免费视频九九视 | 欧美激情视频免费看 | 日韩中文字幕在线观看 | 久久成人一区二区 | 中文字幕在线观看完整 | 免费观看全黄做爰大片国产 | 久久久高清视频 | 亚洲精品国产第一综合99久久 | 精品国产片 | 香蕉视频在线看 | 久久久久一区二区三区四区 | 99久久精品免费看国产四区 | 国产99久久久国产精品 | 亚洲免费黄色 | 国产91区 | 亚洲视频久久久久 | 日韩有码专区 | 欧美大荫蒂xxx | 色国产在线 | 免费观看一级视频 | 一区二区三区高清在线观看 | 国产一级黄色免费看 | 国产一级片直播 | 亚洲精品视频在 | 成人精品一区二区三区中文字幕 | 久久激情视频网 | 亚洲理论电影网 | 国产精品自产拍在线观看桃花 | 99c视频在线 | 欧美一级电影片 | 玖玖视频网 | 国产又粗又硬又爽视频 | 欧美久久久久久久 | 在线视频app | 久久艹艹| 成人三级视频 | 婷婷久久网站 | 国产91九色蝌蚪 | 麻豆视频一区二区 | 欧美日韩69| 久久国产精品网站 | 91av视频在线免费观看 | 久久6精品| 9999免费视频 | 91色国产在线 | 午夜精品一区二区三区在线观看 | 在线观看视频福利 | 91精品久久久久久 | 久久这里| 亚洲欧美在线观看视频 | 4438全国亚洲精品观看视频 | 天天拍天天爽 | 在线 国产 日韩 | 亚洲国产精品va在线 | 激情综合网五月 | 国产天天爽 | 天天摸天天舔 | 97精品久久人人爽人人爽 | 国产毛片久久久 | 美女久久网站 | av中文字幕免费在线观看 | 中文av在线免费观看 | 深夜男人影院 | 亚洲成av人片在线观看香蕉 | 国产精品免费av | 蜜臀av夜夜澡人人爽人人桃色 | 综合精品久久久 | 精品一区二区6 | 米奇影视7777 | 免费在线观看一级片 | 久艹视频免费观看 | 久久久久一区二区三区 | 国产高清av在线播放 | 日韩欧美国产视频 | 在线三级播放 | 国产你懂的在线 | 91中文字幕一区 | 在线观看免费福利 | www黄com| 久久人人插 | 精品久久久久久久久久 | 高清在线一区二区 | 久久精品国产免费看久久精品 | 国产精品久久久久久久久久久久午夜 | 91九色国产在线 | 久久久久夜色 | 日本xxxx裸体xxxx17 | 91精品久久久久久久久久久久久 | 天堂va在线观看 | 一区二区三区在线观看免费 | 日韩av片免费在线观看 | a黄色大片 | 天天透天天插 | 免费看污片 | 成人免费网站在线观看 | 亚洲激情六月 | 久久91网 | 成人免费在线网 | 国产黄色片网站 | 国产一区二区高清 | 亚洲免费视频在线观看 | 天天爽夜夜爽人人爽一区二区 | 久久久免费高清视频 | 免费视频一区二区 | 婷婷精品国产欧美精品亚洲人人爽 | 天天操天天操天天操天天操天天操 | www色片| 亚洲乱码精品久久久 | 免费 在线 中文 日本 | 天无日天天操天天干 | 国产精品高清一区二区三区 | 在线国产一区二区 | 美国av片在线观看 | av在线之家电影网站 | 久草网站| 久久午夜色播影院免费高清 | 成人中文字幕av | av高清一区二区三区 | 五月天天av | 一区二区三区在线观看中文字幕 | 激情在线五月天 | 精品免费视频123区 午夜久久成人 | 91九色蝌蚪视频网站 | 久久久久久久久久网 | 成人丁香花 | 日韩欧美在线综合网 | 日韩一区精品 | 国产 日韩 在线 亚洲 字幕 中文 | 在线小视频| 精品久久久久久久久亚洲 | 欧美日韩国产综合一区二区 | 国产精品视频在线观看 | 国产高清区 | 国产理论影院 | 久久久久高清毛片一级 | 久久99免费观看 | 97视频久久久 | 四虎天堂 | 国产一区免费在线 | 97超碰中文 | 久草在线视频中文 | 天海翼一区二区三区免费 | 六月丁香激情网 | 香蕉视频网址 | 国产亚洲精品久久久久久无几年桃 | 中文字幕在线影院 | 色偷偷男人的天堂av | 免费在线观看国产精品 | 午夜精品婷婷 | 久久久久久欧美二区电影网 | 五月婷婷丁香色 | 激情视频在线观看网址 | 黄色性av | 又色又爽又黄高潮的免费视频 | 国产精品久久久久影视 | 久影院| 成人久久免费视频 | 欧美日产在线观看 | 日韩精品一区二区三区不卡 | 97爱爱爱 | 激情欧美一区二区三区免费看 | 国产a视频免费观看 | 久久成人资源 | 久久黄色免费视频 | 麻豆av电影 | 91av影视 | 99精品一区| 国产精品一区二区在线观看免费 | 国产精品一区二区三区视频免费 | www.亚洲黄 | www在线观看视频 | 久久久久久久久久久久国产精品 | 国产成人三级一区二区在线观看一 | 五月激情电影 | 99热99re6国产在线播放 | 日韩色区 | 亚洲精品视频在线观看免费视频 | 51久久夜色精品国产麻豆 | 国产精品国产三级在线专区 | 亚洲精品乱码久久久久久蜜桃91 | 精品一区中文字幕 | 日日干天天射 | 四虎在线观看 | 91黄视频在线 | 日韩久久久久久久久久 | 日日综合| 国产精品11 | 射射色 | 99久久精品国产亚洲 | 美女网站黄在线观看 | 日韩啪啪小视频 | 亚洲片在线观看 | 色精品视频 | a在线v| 六月婷婷色 | www.国产在线观看 | 91福利在线观看 | 亚洲在线日韩 | 黄色精品久久久 | 久久se视频 | 免费视频91 | 麻豆 91 在线 | 99久久影视 | 丁香婷婷射 | 中文字幕免费观看全部电影 | 在线你懂的视频 | 亚洲激情电影在线 | 久久成年人网站 | 久久久影院一区二区三区 | 麻豆影音先锋 | 成人va视频 | 91污视频在线观看 | 九色最新网址 | 国产精品成人免费一区久久羞羞 | 热久久这里只有精品 | 成人免费视频观看 | www.夜夜操.com | 国产精品久久久久久久毛片 | 97成人在线免费视频 | 国产一级高清 | 日韩中文在线播放 | 日韩综合一区二区三区 | 国产精品久久久久久久久久久不卡 | 成人av一级片 | 久久免费视频在线观看30 | 综合色播 | 日日夜夜综合网 | 中文字幕日韩av | 久久精品一区二区三区视频 | 在线观看视频免费播放 | 久久九九国产视频 | 亚洲狠狠婷婷 | 国产高清在线观看av | 久久综合给合久久狠狠色 | 久久理论电影 | 五月婷婷精品 | 99人成在线观看视频 | 国产专区视频 | 午夜精品久久久 | 伊人午夜视频 | 在线97| 久久在线免费观看视频 | 夜夜操天天干, | 人人狠狠 | 日本精品一区二区在线观看 | 国产精品久久久久久久免费 | 国内精品视频久久 | 超碰99人人 | 日韩色av色资源 | 激情婷婷综合网 | 国产精品99久久久久久武松影视 | 9999精品视频 | 国产一区二区电影在线观看 | 激情久久久久久久久久久久久久久久 | 一区二区影院 | 欧美福利在线播放 | 久草视频看看 | 日韩精品视频免费专区在线播放 | 久久综合免费视频影院 | 亚洲三级性片 | 激情五月婷婷综合 | 日韩有码网站 | 国产成人av片 | 久久视频国产精品免费视频在线 | 久久天天躁狠狠躁亚洲综合公司 | 日韩精品免费一线在线观看 | 在线中文字幕一区二区 | 色婷婷亚洲精品 | 在线观看免费一区 | 久久综合狠狠综合久久激情 | 999久久久久久 | www.成人久久 | 国产精品中文久久久久久久 | 天天激情综合 | 97精品超碰一区二区三区 | 99久久精品无免国产免费 | 狠狠干网站 | 国产亚洲成av片在线观看 | 伊人色综合久久天天网 | 久久伦理视频 | 98超碰在线观看 | 91精品视频导航 | 色午夜影院 | 日韩精品一区二区不卡 | 毛片1000部免费看 | 成年人国产视频 | 日韩av看片 | 色播亚洲婷婷 | av免费试看 | 久久婷综合 | 中文字幕乱码亚洲精品一区 | 亚洲丁香久久久 | 亚洲国产三级在线观看 | 人人超碰人人 | 国产色资源 | 8x成人在线 | 亚洲免费不卡 | 91大神一区二区三区 | 久影院 | 天天干干 | 国产日韩视频在线播放 | 99久久婷婷 | a午夜电影 | 欧美成人精品在线 | 久久精品99国产精品日本 | 国产一区在线视频 | 日韩性色 | 久草观看视频 | 色天天| 日韩精品在线观看av | 久久97视频| 精品麻豆 | 色wwwww| 免费看成人片 | 日韩免费视频一区二区 | 日韩在线观看精品 | 天天综合视频在线观看 | 国产一区二区在线观看免费 | 一级免费看视频 | 91av视频导航 | 午夜视频不卡 | 国产九九热视频 | 国产一区二区播放 | 四虎海外影库www4hu | 久久亚洲影院 | 最近中文字幕mv | 久久久这里有精品 | 99精品欧美一区二区三区黑人哦 | 精品国产久 | 欧美性网站 | 国产精品久久久久亚洲影视 | 国产精品一区二区在线 | 国产精品正在播放 | 麻豆精品视频在线观看免费 | 狠狠狠干狠狠 | 国产美腿白丝袜足在线av | 天天综合五月天 | 欧美精品第一 | 国产精品视频不卡 | 又爽又黄在线观看 | 亚洲欧美视频在线播放 | 日本精品一区二区在线观看 | 亚洲天堂网视频 | 中文字幕在线视频网站 | 国产精品九九久久久久久久 | 中文字幕影片免费在线观看 | 在线视频观看91 | 美女视频黄免费 | 97香蕉久久超级碰碰高清版 | 五月天婷亚洲天综合网精品偷 | 成人h视频在线 | 欧美性猛片, | 国产精品免费大片视频 | 国产一区二区综合 | 欧美日在线 | 97免费中文视频在线观看 | 国产日本三级 | 日韩二区在线 | 成人小视频在线观看免费 | 欧亚日韩精品一区二区在线 | va视频在线观看 | 成人av电影网址 | 国产精品成人品 | 亚洲精品国产精品乱码在线观看 | 欧美人人爱 | 又黄又刺激的网站 | 亚洲欧美乱综合图片区小说区 | 最新黄色av网址 | 尤物97国产精品久久精品国产 | 中文字幕一区二区三区四区 | 国产中文字幕一区二区 | 国产黄色精品网站 | 99久视频| 亚州免费视频 | 日韩黄色免费看 | 亚洲成人免费在线 | 黄色小说免费在线观看 | 国产成人在线综合 | 黄色毛片在线观看 | 国产高清在线 | 中文字幕一区二区三区在线视频 | 狠狠色丁香久久综合网 | 久草热久草视频 | www.香蕉 | 又紧又大又爽精品一区二区 | 亚洲国产精品99久久久久久久久 | 99re久久资源最新地址 | 亚洲毛片在线观看. | 中文字幕三区 | 久久久精品亚洲 | 国产精品va最新国产精品视频 | 久久69精品 | 91九色蝌蚪国产 | 男女拍拍免费视频 | 亚洲精品啊啊啊 | avove黑丝| a级片网站 | 国产色爽| 国产精品原创 | 美女精品网站 | 久草视频在线资源 | 欧美在线视频精品 | 久久成电影 | 狠狠色噜噜狠狠狠狠 | 国产原厂视频在线观看 | 特级a毛片| 国产成人精品一区二 | 久久99精品国产麻豆婷婷 | 国产亚洲精品精品精品 | 美女精品久久久 | 蜜臀aⅴ国产精品久久久国产 | 天天天天天天天操 | 精品一区二区影视 | 国产精品人人做人人爽人人添 | 国产精品久久久777 成人手机在线视频 | 精品久久久一区二区 | 国产97在线观看 | 狠狠色噜噜狠狠 | 亚洲激情在线视频 | 中文字幕在线影院 | 日韩在线精品 | 国产精品毛片一区视频播 | 久久久久久久久久亚洲精品 | 国产亚洲视频在线观看 | 超碰免费公开 | 99热99re6国产在线播放 | 精品主播网红福利资源观看 | 超碰97在线资源 | 日韩特黄一级欧美毛片特黄 | 日韩激情第一页 | 四季av综合网站 | 97电院网手机版 | 国产伦精品一区二区三区无广告 | 国产尤物在线视频 | 成 人 黄 色 视频免费播放 | 91精品啪在线观看国产81旧版 | 91成人免费看片 | 亚洲成av | 怡红院av | 在线播放国产精品 | 97色噜噜| 色中射| 97香蕉久久国产在线观看 | 黄色av成人在线观看 | 欧美综合色在线图区 | 久久资源在线 | 中文字幕在线一区二区三区 | 狂野欧美激情性xxxx | 久久久久久久久久久福利 | 精品国产99国产精品 | 国产一二三在线视频 | 欧美日韩精品在线观看 | av电影免费在线看 | 亚洲第一久久久 | 久久99精品国产一区二区三区 | 中文一区二区三区在线观看 | 最近免费中文字幕大全高清10 | 午夜.dj高清免费观看视频 | 欧美日韩性视频在线 | 久久免费公开视频 | 国产中文自拍 | 8090yy亚洲精品久久 | 免费看黄的 | 丁香六月激情 | 五月亚洲 | 精品毛片一区二区免费看 | 欧美成人xxx| 亚洲网久久 | 涩涩色亚洲一区 | 黄色国产高清 | 亚洲天堂视频在线 | 亚洲美女视频在线观看 | 狠狠狠色丁香婷婷综合激情 | 黄色小说在线免费观看 | 国产在线精品视频 | 亚洲永久字幕 | 午夜成人免费影院 | 在线观看国产日韩欧美 | 91久久国产综合精品女同国语 | 99在线观看| 色资源在线观看 | 色噜噜日韩精品一区二区三区视频 | 日韩中文在线观看 | 欧美日韩不卡在线视频 | 日本在线观看一区二区 | 久久国产精品久久w女人spa | 色综合亚洲精品激情狠狠 | 欧美极品少妇xxxx | 怡红院成人在线 | 97成人在线免费视频 | 色吊丝在线永久观看最新版本 | 玖玖色在线观看 | 在线观看成人福利 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 干综合网 | 婷婷色狠狠 | 亚洲第一区精品 | 午夜av免费看 | 一区二区三区四区久久 | 亚洲精品高清在线 | 一区二区三区播放 | 国产1级视频 | 日本深夜福利视频 | 色网站黄 | 视频一区在线免费观看 | 青春草免费视频 | 国产一区在线不卡 | 永久免费的av电影 | 欧美九九九 | 亚洲精品乱码久久久久久高潮 | 嫩嫩影院理论片 | 一区二区视频欧美 | 在线欧美小视频 | 精品自拍av | 免费高清在线视频一区· | 久久一久久| 国产精品永久免费 | 在线播放日韩av | 精品中文字幕在线 | 国产精品99久久久久久有的能看 | 日韩精品视频第一页 | 国产一级片一区二区三区 | 伊人夜夜| 免费黄色av. | 91麻豆精品一区二区三区 | 人人插人人 | 在线小视频国产 | 天天操夜夜做 | 久草视频视频在线播放 | 97国产大学生情侣白嫩酒店 | 午夜视频导航 | 久久久久久蜜桃一区二区 | 九九热在线观看视频 | 成人av电影在线播放 | 午夜精品久久久久久久久久久久 | 久日精品 | 久久精品一区二区三区视频 | 欧美视频日韩 | 激情综合五月婷婷 | av网站免费线看精品 | 日本中文字幕网站 | 日韩中文字幕亚洲一区二区va在线 | 四虎成人精品永久免费av | 精品免费久久 | 欧美一二区在线 | 亚洲精品乱码久久久久久蜜桃91 | 精品自拍av| 91麻豆文化传媒在线观看 | 97av视频 | 久久精品电影 | 有码中文字幕在线观看 | 久久国产精品免费一区二区三区 | 天天天天综合 | 国产在线观看国语版免费 | 欧美日韩免费在线观看视频 | 中文字幕在线色 | 色网站黄 | 亚洲激情久久 | 一本色道久久综合亚洲二区三区 | 久久久国产精品电影 | 在线免费av网站 | 五月香视频在线观看 | 在线观看福利网站 | 国产在线观看你懂得 | 伊人久久五月天 | 国产亚洲视频在线 | 亚洲日本欧美在线 | 日韩 在线观看 | 精品久久一二三区 | 亚洲欧美国产精品va在线观看 | 久久中文精品视频 | 免费看黄在线看 | 狠狠操精品 | 色永久免费视频 | 久久精品影片 | 亚洲精品成人av在线 | 免费观看性生活大片3 | 天天色天天操综合 | 成人在线视频免费看 | 麻豆国产在线播放 | 久久久久久久久艹 | 久九视频| 天天天操天天天干 | 狠狠色丁香久久婷婷综合五月 | 黄色成人毛片 | 免费欧美精品 | 超碰97成人 | 亚洲在线视频网站 | 9ⅰ精品久久久久久久久中文字幕 | 成av在线| 欧美成人黄色 | 亚洲欧洲久久久 | 奇米导航| 婷婷丁香七月 | www.com黄 | 欧美精品一区二区免费 | www.成人sex | 免费看一级 | 黄色1级大片| 久草网首页 | 国产一级精品在线观看 | 91精品在线播放 | 人人插人人搞 | 国产中文字幕亚洲 | 91免费的视频在线播放 | 国产精品综合在线观看 | 最新国产精品久久精品 | 色悠悠久久综合 | 久久国产福利 | 中文字幕av在线免费 | 中文字幕第一页在线播放 | 中文字幕在线观看完整 | 精品中文字幕在线播放 | 国产伦理久久精品久久久久_ | 免费福利小视频 | 色综合亚洲精品激情狠狠 | 久久久激情网 | 久久任你操 | 亚洲美女精品视频 | 91精品一区国产高清在线gif | 4hu视频 | 在线国产日韩 | 日韩国产在线观看 | 91在线在线观看 | 日本中文字幕网站 | 麻豆极品 | 国产最顶级的黄色片在线免费观看 | 国产亚洲欧美精品久久久久久 | 日韩理论片中文字幕 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 日韩精品aaa| 菠萝菠萝蜜在线播放 | 日韩欧美中文 | 成人性生交大片免费看中文网站 | 2021国产在线| 亚洲视频www | 欧美成人黄色片 | 天堂av在线免费 | 精品久久久亚洲 | 丁香五香天综合情 | 91一区一区三区 | 中文字幕免费观看视频 | 一区在线观看视频 | 97在线资源| 娇妻呻吟一区二区三区 | 99视频99| 97超碰在线久草超碰在线观看 | 国产成人久久精品一区二区三区 | 国产精品 日韩 | 91精品国产乱码在线观看 | 91人人干 | 国产成人精品av | 97精品电影院 | 六月丁香婷婷久久 | 最近免费中文字幕 | 99这里都是精品 | 中文字幕在线观看资源 | 免费麻豆网站 | 国产美女网| 一区二区三区在线观看中文字幕 | 91久久丝袜国产露脸动漫 | 三级黄色在线观看 | 在线观看视频色 | 国产露脸91国语对白 | 人人爽人人爽人人爽学生一级 | 激情六月婷婷久久 | 欧美性生爱 | 99人久久精品视频最新地址 | 日韩精品一区二区三区水蜜桃 | 欧美aa级| 国产成人精品一区二区在线观看 | 色婷婷骚婷婷 | 91视频三区 | av在线免费在线 | 又黄又爽又湿又无遮挡的在线视频 | av视屏在线播放 | 亚洲国产精品成人va在线观看 | 午夜精品久久久久久久久久久久久久 | 免费在线精品视频 | 国产婷婷精品av在线 | 黄色片网站 | 一二三四精品 | 综合色狠狠 | 91免费日韩 | 美女网站一区 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 日本乱视频 | 久艹视频在线免费观看 | 中文日韩在线视频 | 69国产盗摄一区二区三区五区 | 美女福利视频网 | 超碰人人91 | 亚洲人成人天堂h久久 | 精品国产视频在线观看 | 成人免费视频视频在线观看 免费 | 国产在线超碰 | 99热这里精品 | 天天干天天射天天爽 | 亚洲精区二区三区四区麻豆 | 日韩精品免费在线观看 | 色资源网免费观看视频 | 色com网 | 国产专区精品 | 日日干天天爽 | 亚洲一区久久久 | 三级免费黄 | 五月婷婷激情综合 | 少妇bbbb揉bbbb日本 | 国产精品日韩精品 | 亚洲黄色片在线 | 精品视频在线观看 | 国产91精品看黄网站在线观看动漫 | 国产91精品久久久久 | 五月天婷婷在线视频 | 粉嫩高清一区二区三区 | 99r在线| 麻豆高清免费国产一区 | 青青河边草免费观看完整版高清 | 国产精品欧美激情在线观看 | 久久这里只有精品1 | 久久一区二区三区日韩 | 四虎在线影视 | 激情视频二区 | 狠狠插天天干 | 天天天干夜夜夜操 | 综合色综合色 | 中文字幕第一页在线 | 国产黑丝一区二区三区 | 国产精品成人在线 | 中文字幕在线免费观看视频 | 9999在线| 91人人爽人人爽人人精88v | 欧美激情综合色 | 亚洲va男人天堂 | 一区二区精品 | 免费a级黄色毛片 | www.久久色 | 久草在线最新免费 | 9999精品免费视频 | 日日日视频 | 欧美精品亚洲精品日韩精品 | 啪嗒啪嗒免费观看完整版 | 一区免费视频 | 欧美日韩不卡一区二区 | 在线影视 一区 二区 三区 | 欧美国产在线看 | 在线免费观看国产精品 | 最近中文字幕在线播放 | 中文字幕xxxx| 欧美一级电影在线观看 | 中文资源在线播放 | 亚洲成人第一区 | 天天射色综合 | 亚洲视频一区二区三区在线观看 | 日韩av网站在线播放 | 国产视频中文字幕 | 天天干天天操天天操 | 欧美一区日韩精品 | 国产精品18久久久久白浆 | 91久久精品一区二区二区 | 国产精品视频永久免费播放 | 91成品人影院 | 国产日韩中文在线 | 99久久夜色精品国产亚洲96 | 521色香蕉网站在线观看 | 中文字幕一区二区三区四区久久 | 亚洲精品国产自产拍在线观看 | 精品亚洲免费视频 | 欧美一区中文字幕 | 18性欧美xxxⅹ性满足 | 中文字幕在线视频网站 | 久久久国产精品久久久 | 天天射天天射天天 | 亚洲国产精彩中文乱码av | 97视频在线免费观看 | 久草免费在线观看 | 在线精品视频免费观看 | 欧美日韩在线网站 | 激情网在线视频 | 不卡的av | 国产精品av在线免费观看 | 特级片免费看 | 超碰在线最新网址 | 国产精品久久久久久影院 | 亚洲精品免费在线 | 成人一区二区三区中文字幕 | 手机在线观看国产精品 | 久久亚洲免费 | 日韩乱色精品一区二区 | 日韩午夜视频在线观看 | 日韩精品中文字幕在线不卡尤物 | 国产高清在线免费 | 国产成人黄色av | 欧美一级网站 | 免费亚洲视频 | 久久免费福利 | 亚洲综合视频在线观看 | 99久久精品一区二区成人 | 91精品国自产在线观看 | 探花视频免费在线观看 | 国产又粗又硬又爽的视频 | 日韩精品在线免费播放 | 色婷婷五 | 美女一级毛片视频 | 亚洲精品综合欧美二区变态 | 国产一区 在线播放 | 久草精品在线观看 | 欧美小视频在线观看 | 蜜桃视频在线观看一区 | 香蕉网址 | 99视频精品全国免费 | 国产中文字幕三区 | 在线99视频 | 天天色天天艹 | 超碰公开97 | 黄色软件在线观看免费 | 日韩中文字幕在线不卡 | av在线亚洲天堂 | 激情丁香| 麻豆视频免费入口 | 国产麻豆精品一区 | 国产精品成人av电影 | 一区二区三区四区五区六区 | 97超碰在线资源 | 亚洲精品自在在线观看 | 国产成人精品电影久久久 | 久久久久久久影院 | 久久免费观看视频 | 国产区免费在线 | 99久久精品午夜一区二区小说 | 精品国产一区二区三区久久久蜜臀 | 日韩欧美视频在线播放 | 日韩成人精品 | av免费观看高清 | 色综合久久久久久久 | 国产亚洲无| 成人免费在线播放 | 欧美一级免费高清 | 免费的国产精品 | 人人超碰免费 | 免费精品视频在线观看 | 中文字幕在线观看免费高清完整版 | 色五月成人 | 国产精品久久久久婷婷二区次 | 国内成人av | 成人av资源| 午夜国产在线 | 日韩精品欧美专区 | 国产精品破处视频 | 国产精品视频不卡 | 在线a人片免费观看视频 | 日韩中文字幕免费视频 | 在线播放国产一区二区三区 | 久久人人爽人人片 | 天天干天天干天天干 | 97国产超碰在线 | 尤物九九久久国产精品的分类 | 精品久久国产精品 | 在线观看黄网站 | 色吊丝在线永久观看最新版本 | 精品一区 精品二区 | 日韩精品中文字幕在线观看 | 成人一级黄色片 | 亚洲 欧美日韩 国产 中文 | 日批网站在线观看 | 色综合久久中文字幕综合网 | 黄www在线观看| 国产午夜精品一区二区三区嫩草 | 国产精品99久久久久 | 国产一二三四在线视频 | 国产成人精品一区二区在线 | 最近免费中文字幕mv在线视频3 | av观看在线观看 | 亚洲黄色片一级 | 五月激情在线 | 亚州av网站大全 | 日本久草电影 | 97精品国产97久久久久久 | 青青草在久久免费久久免费 | 色婷婷六月天 | 99久久精品费精品 | 久久精品com | 五月天婷婷在线播放 | 在线免费观看黄色大片 |