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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

MyBatis(一)——基本架构、CURD、ResultMap、日志、分页

發(fā)布時間:2025/3/13 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis(一)——基本架构、CURD、ResultMap、日志、分页 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 1. 簡介
  • 2. 程序的基本架構(gòu)
  • 3. CURD 增刪改查
  • 4. 配置文件
  • 5. ResultMap結(jié)果集映射
  • 6. 日志
  • 7. 分頁

1. 簡介

MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集。
MyBatis 本是apache的一個開源項目iBatis,需要在 Github 上下載。

2. 程序的基本架構(gòu)

(1)在MySQL中新建一個數(shù)據(jù)庫

(2)通過Maven導(dǎo)Jar包

<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zz</groupId><artifactId>MyBatis</artifactId><version>1.0-SNAPSHOT</version><!--導(dǎo)入依賴--><dependencies><!-- mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version></dependency><!--操作數(shù)據(jù)庫--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><!--lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency></dependencies></project>

(3)編寫配置文件,配置數(shù)據(jù)庫連接
在main目錄的resources目錄下創(chuàng)建mybatis-config.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><!--環(huán)境--><!--默認開發(fā)環(huán)境,test為測試環(huán)境--><environments default="development"> <environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis? useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments> </configuration>

(4)編寫一個工具類操作數(shù)據(jù)庫
在main目錄的java目錄下創(chuàng)建一個工具包util,在包下創(chuàng)建MyBatisUtils類

