黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Apache POI操作批量導(dǎo)入MySQL數(shù)據(jù)庫(kù)

瀏覽:263日期:2023-03-07 14:40:29
目錄
  • 1、POI操作入門案例
    • 1.1、從Excel文件讀取數(shù)據(jù)1
    • 1.2、從Excel文件讀取數(shù)據(jù)2
    • 1.3、向Excel文件寫入數(shù)據(jù)
  • 2、使用POI批量導(dǎo)入數(shù)據(jù)到MySQL數(shù)據(jù)庫(kù)
    • 2.1、創(chuàng)建導(dǎo)入數(shù)據(jù)的Excel模板文件
    • 2.2、批量上傳文件的后端代碼編寫
  • 3、批量導(dǎo)入數(shù)據(jù)測(cè)試

    poi介紹:

    Apache POI是用Java編寫的免費(fèi)開源的跨平臺(tái)的Java API,Apache POI提供API給Java程序?qū)icrosoft Office格式檔案讀和寫的功能,其中使用最多的就是使用POI操作Excel文件。

    POI使用到的相關(guān)maven依賴坐標(biāo)如下:

    <dependency>  <groupId>org.apache.poi</groupId>  <artifactId>poi</artifactId>  <version>3.14</version></dependency><dependency>  <groupId>org.apache.poi</groupId>  <artifactId>poi-ooxml</artifactId>  <version>3.14</version></dependency>

    POI的相關(guān)操作結(jié)果

    HSSF - 提供讀寫Microsoft Excel XLS格式檔案的功能XSSF - 提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能HWPF - 提供讀寫Microsoft Word DOC格式檔案的功能HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能HDGF - 提供讀Microsoft Visio格式檔案的功能HPBF - 提供讀Microsoft Publisher格式檔案的功能HSMF - 提供讀Microsoft Outlook格式檔案的功能

    1、POI操作入門案例

    1.1、從Excel文件讀取數(shù)據(jù)1

    使用POI可以從一個(gè)已經(jīng)存在的Excel文件中讀取數(shù)據(jù)

    前提需要建立一個(gè)需要讀取的表格數(shù)據(jù)進(jìn)行讀取

    /** * 使用poi讀取表格數(shù)據(jù) * @throws Exception */@Testpublic void test1() throws Exception {    // 1、加載指定的文件進(jìn)行讀取    XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream("C:\\Users\\zhong\\Desktop\\poi.xlsx"));    // 2、讀取表格中的Sheet頁(yè),通過索引決定    XSSFSheet sheetAt = excel.getSheetAt(0);    // 3、讀取Sheet頁(yè)中的行數(shù)據(jù)    for (Row row : sheetAt) {// 4、讀取每一行數(shù)據(jù)的單元格數(shù)據(jù)(如果涉及到類型裝轉(zhuǎn)換的可能出現(xiàn)報(bào)錯(cuò)消息,后期通過代碼進(jìn)行判斷即可)for (Cell cell : row) {    System.out.print(cell+"   ");}System.out.println();    }    // 5、關(guān)閉讀取文件的流    excel.close();}

    輸出結(jié)果如下:

    姓名 省份 城市
    張三 廣東 高州
    李四 四川 成都

    POI操作Excel表格封裝了幾個(gè)核心對(duì)象:

    XSSFWorkbook:工作簿
    XSSFSheet:工作表
    Row:行
    Cell:?jiǎn)卧?/p>

    1.2、從Excel文件讀取數(shù)據(jù)2

    還有一種方式就是獲取工作表最后一個(gè)行號(hào),從而根據(jù)行號(hào)獲得行對(duì)象,通過行獲取最后一個(gè)單元格索引,從而根據(jù)單元格索引獲取每行的一個(gè)單元格對(duì)象,代碼如下:

    /** * 使用poi讀取文件的第二種方式 * @throws Exception */@Testpublic void test2() throws Exception {    // 1、加載指定的文件進(jìn)行讀取    XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream("C:\\Users\\zhong\\Desktop\\poi.xlsx"));    // 2、讀取表格中的Sheet頁(yè),通過索引決定    XSSFSheet sheetAt = excel.getSheetAt(0);    // 3、獲取當(dāng)前工作表中最后一個(gè)行號(hào),注意行號(hào)是從0開啟的    int lastRowNum = sheetAt.getLastRowNum();    // 4、遍歷獲取到的行號(hào)    for (int i = 0; i <= lastRowNum; i++) {// 5、根據(jù)行號(hào)獲取到每一行的數(shù)據(jù)XSSFRow row = sheetAt.getRow(i);// 6、獲取到當(dāng)前最后一個(gè)單元格索引short lastCellNum = row.getLastCellNum();// 7、遍歷當(dāng)前的單元格獲取到具體的數(shù)據(jù)for (int j = 0; j < lastCellNum; j++) {    // 獲取到單元格的對(duì)象    XSSFCell cell = row.getCell(j);    // 輸出獲取到的數(shù)據(jù)    System.out.print(cell + "   ");}System.out.println();    }    // 8、釋放資源    excel.close();}

    1.3、向Excel文件寫入數(shù)據(jù)

    使用POI可以在內(nèi)存中創(chuàng)建一個(gè)Excel文件并將數(shù)據(jù)寫入到這個(gè)文件,最后通過輸出流將內(nèi)存中的Excel文件下載到磁盤

    /** * poi寫出數(shù)據(jù)到磁盤 */@Testpublic void test3() throws Exception {    // 1、創(chuàng)建工作簿    XSSFWorkbook excel = new XSSFWorkbook();    // 2、創(chuàng)建工作簿中的表對(duì)象    XSSFSheet sheet = excel.createSheet("創(chuàng)建表");    // 3、創(chuàng)建第一行(表頭)    XSSFRow row1 = sheet.createRow(0);    // 4、在行中創(chuàng)建單元格數(shù)據(jù)    row1.createCell(0).setCellValue("姓名");    row1.createCell(1).setCellValue("省份");    row1.createCell(2).setCellValue("城市");    row1.createCell(3).setCellValue("年齡");    // 5、創(chuàng)建第二行    XSSFRow row2 = sheet.createRow(1);    // 6、創(chuàng)建第6行的數(shù)據(jù)    row2.createCell(0).setCellValue("張三");    row2.createCell(1).setCellValue("遼寧");    row2.createCell(2).setCellValue("上海");    row2.createCell(3).setCellValue("50");    // 7、創(chuàng)建一個(gè)字節(jié)輸出流,將數(shù)據(jù)保存到本地    FileOutputStream fileOutputStream = new FileOutputStream(new File("C:\\Users\\zhong\\Desktop\\aaa.xlsx"));    excel.write(fileOutputStream);    fileOutputStream.flush();    // 8、關(guān)閉輸出    excel.close();    System.out.println("數(shù)據(jù)導(dǎo)出成功");}

    2、使用POI批量導(dǎo)入數(shù)據(jù)到MySQL數(shù)據(jù)庫(kù)

    創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)的表t_ordersetting

    -- auto-generated definitioncreate table t_ordersetting(    id   int auto_incrementprimary key,    orderDate    date null comment "約預(yù)日期",    number       int  null comment "可預(yù)約人數(shù)",    reservations int  null comment "已預(yù)約人數(shù)")    charset = utf8;

    批量導(dǎo)入預(yù)約設(shè)置信息操作過程:

    1、點(diǎn)擊模板下載按鈕下載Excel模板文件

    2、將預(yù)約設(shè)置信息錄入到模板文件中

    3、點(diǎn)擊上傳文件按鈕將錄入完信息的模板文件上傳到服務(wù)器

    4、通過POI讀取上傳文件的數(shù)據(jù)并保存到數(shù)據(jù)庫(kù)

    創(chuàng)建對(duì)應(yīng)的實(shí)體類

    public class OrderSetting implements Serializable{    private Integer id ;    private Date orderDate;//預(yù)約設(shè)置日期    private int number;//可預(yù)約人數(shù)    private int reservations ;//已預(yù)約人數(shù)    public OrderSetting() {    }    public OrderSetting(Date orderDate, int number) {this.orderDate = orderDate;this.number = number;    }}

    2.1、創(chuàng)建導(dǎo)入數(shù)據(jù)的Excel模板文件

    目的是為了統(tǒng)一管理導(dǎo)入的數(shù)據(jù)格式

    修改頁(yè)面提供一個(gè)下載批量導(dǎo)入數(shù)據(jù)的模板按鈕

    //下載模板文件downloadTemplate(){    window.location.href="../../template/ordersetting_template.xlsx" rel="external nofollow" ;}

    文件上傳前端代碼實(shí)現(xiàn)

    <el-upload action="/ordersetting/upload.do"   name="excelFile"   :show-file-list="false"   :on-success="handleSuccess"   :before-upload="beforeUpload">    <el-button type="primary">上傳文件</el-button></el-upload>

    提交函數(shù)

    // 上傳之前進(jìn)行文件格式校驗(yàn)beforeUpload(file){    const isXLS = file.type === "application/vnd.ms-excel";    if(isXLS){return true;    }    const isXLSX = file.type === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";    if (isXLSX) {return true;    }    this.$message.error("上傳文件只能是xls或者xlsx格式!");    return false;},// 上傳成功提示handleSuccess(response, file) {    if(response.flag){this.$message({    message: response.message,    type: "success"});    }else{this.$message.error(response.message);    }    console.log(response, file, fileList);},

    2.2、批量上傳文件的后端代碼編寫

    關(guān)于上傳文件一般網(wǎng)上都會(huì)有很多的工具類可以下載使用,也就是別人將已經(jīng)封裝好的代碼拿出來分享給大家使用的

    package com.zcl.utils;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.springframework.web.multipart.MultipartFile;public class POIUtils {    private final static String xls = "xls";    private final static String xlsx = "xlsx";    private final static String DATE_FORMAT = "yyyy/MM/dd";    /**     * 讀入excel文件,解析后返回     * @param file     * @throws IOException     */    public static List<String[]> readExcel(MultipartFile file) throws IOException {//檢查文件checkFile(file);//獲得Workbook工作薄對(duì)象Workbook workbook = getWorkBook(file);//創(chuàng)建返回對(duì)象,把每行中的值作為一個(gè)數(shù)組,所有行作為一個(gè)集合返回List<String[]> list = new ArrayList<String[]>();if(workbook != null){    for(int sheetNum = 0;sheetNum < workbook.getNumberOfSheets();sheetNum++){//獲得當(dāng)前sheet工作表Sheet sheet = workbook.getSheetAt(sheetNum);if(sheet == null){    continue;}//獲得當(dāng)前sheet的開始行int firstRowNum  = sheet.getFirstRowNum();//獲得當(dāng)前sheet的結(jié)束行int lastRowNum = sheet.getLastRowNum();//循環(huán)除了第一行的所有行for(int rowNum = firstRowNum+1;rowNum <= lastRowNum;rowNum++){    //獲得當(dāng)前行    Row row = sheet.getRow(rowNum);    if(row == null){continue;    }    //獲得當(dāng)前行的開始列    int firstCellNum = row.getFirstCellNum();    //獲得當(dāng)前行的列數(shù)    int lastCellNum = row.getPhysicalNumberOfCells();    String[] cells = new String[row.getPhysicalNumberOfCells()];    //循環(huán)當(dāng)前行    for(int cellNum = firstCellNum; cellNum < lastCellNum;cellNum++){Cell cell = row.getCell(cellNum);cells[cellNum] = getCellValue(cell);    }    list.add(cells);}    }    workbook.close();}return list;    }    //校驗(yàn)文件是否合法    public static void checkFile(MultipartFile file) throws IOException{//判斷文件是否存在if(null == file){    throw new FileNotFoundException("文件不存在!");}//獲得文件名String fileName = file.getOriginalFilename();//判斷文件是否是excel文件if(!fileName.endsWith(xls) && !fileName.endsWith(xlsx)){    throw new IOException(fileName + "不是excel文件");}    }    public static Workbook getWorkBook(MultipartFile file) {//獲得文件名String fileName = file.getOriginalFilename();//創(chuàng)建Workbook工作薄對(duì)象,表示整個(gè)excelWorkbook workbook = null;try {    //獲取excel文件的io流    InputStream is = file.getInputStream();    //根據(jù)文件后綴名不同(xls和xlsx)獲得不同的Workbook實(shí)現(xiàn)類對(duì)象    if(fileName.endsWith(xls)){//2003workbook = new HSSFWorkbook(is);    }else if(fileName.endsWith(xlsx)){//2007workbook = new XSSFWorkbook(is);    }} catch (IOException e) {    e.printStackTrace();}return workbook;    }    public static String getCellValue(Cell cell){String cellValue = "";if(cell == null){    return cellValue;}//如果當(dāng)前單元格內(nèi)容為日期類型,需要特殊處理String dataFormatString = cell.getCellStyle().getDataFormatString();if(dataFormatString.equals("m/d/yy")){    cellValue = new SimpleDateFormat(DATE_FORMAT).format(cell.getDateCellValue());    return cellValue;}//把數(shù)字當(dāng)成String來讀,避免出現(xiàn)1讀成1.0的情況if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){    cell.setCellType(Cell.CELL_TYPE_STRING);}//判斷數(shù)據(jù)的類型switch (cell.getCellType()){    case Cell.CELL_TYPE_NUMERIC: //數(shù)字cellValue = String.valueOf(cell.getNumericCellValue());break;    case Cell.CELL_TYPE_STRING: //字符串cellValue = String.valueOf(cell.getStringCellValue());break;    case Cell.CELL_TYPE_BOOLEAN: //BooleancellValue = String.valueOf(cell.getBooleanCellValue());break;    case Cell.CELL_TYPE_FORMULA: //公式cellValue = String.valueOf(cell.getCellFormula());break;    case Cell.CELL_TYPE_BLANK: //空值cellValue = "";break;    case Cell.CELL_TYPE_ERROR: //故障cellValue = "非法字符";break;    default:cellValue = "未知類型";break;}return cellValue;    }}

    2.2.1、創(chuàng)建批量上傳控制器

    這里使用的dubbo遠(yuǎn)程調(diào)用了接口方法

    /** * 項(xiàng)目名稱:health_parent * 描述:預(yù)約管理控制器 * * @author zhong * @date 2022-06-18 14:50 */@RestController@RequestMapping("/ordersetting")public class OrderSettingController {    /**     * 遠(yuǎn)程調(diào)用預(yù)約管理的服務(wù)接口     */    @Reference    private OrderSettingService orderSettingService;    /**     * 文件上傳,實(shí)現(xiàn)預(yù)約管理的批量導(dǎo)入     * @param excelFile     * @return     */    @RequestMapping("/upload")    public Result upload(@RequestParam("excelFile") MultipartFile excelFile){try {    // 1、使用工具類解析上傳的數(shù)據(jù)    List<String[]> list = POIUtils.readExcel(excelFile);    // 將讀取的表格數(shù)據(jù)轉(zhuǎn)換為表格預(yù)約對(duì)象數(shù)據(jù)    List<OrderSetting> data = new ArrayList<>();    // 2、處理解析的數(shù)據(jù)    for (String[] strings : list) {// 獲取到導(dǎo)入數(shù)據(jù)行的第一個(gè)單元格(預(yù)約時(shí)間)String orderSate = strings[0];// 獲取到導(dǎo)入數(shù)據(jù)行的第二個(gè)單元格(預(yù)約姓名)String number = strings[1];// 將重新獲取到的數(shù)據(jù)添加到預(yù)約集合中OrderSetting orderSetting = new OrderSetting(new Date(orderSate), Integer.parseInt(number));data.add(orderSetting);    }    // 2、通過dubbo遠(yuǎn)程調(diào)用服務(wù)實(shí)現(xiàn)數(shù)據(jù)批量導(dǎo)入到數(shù)據(jù)庫(kù)    orderSettingService.add(data);} catch (IOException e) {    e.printStackTrace();    return new Result(false, MessageConstant.IMPORT_ORDERSETTING_FAIL);}return new Result(true, MessageConstant.IMPORT_ORDERSETTING_SUCCESS);    }}

    2.2.2、創(chuàng)建批量上傳的接口實(shí)現(xiàn)類

    package com.zcl.service.impl;import com.alibaba.dubbo.config.annotation.Service;import com.itheima.pojo.OrderSetting;import com.zcl.dao.OrderSettingDao;import com.zcl.service.OrderSettingService;import org.springframework.transaction.annotation.Transactional;import java.util.List;/** * 項(xiàng)目名稱:health_parent * 描述:預(yù)約管理接口實(shí)現(xiàn)類 * * @author zhong * @date 2022-06-18 15:09 */@Service(interfaceClass = OrderSettingService.class)@Transactionalpublic class OrderSettingImpl implements OrderSettingService {    /**     * 注入保存數(shù)據(jù)     */    @Autowired    private OrderSettingDao orderSettingDao;    /**     * 批量上傳業(yè)務(wù)實(shí)現(xiàn)     * @param data     */    @Override    public void add(List<OrderSetting> data) {// 判斷集合數(shù)據(jù)是否為空if(data != null && data.size() > 0){    // 判斷當(dāng)前日期是否已經(jīng)進(jìn)行了預(yù)約設(shè)置    for (OrderSetting datum : data) {// 根據(jù)日期查詢預(yù)約消息long count = orderSettingDao.findCountByOrderDate(datum.getOrderDate());if(count > 0){    // 已進(jìn)行預(yù)約管理,執(zhí)行更新操作    orderSettingDao.editNumberByOrderDate(datum);}else{    // 添加預(yù)約設(shè)置    orderSettingDao.add(datum);}    }}else{}    }}

    2.2.3、創(chuàng)建數(shù)據(jù)訪問層接口和映射文件

    package com.zcl.dao;import com.itheima.pojo.OrderSetting;import java.util.Date;/** * 項(xiàng)目名稱:health_parent * 描述:預(yù)約管理數(shù)據(jù)訪問層 * * @author zhong * @date 2022-06-18 15:13 */public interface OrderSettingDao {    /**     * 添加預(yù)約數(shù)據(jù)     * @param orderSetting     */    void add(OrderSetting orderSetting);    /**     * 修改預(yù)約數(shù)據(jù)     * @param orderSetting     */    void editNumberByOrderDate(OrderSetting orderSetting);    /**     * 查詢預(yù)約數(shù)據(jù)的總數(shù)     * @param orderDate     * @return     */    long findCountByOrderDate(Date orderDate);}

    數(shù)據(jù)訪問層映射文件編寫SQL語句

    <?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.zcl.dao.OrderSettingDao">    <!--添加預(yù)約嘻嘻嘻-->    <insert id="add" parameterType="com.itheima.pojo.OrderSetting">insert into t_ordersetting (orderDate,number,reservations)values (#{orderDate},#{number},#{reservations});    </insert>    <!--根據(jù)日期修改預(yù)約信息-->    <update id="editNumberByOrderDate" parameterType="com.itheima.pojo.OrderSetting">update t_ordersettingset number = #{number}where orderDate = #{orderDate}    </update>    <!--根據(jù)日期查詢數(shù)據(jù)-->    <select id="findCountByOrderDate" parameterType="date" resultType="java.lang.Long">select count(id)from t_ordersettingwhere orderDate = #{orderDate}    </select></mapper>

    3、批量導(dǎo)入數(shù)據(jù)測(cè)試

    在上傳模板上制作數(shù)據(jù),然后進(jìn)行導(dǎo)入,先導(dǎo)入新的數(shù)據(jù)再導(dǎo)入修改后日期不變的數(shù)據(jù)再次上傳數(shù)據(jù)

    到此這篇關(guān)于Apache POI操作批量導(dǎo)入MySQL數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)Apache POI操作批量導(dǎo)入MySQL內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

    標(biāo)簽: Linux Apache
    主站蜘蛛池模板: 色七七久久 | 开心久久婷婷综合中文字幕 | 99精品国产一区二区三区 | 国产精品久久久久一区二区三区 | 日日碰狠狠躁久久躁综合网 | 超碰在线97观看 | 伊人久久无码中文字幕 | 国产又粗又硬又爽的视频 | 成人性视频sm | 夜夜躁很很躁日日躁麻豆 | 好吊视频一区 | 在线天堂中文在线资源网 | 蜜桃av抽搐高潮一区二区 | 欧美视频一区二区三区在线观看 | 国产精品女上位好爽在线观看 | 黄色大片免费网站 | 成人男女网24免费 | 亚洲伦理网 | 国产精品大全 | 色国产精品 | 国产午夜精品无码一区二区 | 日本中文亲子偷伦 | 天天精品免费视频 | 日本视频一区二区 | 国产精品久久久久久久妇 | 日本大尺度做爰呻吟 | 亚洲狠狠操 | 国产精品毛片久久 | 玩弄人妻少妇500系列视频 | 国产在线二区 | 久久欧美精品久久天美腿丝袜 | 亚洲人精品 | 欧美xxxx片 | 91视频网址| 亚洲爽爽网 | 神马午夜嘿嘿 | 99国产精品无码 | 一级激情片 | 亚洲色大成网站www久久九九 | 国产毛片毛片精品天天看软件 | 无码人妻丰满熟妇啪啪网站 | 欧美日本在线观看 | av影音先锋最大资源网 | 亚洲国产精品成人无久久精品 | 91精品国产综合久久国产大片 | 精品人妻少妇一区二区三区 | 国产人妻精品区一区二区三区 | 国产亚洲xxxx在线播放 | 国产乱肥老妇女精品视频网站 | 亚洲天堂男人影院 | 刚添一下她就呻吟起来的视频 | 91大神网址| 久久人人添人人爽添人人88v | 亚洲午夜精品毛片成人播放器 | 天干夜天天夜天干天在线观看 | 久久一久久 | 99伊人网 | 国产传媒一区二区三区 | 国产女人的高潮国语对白 | 久久久久久久国产精品毛片 | 在线视频区 | 国产三级aaa | 动漫av纯肉无码免费播放 | 亚洲一区综合 | 国产一区二区伦理 | 精品国产aⅴ一区二区三区 精品国产va久久久久久久 | 男女xx网站 | 在线一区二区视频 | 亚洲一二三区视频 | 五月婷婷激情第四季 | 特黄特色大片免费播放 | 在线看免费毛片 | 欧美亚洲图片小说 | 精品久久久噜噜噜久久久 | 黄色录像大片 | av超碰在线观看 | 国产女人18水真多18精品一级做 | 97精产国品一二三产区在线 | 精品国产乱码久久久久久果冻传媒 | 久久精品国产精品青草 | 国内精品一区二区三区 | 日日干天天 | 日产成品片a直接观看 | 国产一级淫片s片sss毛片s级 | 在线观看中文字幕视频 | 亚洲涩涩爱 | 国产精品毛片一区二区在线看 | 女主和前任各种做高h | 青青草视频黄 | 欧美乱做爰xxxⅹ久久久 | 亚洲女人初尝黑人巨大 | xxxx黄色片| 国内精品久久久久精免费 | 99久久婷婷国产综合精品 | 國产一二三内射在线看片 | 中文字幕日本人妻久久久免费 | 13一15学生毛片视频软件 | 国产在线视频资源 | 日本午夜在线 | zzijzzij亚洲日本少妇熟睡 | 亚洲污片 | 国产免费av网址 | 日韩精品av久久有码一区浪潮 | 国产正在播放 | 免费看一级视频 | 成年人免费黄色 | 大尺度分娩网站在线观看 | 国产黄色免费看 | 人妻互换免费中文字幕 | 免费黄色一级片 | 好吊妞无缓冲视频观看 | 伊人成年网 | 日韩在线一区二区三区影视 | 三个少妇的按摩69xx | 婷婷久久综合网 | 中文字幕毛片 | 丰满少妇三级全黄 | 少妇高潮惨叫喷水在线观看 | 亚欧洲精品视频 | 国产午夜精品一区二区理论影院 | 成人免费8888在线视频 | a毛片网站 | 日韩在线观看不卡 | 国产又黄又硬又粗 | 欧美久久久久久久久久久久久久 | 欧美精品乱码99久久蜜桃 | 日韩欧美精选 | 国产高清在线精品一区二区三区 | 麻豆成人久久精品二区三区免费 | 天海翼一区二区三区高清在线观看 | av在线播放一区二区三区 | 伊人性伊人情综合网 | 久久国产精品99久久久久久进口 | 2018天天弄| av在线播放中文字幕 | av在线免费观看网址 | 久久噜噜少妇网站 | 欧美少妇毛茸茸 | 多p混交群体交乱在线观看 多男一女一级淫片免费播放口 | 国产99在线 | 欧美 | 日韩成人免费在线观看 | 综合国产第二页 | 亚洲国产日韩欧美在线观看 | 天天摸夜夜添夜夜无码 | 午夜国产福利在线 | 欧美人体做爰大胆视频 | 性——交——性——乱免费的 | 中国色视频 | 午夜视频 | 免费一级日韩欧美性大片 | 国产精品久久久久久久久久久久午夜片 | 麻豆精品在线视频 | 亚洲aⅴ一区二区 | 黄色的毛片 | 在线免费观看黄色av | 97人人插 | 亚洲精品国产一区 | 国产视频二区 | 成人妇女免费播放久久久 | 欧美大片18| 免费观看交性大片 | 国产精品成人免费看片 | 国产精品1688网站 | 国产成人无码午夜视频在线观看 | 岛国av资源 | 中出内射颜射骚妇 | 国语自产免费精品视频在 | 欧美激情视频二区 | 希岛爱理av免费一区二区 | 午夜性刺激免费看视频 | 亚洲精品香蕉 | 亚洲理论在线 | 日本丶国产丶欧美色综合 | 欧美做爰猛烈床戏大尺度 | 亚欧在线视频 | 先锋av网| 91久久婷婷国产一区二区三区 | 欧美精品久久久久久久久大尺度 | 日本午夜三级视频 | 美女av免费观看 | 免费国产乱理伦片在线观看 | 色婷婷香蕉在线一区二区 | asian日本肉体pics| 中文无码一区二区不卡αv 精品少妇人妻av免费久久洗澡 | 中国一级黄色毛片 | 少妇一级淫片免费播放 | 视频黄色免费 | 丁香婷婷深情五月亚洲 | 欧美人与动物xxxxx | 一本之道色综合网站 | av免费在线观看网址 | 欧美精品一二 | 日韩欧美在线一区二区三区 | 81精品久久久久久久婷婷 | 天天玩夜夜操 | 日本激情一区二区三区 | 欧美a天堂| 亚洲黄色三级视频 | 欧美福利视频网站 | 国产爆乳美女娇喘呻吟 | 日本亚洲精品色婷婷在线影院 | 欧美日韩在线综合 | 麻豆精品导航 | 丰满大乳一级淫片免费播放 | 99夜夜 | 一区二区日韩 | 亚洲天堂一级片 | 午夜片在线| 日韩av网址大全 | 亚洲成av人影院 | 无码欧精品亚洲日韩一区 | 精品人妻无码一区二区三区性 | 国产成人免费高清激情视频 | 乱视频在线| 欧美精品乱码99久久蜜桃 | 调教一区二区三区 | 在线观看免费毛片 | 久草在线视频网站 | av毛片大全| 欧美视频在线一区二区三区 | 污污的网站在线观看 | 国产成人免费片在线观看 | 午夜dj高清免费观看视频 | 欧美在线二区 | 极品少妇hdxx天美hdxx | 日本三级午夜理伦三级三 | 波多野结衣aⅴ在线 | 日日av色欲香天天综合网 | 国产日韩久久久 | 天操夜夜操 | 国产福利精品在线观看 | 无码国产一区二区三区四区 | 波多野结衣一区二区 | 女人的av | 男女做爰猛烈吃奶啪啪喷水网站 | 日本不卡一区二区三区视频 | 亚洲人成欧美中文字幕 | 国产精品一区二区av不卡 | 看全色黄大色大片免费久久 | 久久成人18免费网站 | 性无码专区无码片 | 99精品视频九九精品视频 | 77777五月色婷婷丁香视频 | 91精品一久久香蕉国产线看观看新通道出现 | 伊人色婷婷 | 成人激情综合网 | a天堂一码二码专区 | 国产精品久久久久9999小说 | 俄罗斯毛片基地 | 亚洲精品九九 | 性欧美videos做受 | 亚洲女同一区 | 成人av影院 | 污视频在线免费 | 亚洲va国产va天堂va久久 | 精品国产第一国产综合精品 | 国产一级二级三级 | 国产黄色片一级 | 小泽玛利亚一区二区在线观看 | 五月婷婷久 | 一本大道无码人妻精品专区 | 少妇高潮惨叫在线播放 | 日韩一区二区三区无码影院 | 无套内谢少妇在线观看视频 | 国产乡下妇女做爰视频 | 牛牛超碰 | 日本无遮挡吸乳呻吟免费视频网站 | 一区二区欧美视频 | 亚洲欧美日本国产高清 | 人妻一本久道久久综合久久鬼色 | 成人激情在线视频 | 青青草免费公开视频 | 国产精品揄拍500视频 | 男人天堂99| 又大又硬又爽18禁免费看 | 国产精品二区一区 | 夜色www国产精品资源站 | 免费国产黄线在线观看 | 成人av日韩| 97色综合 | 情欲少妇苏霞沉沦100 | 日本道之久久综合久久爱 | 亚洲视屏在线观看 | 日本免费一区二区三区中文字幕 | 亚洲综合国产精品 | 深夜视频在线免费观看 | 农村偷人一级超爽毛片 | 国产精品aaaa | 日本三级生活片 | 亚洲麻豆国产自偷在线 | 亚欧视频在线观看 | 国产成人精品白浆久久69 | 女高中生第一次破苞av | 成人a级黄色片 | 污污网站在线免费观看 | 亚欧色视频 | 亚洲中文字幕无码专区 | 人日人视频 | 99精产国品一二三产区在线 | 黄色欧美视频 | 亚洲成av人乱码色午夜 | 日韩欧美激情在线 | 99久久久精品免费观看国产 | 一区二区三区国产 | 麻豆视频二区 | 日韩专区视频 | 欧美不卡高清 | 国产卡一卡二无线乱码 | 国产大片黄在线观看私人影院 | 性av网 | 国产精品资源网 | a激情 | 国产成人精品午夜福利在线观看 | 日韩三级精品 | 亚洲精品丝袜字幕一区 | 少妇一级1淫片 | 依依综合网 | 国产精品精品久久久 | 日韩特黄 | 亚洲精品欧美二区三区中文字幕 | 丰满人妻妇伦又伦精品国产 | 99久久国产露脸国语对白 | jizz网站| 日本不卡一区二区三区 | 暴力调教一区二区三区 | 老司机精品视频一区二区 | 里番acg☆里番本子全彩 | 婷婷成人综合激情在线视频播放 | 午夜久久久久久久久久久 | 美女二区| 国产午夜成人久久无码一区二区 | 日韩av一二三四区 | 日韩av无码社区一区二区三区 | 在线观看小视频 | 国产精品久久久久一区二区三区 | 婷婷四房色播 | 66av99精品福利视频在线 | 国产清纯白嫩初高中在线观看性色 | 在线观看亚洲精品视频 | 少妇午夜性影院私人影院软件 | 中文字幕日本在线 | 国产成人久久精品流白浆 | 中文字幕亚洲中文字幕无码码 | www.欧美色图 | 久久精品水蜜桃av综合天堂 | 女仆乖h调教跪趴1v1 | 天堂а√在线中文在线鲁大师 | 视频一区 中文字幕 | 欧美性猛交xxxx富婆 | 国模小黎自慰gogo人体 | 日本黄色xxx| 亚洲第一成年免费网站 | 中文字幕国产一区二区 | 国产在线观看一区二区三区 | 国内精品久久久久影院日本资源 | 五十路av在线 | 成年人在线视频网站 | 激情丁香| 全部a∨一极品视觉盛宴 | 日韩精品视频一区二区三区 | 人人射影院 | 在线观看中文字幕网站 | 懂色av中文一区二区三区 | 久久96国产精品久久久 | 91大神网址 | 久久中文字幕免费视频 | 激情五月亚洲 | 美女赤身免费网站 | 日本三级高清视频 | 91社区在线播放 | 欧美成人精品欧美一级乱黄 | 亚洲老妇交性506070 | 真人抽搐一进一出gif | 91精品视频在线 | 亚洲精品在线免费 | 夜夜嗨av | 日韩一二三四五区 | 国产色吧 | 亚洲一区国产一区 | 综合国产在线 | 亚洲一区二区三区久久久 | 亚洲狠狠婷婷综合久久 | 亚洲综合天堂av网站在线观看 | 内射人妻少妇无码一本一道 | 男女性网站 | 六月丁香色婷婷 | 国产精品一区二区av不卡 | 护士脱了内裤让我爽了一夜视频 | 天天干天天拍 | 日韩一级视频在线观看 | 国产黄色高清 | 亚洲日韩小电影在线观看 | 久久av在线 | 国产精品s | 99久久婷婷国产综合精品 | 日本精品99| 久草这里只有精品 | 国产精品入口麻豆www | 在线播放国产一区二区三区 | 天天躁日日躁aaaaxxxx | 求欧美精品网址 | 美女av免费 | 国产在视频线精品视频 | 国产色婷婷久久99精品91 | 国产精品国产三级国产aⅴ无密码 | 风间由美不戴奶罩邻居勃起av | 毛片无遮挡 | 亚洲国产精品美女久久久久 | 亚洲精品中文在线 | 国产–第1页–屁屁影院 | 一本一本久久a久久精品综合 | 国产精品理论片在线观看 | 亚洲精品国产电影 | 国产成人av一区二区三区 | 欧美资源 | 色av性av丰满av | 最新天堂在线视频 | 国产乱国产乱 | 久射久 | 在线播放黄色av | 99久久免费精品 | 性荡视频播放在线视频 | 久久精品无码一区二区日韩av | 91亚洲乱码卡一卡二卡新区豆瓣 | 韩国av不卡 | 成人午夜性视频 | 丰满肥臀大屁股熟妇激情视频 | 日本一区二区视频免费 | 激情涩涩 | 国产做a爰片久久毛片a片美国 | 亚洲欧洲免费 | 欧美日韩免费一区二区三区 | 黑人一级视频 | 国产啪精品视频网站 | 中文字幕欧美激情 | 天天色影网 | 亚洲欧洲日产国码久在线 | 美女黄站| 国产精品亚 | ass精品国模裸体pics | 日韩一本之道一区中文字幕 | 日韩在线三区 | 动漫精品专区一区二区三区 | 制服丝袜亚洲 | 欧美性受xxxx白人性爽 | 性折磨bdsm德国激情 | 性猛交xxxx乱大交孕妇2 | 中国女人黄色大片 | 手机看片日本 | 国产成人+亚洲欧洲+综合 | 五月天激情国产综合婷婷婷 | 亚洲综合色一区 | 色综合免费| 国产山村乱淫老妇av | 97一区二区国产好的精华液 | 天天射夜夜爽 | 婷婷激情丁香 | 亚洲成人午夜影院 | 欧美激情一区二区久久久 | 欧美大胆少妇bbw | 国产精品自拍在线观看 | 九九热视频在线免费观看 | 免费观看美女裸体网站 | 免费人成网站在线观看欧美高清 | 国产精品久久久久乳精品爆 | 中文字幕av导航 | 国产下药迷倒白嫩丰满美女j8 | 国产精品99精品久久免费 | 伊人色在线 | 自拍偷在线精品自拍偷无码专区 | 在线观看成年人视频 | 亚洲色图视频在线观看 | 色爱情人网站 | 久久精品www人人爽人人 | 葵司ssni-879在线播放 | 欧美xx视频 | 国产色网站 | 欧美色窝79yyyycom | 岳双腿间已经湿成一片视频 | 99精品国产高清在线观看 | 日韩一级影片 | 久久免费看a级毛毛片 | 欧美一级二级三级视频 | 亚洲精品久久久久久久蜜桃 | 国产精品高清一区二区 | 91久久精品www人人做人人爽 | 欧美日韩精品久久久免费观看 | 成年美女黄网站色大免费视频 | www.五月天婷婷.com | 三级国产网站 | 久久99精品久久久久久琪琪 | 国产亲伦免费视频播放 | 风间由美不戴奶罩邻居勃起av | 少妇伦子伦精品无吗在线观看 | 亚洲a视频在线观看 | 91蜜桃在线 | 香港三日本三级少妇少99 | 欧美人与牲禽xxxxx | hitomi一区二区三区精品 | 国产a三级久久精品 | 国产精品爽爽久久久久久 | 两性色午夜免费视频 | 少妇被躁爽到高潮 | 久久99成人免费 | 一区二区三区日韩视频在线观看 | 麻豆av福利av久久av | 久久久久久久久久国产精品 | 欧美丰满熟妇xxxx性大屁股 | 1000部夫妻午夜免费 | 婷婷性多多影院 | 日韩av片无码一区二区不卡电影 | 影音先锋二区 | 中文字幕在线视频网站 | 日韩二区在线 | 亚洲乱码中文字幕在线 | 丰腴饱满的极品熟妇 | 91嫩草国产露脸精品国产 | 黄色1级片| 日韩一级网站 | 狠狠色噜噜狠狠狠狠色综合久 | 亚洲天堂777 | 一区二区久久久久草草 | 精品97国产免费人成视频 | cao在线视频 | 欧美成人秋霞久久aa片 | 美女视频黄频a美女大全 | 亚洲午夜视频在线 | 国产黄色录像片 | 亚洲小视频| 午夜大片男女免费观看爽爽爽尤物 | 黄色a网站| 中国亚洲女人69内射少妇 | 4虎tv | 一级全黄少妇性色生活片毛片 | 中文字幕一区二区三区精华液 | 日本免费一区二区三区在线播放 | 亚洲国色天香卡2卡3卡4 | 国产精品尤物yw在线观看 | 少妇性l交大片欧洲热妇乱xxx | 浓精灌孕h校园5v1 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 污污视频网站在线 | 国产国产国产 | 特黄三级男人添女人下面 | 国产一区精品在线观看 | 末成年娇小性色xxxxx | 另类性姿势bbwbbw | 国产偷伦在线 | 狠狠五月深爱婷婷网 | 欧美亚洲高清 | 成人av网站免费 | 成人性生交大片免费看r老牛网站 | 欧美aa大片| 亚洲精品久久中文字幕 | 欧美乱色伦图片区 | 日本老太做爰xxxx | 精品国产乱码久久久久久丨区2区 | 亚洲乱码国产乱码精品精大量 | 久热国产在线 | 三浦步美一区二区三区 | 精品久久久久久久久久ntr影视 | 久久精品网站免费观看 | 在线免费观看av网站 | 亚洲a∨国产av综合av下载 | 色多多黄色| 国产精品国产三级国产aⅴ 国产精品国产三级国产aⅴ9色 | 天天av天天干 | 小嘀咕视频官网在线观看 | 老司机深夜福利网站 | 亚洲 欧美 日韩系列 | 2021国产精品一卡2卡三卡4卡 | 97免费在线观看视频 | 亚洲欧美a| 国产午夜成人久久无码一区二区 | 夜夜高潮夜夜爽夜夜爱爱 | 麻豆色淫网站av水蜜桃三级 | 日本啪啪网站 | 国产天堂精品 | 夜影影视剧大全在线观看 | 国产黄频在线观看 | 亚洲男人在线天堂 | 天天色亚洲 | 俄罗斯乱妇| 婷婷五综合| 国产原创av在线 | 久久免费精品国自产拍网站 | 欧美成人一二区 | 欧洲美女粗暴牲交免费观看 | 久久久久久久久久久久久久久久久久 | 激情婷婷av | 美国人性欧美xxxx | 精精国产xxxx在线观看主放器 | 欧美亚洲另类在线 | 国产成人亚洲欧洲在线 | 中文字幕人成无码人妻 | 国产一线av| 天干夜天干天天天爽2022 | 99国产精品久久久久久久 | 少妇av网 | 久久三级网 | 国产免费一区二区三区免费视频 | 深夜爽爽动态图无遮无挡 | 日韩精品福利 | 亚洲一区二区三区乱码aⅴ蜜桃女 | 18videosex性欧美麻豆 | 日本xxxwww| 国产日产精品一区二区三区四区介绍 | 免费看成人哺乳视频网站 | 可以免费观看av | 姝姝窝人体www聚色窝 | wwwav在线播放 | av一区在线 | 国产91精品一区二区麻豆网站 | 午夜精品久久久久久久99热 | 天天操天天操天天 |