package com.zz.utils;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class MyBatisUtils {private static SqlSessionFactory sqlSessionFactory;static {try {String resource = "mybatis-config.xml"; //獲取資源InputStream inputStream = Resources.getResourceAsStream(resource); //把資源變成一個流// 工廠模式sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}// 從SqlSessionFactory中獲取sqlSession的連接public static SqlSession getSession(){return sqlSessionFactory.openSession();} }

(5)編寫一個實體類
在mian目錄的java目錄下創(chuàng)建一個實體包pojo,在包下創(chuàng)建User類
由于在前面的依賴中導(dǎo)入了Lombok包,就方便了實體類的編寫

package com.zz.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;@Data @AllArgsConstructor @NoArgsConstructor public class User {private int id;private String name;private String pwd; }

(6)編寫一個操作用戶的接口類
在mian目錄的java目錄下創(chuàng)建一個接口包mapper,在包下創(chuàng)建userMapper類

package com.zz.mapper;import com.zz.pojo.User;import java.util.List;// 操作用戶的接口類 public interface UserMapper {List<User> getUserList(); }

(7)編寫一個實現(xiàn)接口類的配置文件
在main目錄的resources目錄下跟java目錄下一樣,創(chuàng)建一個接口包mapper,在包下創(chuàng)建UserMapper.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"><!-- 綁定接口類--> <mapper namespace="com.zz.mapper.UserMapper"><!--id對應(yīng)接口類中的方法,返回的是一個具體的User,要寫包名--> <!--從user表中查詢--> <select id="getUserList" resultType="com.zz.pojo.User">select * from user;</select></mapper>

原來我們需要編寫接口實現(xiàn)類,使用了Mybatis之后,我們可以專注編寫SQL,使用配置文件代替編寫接口的實現(xiàn)類。

  • 好處,程序運行起來之后,我依舊可以動態(tài)修改代碼,解耦。
  • 注意點:①namespace 綁定對應(yīng)的接口;②具體操作(CRUD)id對應(yīng)接口中的方法。

(8)把這個配置文件UserMapper.xml 注冊到mybatis-config.xml配置文件中

在configuration標(biāo)簽中添加如下代碼:

<mappers><mapper resource="com/zz/mapper/UserMapper.xml"/></mappers>

(9)測試運行
在test目錄下的java目錄下創(chuàng)建一個測試類test

import com.zz.mapper.UserMapper; import com.zz.pojo.User; import com.zz.utils.MyBatisUtils; import org.apache.ibatis.session.SqlSession;import java.util.List;public class Test {public static void main(String[] args) {// 1、 獲取SqlSession, 執(zhí)行sql使用的SqlSession session = MyBatisUtils.getSession();// 2、通過 session.getMapper(Class ) 獲得接口UserMapper mapper = session.getMapper(UserMapper.class);//3.使用接口中的方法,獲得用戶列表List<User> userList = mapper.getUserList();for (User user : userList) {System.out.println(user);}} }

運行結(jié)果如下:

整個項目的目錄如下:

3. CURD 增刪改查

  • 固定操作
    • 編寫接口
    • 編寫接口對應(yīng)的SQL配置文件,一定要確保配置文件和SQL的正確性
    • 編寫測試類測試

只需要編寫 UserMapper.java、 UserMapper.xml、Test.java文件

(1)通過id 查詢用戶 User selectById(int id);

在xml 中獲取 xx id的寫法:id=#{xx}

UserMapper.java文件:

package com.zz.mapper; import com.zz.pojo.User; import java.util.List;// 操作用戶的接口類 public interface UserMapper {//List<User> getUserList();User selectById(int id); }

UserMapper.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"><!-- 綁定接口類--> <mapper namespace="com.zz.mapper.UserMapper"><!--id對應(yīng)接口類中的方法,返回的是一個具體的User,要寫包名--> <!--從user表中查詢--><select id="getUserList" resultType="com.zz.pojo.User">select * from user;</select><select id="selectById" resultType="com.zz.pojo.User">select * from user where id=#{1}</select></mapper>

Test.java文件:

import com.zz.mapper.UserMapper; import com.zz.pojo.User; import com.zz.utils.MyBatisUtils; import org.apache.ibatis.session.SqlSession;import java.util.List;public class Test {public static void main(String[] args) {// 1、 獲取SqlSession, 執(zhí)行sql使用的SqlSession session = MyBatisUtils.getSession();// 2、通過 session.getMapper(Class ) 獲得接口UserMapper mapper = session.getMapper(UserMapper.class);User user = mapper.selectById(1);System.out.println(user);} }

運行結(jié)果:

(2)通過用戶名和密碼查詢用戶 User selectByUsernamePwd(@Param("username") String username, @Param("pwd")String pwd);
(其余代碼與(1)相同,以下雷同)
UserMapper.java文件:

// 多個參數(shù)如何操作,必須要增加注解 @ParamUser selectByUsernamePwd(@Param("username") String username, @Param("pwd")String pwd);

UserMapper.xml文件:

<select id="selectByUsernamePwd" resultType="com.zz.pojo.User">select * from user where name = #{username} and pwd = #{pwd}</select>

Test.java文件:

User user = mapper.selectByUsernamePwd("小明","123456");System.out.println(user);

運行結(jié)果:

(3)新增一個用戶 int addUser(User user);
UserMapper.java文件:

// 新增一個用戶 , 對象的情況下,直接可以拿到對象的屬性int addUser(User user);

UserMapper.xml文件:

<insert id="addUser" parameterType="com.zz.pojo.User">insert into `user`(`id`,`name`,`pwd`) values (#{id},#{name},#{pwd});</insert>

Test.java文件:

int res = mapper.addUser(new User(4,"小亮","123456"));session.commit();//提交事務(wù)if(res>0){System.out.println("增加用戶成功!");}

運行結(jié)果:


(4)修改用戶信息 int updateUser(User user);
UserMapper.java文件:

// 修改用戶信息int updateUser(User user);

UserMapper.xml文件:

<update id="updateUser" parameterType="com.zz.pojo.User">update `user` set `name` = #{name},pwd = #{pwd} where id = #{id} ;</update>

Test.java文件:

int res = mapper.updateUser(new User(4,"小花","123456"));session.commit();//提交事務(wù)if(res>0){System.out.println("修改用戶成功!");}

運行結(jié)果:

(5)刪除一個用戶 int deleteUserByID(int id);
UserMapper.java文件:

// 刪除用戶int deleteUserById(int id);

UserMapper.xml文件:

<delete id="deleteUserById" parameterType="com.zz.pojo.User">delete from user where id = #{id} </delete>

Test.java文件:

int res = mapper.deleteUserById(4);session.commit();//提交事務(wù)if(res>0){System.out.println("刪除用戶成功!");}

運行結(jié)果:

注意點:

(1)多個參數(shù)一定要增加 @Param 注解

(2)增刪改一定要增加事務(wù)提交

(3)增刪改,標(biāo)簽一定要對應(yīng),參數(shù)類型必須要寫

(4)增刪改不用寫返回值,查詢,必須寫返回值,集合、泛型中的內(nèi)容(具體的對象)

4. 配置文件

MyBatis的核心配置文件是mybatis-config.xml,它的核心配置結(jié)構(gòu)如下:

元素的標(biāo)簽次序不能修改,必須按照上圖的結(jié)構(gòu)順序!

(1)配置mapppers映射器為掃描包
當(dāng)有多個配置文件UserMapper.xml 時不用一 一寫注冊到mybatis-config.xml配置文件中的代碼

<mappers><package name="com.zz.mapper"/> </mappers>

(2)配置db.properties 讓配置文件讀取
在resources目錄下創(chuàng)建一個db.properties 文件,代碼如下:

driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis? useUnicode=true&characterEncoding=utf8&useSSL=false username=root password=123456

mybatis-config.xml中的開發(fā)環(huán)境就可以簡化為以下寫法:

<environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment>

(3)配置類型的別名,簡化開發(fā)
在mybatis-config.xml中添加包的別名配置

<!--包的別名配置--><typeAliases><package name="com.zz.pojo"/></typeAliases>

所以在UserMapper.xml中就可以簡化包的寫法,直接寫User

<select id="getUserList" resultType="User">select * from user;</select>

5. ResultMap結(jié)果集映射

處理數(shù)據(jù)庫中的字段名和實體類中的屬性名不一致的問題
實體類:

public class User {private int id;private String name;private String password; }

數(shù)據(jù)庫:

一個是pwd,而另一個是password

在接口的配置文檔中xxMapper.xml 中,添加如下代碼:

<!-- 結(jié)果集映射resultMap,MyBatis推薦的 --><resultMap id="UserMap" type="User"><!-- 數(shù)據(jù)庫字段和實體類屬性的映射關(guān)系 --><id column="id" property="id"/><!-- 細節(jié)問題: 主鍵一般使用id標(biāo)簽,其與字段resultcolumn 對應(yīng)數(shù)據(jù)庫中的列名property 對應(yīng)實體類中的屬性名--><result column="name" property="name"/><result column="pwd" property="password"/></resultMap><select id="selectUserById" resultMap="UserMap">select id,name,pwd from user where id = #{id}</select>

運行結(jié)果:

添加了結(jié)果集映射后,密碼就能查詢得出來。

注意:如果屬性名和數(shù)據(jù)庫的列名一致 ,這個時候mybatis 會幫我們自動推斷!=>自動映射
如果屬性名和數(shù)據(jù)庫的列名,不一致 ,手動實現(xiàn)映射

6. 日志

MyBatis中默認的日志:

<settings><!--配置日志,就可以看到具體的SQL信息,從而找到出錯的原因!--><setting name="logImpl" value="STDOUT_LOGGING"/> </settings>

工作中我們用的更多的 log4j

使用Log4j 步驟
(1)導(dǎo)入包依賴

<!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>

(2)編寫log4j的配置文件

在resources目錄下創(chuàng)建log4j.properties配置文件,代碼如下:

### 設(shè)置### log4j.rootLogger = debug,stdout,D,E### 輸出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n### 輸出DEBUG 級別以上的日志到=E://logs/error.log ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = ./log/log.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 輸出ERROR 級別以上的日志到=E://logs/error.log ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File =./log/error.log log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout

(3)修改日志實現(xiàn)為 Log4j,注意大小寫問題即可

<settings><!--配置日志,就可以看到具體的SQL信息,從而找到出錯的原因!切換為Log4j 的之后,大小寫問題,全大寫--><setting name="logImpl" value="LOG4J"/> </settings>

(4)假設(shè)我們要使用Log4j 的類去打印日志

import com.zz.mapper.RMapper; import com.zz.pojo.User; import com.zz.utils.MyBatisUtils; import org.apache.ibatis.session.SqlSession; import org.apache.log4j.Logger;public class Test02{// 注意導(dǎo)入包的問題 org.apache.log4j.Loggerstatic Logger logger = Logger.getLogger(Test02.class);public static void main(String[] args) {SqlSession session = MyBatisUtils.getSession();RMapper mapper = session.getMapper(RMapper.class);System.out.println("1231321222222");// 普通的輸出// 通過log4j 可以將日志實現(xiàn)細粒度的控制;logger.error("1231321222222"); // 錯誤信息logger.info("1231321222222"); // 提示信息logger.debug("1231321222222");// 屬性名和字段不一致!User user = mapper.selectUserById(1);System.out.println(user);} }

7. 分頁

作用:提高服務(wù)器性能!按照一小部分一小部分的來處理我們的數(shù)據(jù)!

在SQL中使用limt來進行分頁

-- 語法 Select * from user limit startIndex,Pagesize

在Java中的分頁如下:

(1)接口RMapper中的編寫

package com.zz.mapper;import com.zz.pojo.User;import java.util.HashMap; import java.util.List;// 測試結(jié)果集映射問題 public interface RMapper {// 帶分頁的操作// 參數(shù)如果超過兩個,可以使用map來進行傳遞指// key valueList<User> selectUserByLimit(HashMap<String, Integer> map); }

(2)接口的配置文件RMapper.xml中的編寫

使用了結(jié)果集映射

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zz.mapper.RMapper"><!-- 非基本類型之外的數(shù)據(jù)類型,List,Map,需要顯示的定義 --><select id="selectUserByLimit" parameterType="map" resultMap="UserMap">select * from user limit #{startIndex},#{pageSize}</select><!-- 結(jié)果集映射resultMap,MyBatis推薦的 --><resultMap id="UserMap" type="User"><!-- 數(shù)據(jù)庫字段和實體類屬性的映射關(guān)系 --><id column="id" property="id"/><!-- 細節(jié)問題: 主鍵一般使用id標(biāo)簽,其與字段resultcolumn 對應(yīng)數(shù)據(jù)庫中的列名property 對應(yīng)實體類中的屬性名--><result column="name" property="name"/><result column="pwd" property="password"/></resultMap><select id="selectUserById" resultMap="UserMap">select id,name,pwd from user where id = #{id}</select></mapper>

(3)測試類中的編寫

import com.zz.mapper.RMapper; import com.zz.pojo.User; import com.zz.utils.MyBatisUtils; import org.apache.ibatis.session.SqlSession; import org.apache.log4j.Logger;import java.util.HashMap; import java.util.List;public class Test02{// 注意導(dǎo)入包的問題 org.apache.log4j.Loggerstatic Logger logger = Logger.getLogger(Test02.class);public static void main(String[] args) {SqlSession session = MyBatisUtils.getSession();RMapper mapper = session.getMapper(RMapper.class);int currentPage=1; //第幾頁int pageSize=2; //每頁顯示幾個HashMap<String, Integer> map = new HashMap<String, Integer>();map.put("startIndex",(currentPage-1)*pageSize);map.put("pageSize",pageSize);List<User> users = mapper.selectUserByLimit(map);for (User user : users) {System.out.println(user);}} }

(4)運行結(jié)果

總結(jié)

以上是生活随笔為你收集整理的MyBatis(一)——基本架构、CURD、ResultMap、日志、分页的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

久久精品影片 | 亚洲在线视频免费 | 日本精品视频在线播放 | 在线观看视频 | 国产麻豆精品久久一二三 | 国产免费黄视频在线观看 | 美女av免费| 久久99精品热在线观看 | 国产精品日韩欧美 | 亚洲精品自拍视频在线观看 | 成人av手机在线 | 成人午夜在线观看 | 夜夜视频资源 | 久久爱综合 | 字幕网在线观看 | 国产精品免费在线视频 | 91在线免费观看网站 | 亚洲最大免费成人网 | 久久视频网 | 国产亚洲视频中文字幕视频 | 综合网五月天 | 国产福利精品视频 | 精品一区二区三区久久久 | 激情一区二区三区欧美 | 美女国产精品 | 欧美另类一二三四区 | 91在线欧美| 国语麻豆 | 亚洲一区二区精品视频 | 欧美一区二区三区在线视频观看 | www.国产视频 | 四虎影视久久久 | 日本最大色倩网站www | 久久久久久久久久久综合 | 三级av免费观看 | 中文字幕亚洲欧美 | 手机在线看a| av国产在线观看 | 亚洲精品观看 | 特级西西444www大精品视频免费看 | 成人黄色短片 | 少妇bbbb搡bbbb桶 | 久久精久久精 | 黄色成人在线观看 | 国产精品久久久久久久久久久久午夜片 | av电影免费观看 | 国产精品 日韩精品 | 91免费看黄 | 精品一区二区三区香蕉蜜桃 | 日本xxxxav | 国产视| 91视频88av | 久久精品人人做人人综合老师 | 国产精品18久久久久久首页狼 | 亚洲国产精彩中文乱码av | 婷婷亚洲五月色综合 | 美女黄网久久 | 一本—道久久a久久精品蜜桃 | 国产高清在线免费观看 | 国内精品久久久久久久久久久 | 成人国产综合 | 99久久精品免费视频 | 日韩特级黄色片 | 亚洲精品www| 欧美一级久久 | 夜夜爽88888免费视频4848 | 91黄色小视频 | 国产亚洲婷婷免费 | 六月丁香激情网 | 久久99免费 | 日本在线中文在线 | 日日成人网 | 中文字幕中文字幕在线一区 | 精品视频久久久 | 久久天天操 | 一本一道久久a久久精品 | 国产视频网站在线观看 | 久艹视频在线免费观看 | 欧美尹人 | 日日干天天爽 | 亚洲一区尤物 | www.伊人网 | 国产精品五月天 | 一级片免费观看视频 | 九九交易行官网 | 丁香影院在线 | 国产99久久久欧美黑人 | 色综合天天爱 | 色诱亚洲精品久久久久久 | 国产中文视 | 一区二区丝袜 | 91在线区 | 色网站在线免费观看 | 亚洲无吗视频在线 | 色综合天天狠天天透天天伊人 | 91在线播| 国产一区二区在线观看免费 | 国内精品视频在线播放 | 色永久免费视频 | 天天操夜夜想 | 伊人五月综合 | 亚洲经典在线 | 色资源在线观看 | 国产福利91精品张津瑜 | 天天干夜夜想 | 99中文在线 | 欧美日韩一区二区三区不卡 | 99精品国产一区二区三区麻豆 | 欧美大片第1页 | 欧美日韩高清一区二区 | 91麻豆精品久久久久久 | 超碰97人人在线 | 99成人免费视频 | 一区二区三区日韩在线观看 | 日韩中文字幕免费电影 | 国产精品h在线观看 | 久久一区二区三区超碰国产精品 | 婷婷久久一区 | 国产视频九色蝌蚪 | 欧美日韩一区二区在线观看 | 精品一二三区视频 | a视频在线观看 | 五月激情久久久 | 成年人国产精品 | 久久夜色精品国产欧美乱极品 | 亚洲天堂网在线观看视频 | 天天天干 | 久久99精品久久久久婷婷 | 97在线精品国自产拍中文 | 99精品在线免费观看 | 91精品国产91久久久久久三级 | 久久久国产电影 | 午夜在线看片 | 九九九在线观看视频 | 天天射天天搞 | 天天拍天天色 | 一级免费看视频 | 蜜臀av.com | 黄色最新网址 | 久久伊人精品一区二区三区 | 国产视频 久久久 | 99热亚洲精品 | 视频在线观看一区 | 91精品免费在线 | 免费看的黄网站软件 | 一区二区视频在线播放 | 国产在线精品二区 | 婷婷综合久久 | 亚洲一区二区三区在线看 | 欧美大片mv免费 | 欧洲精品视频一区 | 国产一区精品在线观看 | 在线免费观看国产 | 国产视频精品久久 | 亚洲乱码国产乱码精品天美传媒 | 色婷婷视频在线 | 正在播放国产一区二区 | 日韩免费一区 | 欧美日韩高清一区二区三区 | 亚洲欧美日韩精品一区二区 | 午夜婷婷网| 精品国产欧美一区二区 | 精品亚洲视频在线观看 | 91自拍成人| 精品久久久久久亚洲综合网站 | 婷婷爱五月天 | 欧美片网站yy | 亚洲 欧洲 国产 精品 | 国产日韩欧美综合在线 | 日韩成人欧美 | 黄色视屏av | japanesexxxhd奶水 国产一区二区在线免费观看 | 国产亚洲人成网站在线观看 | 国产一级免费播放 | 免费色视频网址 | 国产午夜三级一区二区三 | 亚洲欧洲一区二区在线观看 | 麻豆国产精品va在线观看不卡 | 国产精品久久久久久久久久妇女 | 色丁香综合| 91视频91蝌蚪| 亚洲激情视频在线观看 | 成人毛片一区 | 国产黄色精品 | 日韩欧美在线高清 | 一区三区视频 | 在线成人av| 国产字幕av | 黄色大片视频网站 | 久久视频二区 | 久久黄网站 | 麻豆91网站 | 亚洲精品高清视频 | 亚洲国产网址 | 久久视频免费在线观看 | 黄色a大片 | 人人爱人人爽 | 天天爽夜夜爽人人爽一区二区 | 97手机电影网 | 国产视频黄 | 久久免费看视频 | 天天干婷婷 | 中文字幕在线观看一区 | 欧美日韩高清 | 91免费高清 | 国产精品自拍av | 激情av网 | 成人av在线看 | 久久久在线视频 | 顶级bbw搡bbbb搡bbbb | 国产精品不卡一区 | 狠狠狠色丁香综合久久天下网 | 亚洲黑丝少妇 | 亚洲伦理中文字幕 | 91探花国产综合在线精品 | 91在线最新 | 精品成人久久 | 国产在线999| 精品99免费 | 欧美人zozo| 亚洲国产一区二区精品专区 | 国产91九色视频 | 国产精品一区二区无线 | 丁香久久婷婷 | 在线观看视频三级 | 亚洲天堂香蕉 | 一区二区三区在线观看免费 | 久久久999免费视频 日韩网站在线 | 国产一区二区三区免费在线 | 国产成人黄色在线 | 99久久精品国产一区二区三区 | 国产一区二区三区高清播放 | 亚洲专区欧美专区 | 最近中文字幕视频网 | 69xxxx欧美| 看毛片网站 | 亚洲激情电影在线 | 91av九色| 天天做夜夜做 | 一区二区av | 一区二区三区三区在线 | 九九影视理伦片 | 婷婷日韩| 麻豆一精品传二传媒短视频 | 18久久久 | 久久国产精品小视频 | 超碰在线天天 | 日韩精品欧美视频 | 国产伦精品一区二区三区在线 | 日本黄网站 | 五月天色中色 | 国产v亚洲v| 免费一级片观看 | 亚洲精品免费在线观看视频 | 国产99区| 不卡的av电影 | 午夜精品久久 | 国产日韩视频在线 | 国内久久久久久 | 欧美一进一出抽搐大尺度视频 | 综合久久五月天 | 久久综合国产伦精品免费 | 久久五月婷婷丁香 | 欧美a视频在线观看 | 亚洲欧美视频网站 | 免费a级观看 | 麻豆91在线观看 | 国产精品高清一区二区三区 | 国产精品第三页 | 国产中文字幕免费 | 国产中文字幕在线观看 | 亚洲aⅴ乱码精品成人区 | 久草精品视频在线观看 | 亚洲精品国产精品乱码在线观看 | 97中文字幕 | 欧美精品免费在线观看 | 热久久99这里有精品 | 久久久久久久av | 中文字幕中文字幕中文字幕 | 最新日韩中文字幕 | 狠狠狠综合 | 91av视频在线播放 | 91欧美在线 | 久久99久久久久 | 在线观看aa | 久久久精品国产一区二区三区 | 亚洲 欧美 变态 国产 另类 | 免费黄色a网站 | 国产精品自产拍在线观看 | 九九久久久久久久久激情 | 粉嫩av一区二区三区入口 | 亚洲高清在线 | 97碰碰碰 | 一区二区理论片 | 国产一级精品在线观看 | 日本久久久亚洲精品 | www91在线| 成人黄色电影在线观看 | 人人爽人人舔 | 天天爽天天做 | 久久免费视频8 | aaa亚洲精品一二三区 | 午夜男人影院 | 人人草人 | 午夜婷婷在线播放 | 日韩在线观看中文 | 岛国大片免费视频 | 国产精品欧美久久久久三级 | 国产精品一区二区三区视频免费 | 日本高清中文字幕有码在线 | 国产黄网在线 | 五月激情姐姐 | 97超碰资源站 | 成人av手机在线 | av免费在线播放 | 免费在线a | 日韩精品久久一区二区三区 | 久久艹艹| 六月丁香激情综合 | 天天鲁一鲁摸一摸爽一爽 | 精品久久一区二区三区 | 国产精品系列在线观看 | 九九久久久久久久久激情 | 日韩欧美视频免费观看 | 美女视频黄的免费的 | 婷婷色在线播放 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 欧美日韩aa| 超级碰碰免费视频 | 一区二区三区四区五区在线 | 在线观看岛国 | 麻豆精品在线视频 | 四虎影视成人精品国库在线观看 | 网站在线观看你们懂的 | 婷婷色影院| 欧美美女一级片 | 日韩精品中字 | 亚洲欧美日本一区二区三区 | 成年人黄色免费看 | 婷婷免费视频 | 久久在现 | 久久亚洲福利 | 青青草国产在线 | av在线进入 | 99热9 | 在线免费高清 | 精品久久久成人 | 在线成人短视频 | 中文字幕不卡在线88 | 性色av香蕉一区二区 | 欧美91成人网 | 国产精品久久久久国产精品日日 | 色综合久久五月天 | 一区二区视频在线播放 | 一区二区三区免费在线观看视频 | 日韩中文字幕免费视频 | 久久久久久久av麻豆果冻 | 99久久99久久 | 伊人天天操 | 三级黄色在线观看 | 久久激情小说 | 日韩黄色免费看 | 天天摸天天舔天天操 | 在线国产欧美 | 亚洲片在线观看 | 久草精品国产 | 日韩理论电影在线 | 亚洲 综合 精品 | 久草免费福利在线观看 | 久久国产免| 九九99视频 | 天天操天天操天天爽 | 韩国在线视频一区 | 在线观看视频精品 | 精品999在线 | av不卡在线看| 狠狠躁夜夜a产精品视频 | 国产1级毛片 | sesese图片 | 成人资源网 | 欧美一区二区伦理片 | 97超碰福利久久精品 | 在线观看免费av网站 | 日韩免费精品 | 亚洲一一在线 | 免费观看91视频 | 久草网站在线 | 成人一区二区三区在线观看 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 97色婷婷成人综合在线观看 | 韩国av在线播放 | 国产精品一级视频 | 五月婷婷,六月丁香 | 久草在线视频首页 | 中文字幕一区二区在线观看 | 国产亚洲成av人片在线观看桃 | 久久五月网 | 国产一区在线免费 | 夜夜澡人模人人添人人看 | 中文乱码视频在线观看 | 日本aa在线 | 中文字幕最新精品 | 天天操天天添天天吹 | 日韩理论在线播放 | 美女啪啪图片 | 综合铜03| 毛片二区 | 久久精品免费电影 | 国产 日韩 在线 亚洲 字幕 中文 | 中文字幕在线观看第三页 | 久久久久国产成人精品亚洲午夜 | aav在线| 综合国产视频 | 激情婷婷av | 综合伊人久久 | 日韩三级在线 | 九九视频一区 | 亚洲最新在线 | 精品视频久久久 | 永久免费的av电影 | 91伊人影院 | 精品亚洲男同gayvideo网站 | 丝袜制服综合网 | 久久国产乱 | 日韩在线观看免费 | 亚洲 欧洲 国产 日本 综合 | 日韩在线免费高清视频 | 玖玖玖精品 | 免费碰碰 | 欧美日韩视频在线观看一区二区 | 国产福利资源 | 2023av| 色精品视频 | 伊人宗合| 日韩视频在线不卡 | 国产精品成人久久久久久久 | 久艹视频在线观看 | 日韩精品无 | av解说在线 | 最近中文字幕在线中文高清版 | 亚洲国产资源 | 麻豆久久久久久久 | 九九爱免费视频在线观看 | 91人人爽人人爽人人精88v | 国产一区免费观看 | 欧美精品久久久久久久久久久 | 国产尤物视频在线 | 亚洲精品国偷自产在线99热 | 国产精品久久久久国产精品日日 | 欧美色图东方 | 亚洲精品 在线视频 | 在线视频免费观看 | 日韩网站在线免费观看 | 日本久久综合视频 | 毛片一区二区 | 国产精品欧美日韩 | 国精产品永久999 | 国产在线黄色 | 玖玖视频国产 | 亚洲精品乱码久久久一二三 | 91视频91色 | 伊人久久在线观看 | av性在线| 国产精品久久久久久久久久久久冷 | 国产综合香蕉五月婷在线 | 超碰人人做 | 亚洲最大免费成人网 | 国产视频精品免费 | 色婷婷精品大在线视频 | 日日日爽爽爽 | 综合网欧美 | 欧美精品做受xxx性少妇 | 成年人免费观看国产 | 免费色网站 | 国产精品毛片久久久久久久久久99999999 | 久久久国产成人 | 狠狠躁日日躁夜夜躁av | 日韩精品久久一区二区三区 | 欧美成人黄色片 | 日韩欧美一级二级 | 国产精品永久免费观看 | 日本三级国产 | 成人黄色大片网站 | 夜夜天天干 | 久热av | 探花视频在线观看+在线播放 | 久久久美女 | 天天操天天色天天射 | 激情视频一区二区三区 | 午夜精品婷婷 | 国产精品久久久久久久久久了 | 天天干天天操天天做 | 欧美在线1 | 久久性生活片 | 亚洲美女精品区人人人人 | 在线看日韩 | 国产在线理论片 | 久久99亚洲精品久久 | 99久久日韩精品免费热麻豆美女 | 欧美日韩18 | 亚洲视频 一区 | 九九热免费精品视频 | 精品综合久久久 | 99精品免费久久久久久日本 | 一区二区精品国产 | 久草在线最新视频 | 日本在线观看一区二区三区 | 91热| 亚洲视频久久久久 | 国产一级片免费观看 | 美女视频久久 | 国产美女免费 | 久久久www成人免费精品 | 福利片视频区 | 永久免费精品视频网站 | 黄色免费视频在线观看 | 国产乱码精品一区二区蜜臀 | 婷婷色资源 | 精品影院一区二区久久久 | 国产一区在线免费观看视频 | 久久国产网 | 97人人爽人人 | 色婷婷久久一区二区 | 午夜视频在线观看一区二区三区 | 成人wwwxxx视频 | 人人插人人费 | 久久草视频 | 国产免费嫩草影院 | 国产美女视频一区 | 一本一道久久a久久精品 | 五月亚洲综合 | 午夜精品久久久久久久久久久久 | av大全在线 | 久久午夜网 | 97品白浆高清久久久久久 | 国产伦理久久精品久久久久_ | 蜜桃传媒一区二区 | 国产视频一区在线免费观看 | 色综合久久久久综合99 | 特级西西www44高清大胆图片 | 久久久综合九色合综国产精品 | 免费福利小视频 | 中文字幕高清有码 | 精品久久一级片 | 国产破处精品 | 一区二区三区免费在线观看视频 | 久久久精品成人 | 一级片黄色片网站 | 欧美爽爽爽| 成人在线观看你懂的 | 99色在线视频 | 99九九热只有国产精品 | 久久超碰在线 | 九九欧美 | 黄色小说视频在线 | 免费观看完整版无人区 | 狠狠狠狠狠狠狠干 | 欧美一级片免费在线观看 | www.看片网站 | 九色91在线视频 | 亚洲另类视频在线 | 国产精品理论片在线观看 | 国产91大片 | 国产一区视频在线播放 | 久久激情综合 | 丁香色综合 | 国产精品久久久久久久久久久杏吧 | 六月激情久久 | 国产精品成人久久 | 久久久精品 | 欧美日韩精品在线观看视频 | 美女久久99| 国产成人精品久久二区二区 | 午夜精品在线看 | 天天色天天射天天操 | 国产精品久久久久免费观看 | 日韩手机在线 | 亚洲精品视频www | 一级α片 | 美女视频免费精品 | 免费网站在线 | 日韩精品短视频 | 精品在线免费视频 | 午夜精品一区二区三区免费视频 | 在线成人一区二区 | 91精品国自产在线偷拍蜜桃 | 九九在线免费视频 | 国产高清在线精品 | 亚洲精品影视在线观看 | 国产亚洲精品久久久久久 | 国产专区免费 | 久久永久免费 | 国产高清视频在线播放 | 日日干天天爽 | 久久久久久久久久久福利 | 91高清视频免费 | 国产一区高清在线 | 激情欧美一区二区免费视频 | 国产专区在线播放 | 狠狠干婷婷色 | 国内外成人免费在线视频 | 日韩欧美一区二区三区视频 | 国产不卡一二三区 | 免费影视大全推荐 | 国产精品永久 | 国产精品区免费视频 | 日韩毛片在线播放 | 夜夜操网| 日日夜夜精品网站 | 婷婷网站天天婷婷网站 | 亚洲国产一二三 | 天天操天天添天天吹 | 色综合狠狠干 | 欧美亚洲成人xxx | 久久五月天综合 | 欧美日韩国产一区二区三区在线观看 | 91成年人视频 | 久久久久久久久久久久影院 | 麻花豆传媒mv在线观看网站 | 欧美永久视频 | 日本在线观看视频一区 | 国产日韩精品视频 | 亚洲国产一区在线观看 | 免费成人黄色av | 丁香花中文在线免费观看 | 日韩久久影院 | 国产在线资源 | 天天操,夜夜操 | 国产精品一区二区三区在线播放 | 韩国av三级 | 99精品一级欧美片免费播放 | 久久99精品热在线观看 | 午夜久久电影网 | 免费午夜视频在线观看 | 成人久久网 | 黄色字幕网 | 日韩大片在线免费观看 | 精品视频免费久久久看 | 狠狠色丁香婷婷综合最新地址 | 在线播放日韩av | 国产精品永久免费在线 | 91午夜精品 | 中文字幕乱码亚洲精品一区 | 99在线视频观看 | 四虎影视成人精品国库在线观看 | 91传媒视频在线观看 | 国产99久久精品一区二区永久免费 | www激情网| 国产丝袜制服在线 | a黄色片 | 综合五月| 人人爽人人香蕉 | 一区电影| 久久久久久久国产精品影院 | 婷婷网五月天 | 91视频在线免费观看 | 久久999久久 | 五月婷婷影视 | 91精品国产91久久久久福利 | 婷婷久久国产 | 黄色毛片视频 | 91精品国产成人 | 久久免费国产精品1 | 欧洲高潮三级做爰 | 波多野结衣日韩 | 亚洲一二三在线 | 久久这里只有精品1 | 香蕉在线观看视频 | 天天干天天射天天操 | 久久一视频 | 精品久久国产精品 | 免费a级观看 | 国产在线成人 | 97免费视频在线播放 | 国产打女人屁股调教97 | 午夜国产在线观看 | 亚洲 中文字幕av | 色综合天天色综合 | av中文字幕免费在线观看 | 亚洲爱爱视频 | 五月在线视频 | 久久久久久久久久电影 | 日韩视频一区二区 | 91亚洲精品久久久 | 91麻豆传媒 | 久久九九精品 | 中文字幕一区二区三区精华液 | www国产一区 | 久久九九影院 | 激情久久久 | 国产午夜剧场 | 久久精品欧美一区二区三区麻豆 | 伊人五月天.com | 91视频免费视频 | 精品视频久久久久久 | 成人va在线观看 | 国产精品99久久久久久人免费 | 欧洲不卡av | 久久精品成人欧美大片古装 | av三级av | 亚洲丁香日韩 | 国产麻豆剧传媒免费观看 | 亚洲精品一区二区三区在线观看 | 91亚洲网| www黄色大片 | 精品1区2区| 国产成人一区二区三区免费看 | 成全免费观看视频 | 亚洲一一在线 | 色噜噜在线观看视频 | av免费在线播放 | 奇人奇案qvod| 麻豆av一区二区三区在线观看 | 韩国在线视频一区 | 国产精品扒开做爽爽的视频 | 就色干综合| 天天干天天拍天天操 | 成人一区不卡 | 最新中文字幕在线播放 | 欧美在线视频一区二区三区 | 午夜成人免费影院 | 欧洲精品码一区二区三区免费看 | 婷婷视频 | 午夜久久视频 | 中文在线免费观看 | 国产精品视频地址 | 一区二区伦理 | 91精品国自产在线观看欧美 | 区一区二区三在线观看 | 国产精品黄色av | 91成人国产 | 九九热免费视频在线观看 | 国内少妇自拍视频一区 | 免费一级特黄录像 | 欧美福利在线播放 | 欧美激情片在线观看 | 久久国产一区二区三区 | 激情婷婷综合网 | 久久精品三级 | 国产亚洲精品久久久久秋 | 欧美日韩免费观看一区二区三区 | 国产精品久久久久婷婷 | 国产精品久久久久av福利动漫 | 黄色a三级| www.久久色 | 色网站在线看 | 91人人爱 | 日韩有色 | 在线观看黄a | 国产视频在线一区二区 | 婷婷丁香激情五月 | 国产精品久久视频 | 69国产盗摄一区二区三区五区 | 久久理论视频 | 国产精品美女久久久久久免费 | 欧美三级高清 | 亚洲激情视频在线 | 国产在线视频在线观看 | 亚洲 综合 精品 | 久久久久一区二区三区 | 六月天综合网 | 黄色在线看网站 | 欧美日韩一区二区三区在线免费观看 | 国产精品视频999 | 欧美坐爱视频 | 国产免费观看久久 | 色香网| 国产裸体视频网站 | 99精品视频在线观看免费 | 欧美一级在线观看视频 | 色妞久久福利网 | 天天综合操 | 精品电影一区 | 免费亚洲电影 | a一片一级| 在线国产日韩 | 欧美巨大荫蒂茸毛毛人妖 | 在线日韩中文 | 国产免费一区二区三区网站免费 | 亚洲乱码国产乱码精品天美传媒 | 97网在线观看 | 99久久精品午夜一区二区小说 | 国产丝袜美腿在线 | 国产精品一区二区三区99 | 亚州日韩中文字幕 | 精品亚洲一区二区 | 高清在线观看av | 九九导航| 天天天综合网 | 手机在线日韩视频 | 激情视频二区 | 91精品国产乱码久久 | 香蕉在线观看视频 | 欧美精品乱码99久久影院 | 国产精品国内免费一区二区三区 | 免费成人在线观看 | 成人av手机在线 | 久久夜色精品国产欧美乱 | 啪啪免费观看网站 | 日韩网站一区二区 | 精品久久久亚洲 | 日韩在线视 | 免费av试看 | 久久国产精品网站 | 天天草天天干天天 | 国产专区视频在线观看 | 国产一区二区三区在线免费观看 | 日韩网站在线看片你懂的 | 日韩在线色| 免费看三级 | 欧美aⅴ在线观看 | 黄a在线看 | 91亚洲精品国偷拍自产在线观看 | 国产成人精品一区二区 | 日韩 精品 一区 国产 麻豆 | 一区二区欧美日韩 | 奇米影视999 | 成人黄色小视频 | 久久久久成人精品亚洲国产 | 蜜桃av人人夜夜澡人人爽 | 日韩在线视频精品 | 人人爱人人射 | 香蕉在线视频播放网站 | 美女网站在线播放 | 在线 日韩 av| 欧美日韩精品在线免费观看 | 日本成人中文字幕在线观看 | 97精品国产97久久久久久春色 | 色综合在 | 国产成人高清在线 | 久久久久国产一区二区 | 波多野结衣一区三区 | 香蕉久久久久久久 | av一级久久 | 五月婷婷一区二区三区 | 国产96av| 日本黄色免费电影网站 | 激情婷婷在线观看 | 国产高清 不卡 | 黄色一区二区在线观看 | 欧美日韩国产一二三区 | 欧美视频日韩 | 日韩综合第一页 | 日韩午夜大片 | 欧美一性一交一乱 | 欧美日韩在线播放一区 | 超碰在线官网 | 久久久片 | 夜夜操综合网 | 美女亚洲精品 | 五月婷婷久草 | 91欧美视频网站 | 国产一线天在线观看 | 玖玖在线观看视频 | 福利视频一二区 | 国产无区一区二区三麻豆 | 黄色av影视 | 久久久精品欧美 | 国产精品成人一区二区三区 | 日韩av一区二区在线播放 | www四虎影院 | 中文字幕乱码在线播放 | 欧美日韩精品在线观看 | 亚洲成人一二三 | 五月婷婷播播 | 国产.精品.日韩.另类.中文.在线.播放 | 97精品国产| 色综合久久久久综合体桃花网 | www.伊人网| 91看片淫黄大片一级在线观看 | 色婷婷六月 | 亚洲一区视频在线播放 | 免费观看完整版无人区 | 久久久久观看 | 精品日韩在线一区 | 97电影在线 | 国产在线色 | av先锋影音少妇 | 日韩高清不卡在线 | 色综合人人| 精品国产理论片 | 国产精品午夜av | 女人18片毛片90分钟 | 97超碰伊人| 久久视频精品在线观看 | 中文字幕在线观看第三页 | 国产二区视频在线观看 | 992tv人人网tv亚洲精品 | 久久免费在线观看视频 | 日本黄色免费大片 | 2024国产精品视频 | 久久精品视频在线观看 | 玖玖999| 午夜精品福利影院 | 久久久久久久精 | 九九综合九九综合 | 天天操天天弄 | 草久在线播放 | 婷婷午夜天 | 激情婷婷在线 | 亚洲精品国产第一综合99久久 | 亚在线播放中文视频 | 黄色亚洲| 欧美成人一二区 | 欧美一区成人 | 人人插人人玩 | 免费在线色 | 婷婷丁香久久五月婷婷 | 日日碰狠狠添天天爽超碰97久久 | 亚洲精品国产精品99久久 | 五月天婷亚洲天综合网精品偷 | 91精品一区二区在线观看 | av一区二区三区在线观看 | 免费视频你懂得 | 视频 国产区 | 日韩黄色大片在线观看 | 91中文字幕在线 | 日韩精选在线观看 | 91精品啪在线观看国产81旧版 | 狠狠躁天天躁综合网 | 久久精品永久免费 | 日日躁夜夜躁aaaaxxxx | 成 人 黄 色 视频播放1 | 国产精品麻豆一区二区三区 | 激情六月婷婷久久 | 国产精品福利无圣光在线一区 | 国产精品高潮呻吟久久av无 | 精品视频专区 | 午夜美女网站 | av女优中文字幕在线观看 | 天天草综合网 | 一级性生活片 | av一本久道久久波多野结衣 | 在线免费黄色 | 久久伦理影院 | 欧美午夜精品久久久久久浪潮 | 日韩在线观看一区二区三区 | 91传媒激情理伦片 | 亚洲码国产日韩欧美高潮在线播放 | av免费在线网 | 亚洲精欧美一区二区精品 | 日本中文不卡 | 97电影在线观看 | 超碰97免费观看 | 色九九在线 | 91av社区| 全黄色一级片 | 丁香5月婷婷 | 亚洲国产视频在线 | av播放在线 | 五月婷婷av在线 | 在线免费性生活片 | 成年人黄色大全 | 黄色高清视频在线观看 | 久久精品国产久精国产 | 免费a级观看 | 亚州激情视频 | 日韩精品2区 | 久久婷婷国产色一区二区三区 | 精品福利网站 | 干狠狠| 日本黄色免费在线观看 | 国产成人av网 | 91一区二区三区在线观看 | 日韩欧美xxx | 五月婷婷一区二区三区 | 三级av网| 亚洲国产精品小视频 | 欧美日韩视频一区二区三区 | 日韩免费二区 | 国内精品久久久精品电影院 | 96久久| 高清视频一区 | 精产嫩模国品一二三区 | 天天鲁一鲁摸一摸爽一爽 | 在线亚洲成人 | 色97在线 | www狠狠操 | 久久成人精品视频 | 国产精品免费av | 91麻豆精品国产91久久久久久 | 99精品成人 | 成人av一区二区在线观看 | 久久字幕网 | 91桃色在线观看视频 | 色就色,综合激情 | 一区三区视频 | 久久精品中文字幕 | 日韩av在线小说 | 国产精品久久久久久久久久ktv | 97国产精品视频 | 日韩激情在线视频 | av色图天堂网| av7777777 | 国产精品专区一 | av大片免费在线观看 | 欧美一区二区日韩一区二区 | 波多野结衣电影一区二区 |