亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Java校園博客系統(tǒng):Spring Boot 3.2教學(xué)實(shí)踐方案

Java校園博客系統(tǒng):Spring Boot 3.2教學(xué)實(shí)踐方案 簡介本資源是一份面向計(jì)算機(jī)專業(yè)本科生與Java初學(xué)者的畢業(yè)設(shè)計(jì)類實(shí)踐文檔聚焦校園博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)全過程解決高校師生知識分享、學(xué)習(xí)記錄與互動(dòng)交流的實(shí)際需求。文檔以Word格式.docx完整呈現(xiàn)共1個(gè)文件大小4.91MB內(nèi)容涵蓋技術(shù)選型JavaSpring BootMySQLTomcat、系統(tǒng)可行性分析、功能與業(yè)務(wù)流程梳理、模塊化功能結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫E-R圖及數(shù)據(jù)表字段設(shè)計(jì)、前后臺核心功能實(shí)現(xiàn)細(xì)節(jié)含管理員、博主、前臺首頁以及系統(tǒng)測試方案與結(jié)論結(jié)構(gòu)嚴(yán)謹(jǐn)、章節(jié)完整具備直接參考與復(fù)用價(jià)值。目前已有62人學(xué)習(xí)下載適合用于課程設(shè)計(jì)參考、畢設(shè)開題與技術(shù)方案借鑒尤其利于理解Web應(yīng)用從需求分析到部署落地的全周期開發(fā)邏輯。1. 為什么一個(gè)“校園博客系統(tǒng)”值得用 Java 重做一遍——不是為了炫技而是解決真實(shí)教學(xué)場景里的三類斷層你見過學(xué)生交的博客作業(yè)Word 文檔里貼截圖、手寫 URL、用郵箱附件傳.zip老師批改靠 Excel 打分表評論寫在 Word 批注里反饋周期動(dòng)輒一周課程群每天刷屏“老師我的博客打不開”“數(shù)據(jù)庫連不上”“登錄后跳回首頁”沒人知道是前端路由錯(cuò)、Session 失效還是 MySQL 8.0 默認(rèn)認(rèn)證插件不兼容。這不是開發(fā)能力問題是教學(xué)系統(tǒng)與工程實(shí)踐之間存在三道斷層需求斷層學(xué)生要交作業(yè)不是建 SaaS、部署斷層機(jī)房只裝 JDK 17 Tomcat 9不配 Docker、維護(hù)斷層畢設(shè)答辯完代碼就進(jìn)回收站沒人管半年后的 Spring Boot 版本升級。這個(gè)“基于 Java 的校園博客系統(tǒng)”不是又一個(gè) CRUD 演示項(xiàng)目它是把 Java 工程能力壓進(jìn)教學(xué)閉環(huán)的最小可行載體用Spring Boot 3.2做骨架MyBatis-Plus 4.3自動(dòng)生成建表 SQL 和基礎(chǔ) CRUDThymeleaf 3.1渲染純 HTML 頁面避開 Vue/React 學(xué)習(xí)成本所有功能跑在單臺 Windows Server 上學(xué)生 clone 后改兩行配置就能本地啟動(dòng)老師導(dǎo)出 WAR 包扔進(jìn)機(jī)房 Tomcat 就能開課。它不追求高并發(fā)但必須扛住 200 人同時(shí)提交作業(yè)的瞬時(shí)壓力它不玩微服務(wù)但每個(gè)模塊用戶、文章、評論、權(quán)限都按真實(shí)項(xiàng)目分包它甚至預(yù)留了“教師后臺一鍵清空學(xué)生數(shù)據(jù)”的按鈕——因?yàn)槊繉W(xué)期初真有老師需要重置整個(gè)班級的博客空間。如果你正帶 Java 課程設(shè)計(jì)、指導(dǎo)畢業(yè)設(shè)計(jì)或想給實(shí)訓(xùn)平臺加個(gè)可交付的練手項(xiàng)目這個(gè)系統(tǒng)就是那塊“墊腳石”不高但剛好夠到工程落地的門檻。2. 從零搭起骨架用 Spring Boot 3.2 MyBatis-Plus 4.3 初始化項(xiàng)目并生成基礎(chǔ)表結(jié)構(gòu)2.1 創(chuàng)建項(xiàng)目并確認(rèn) JDK 與依賴版本的硬性約束校園環(huán)境對運(yùn)行時(shí)版本極其敏感。機(jī)房服務(wù)器普遍為 Windows Server 2016預(yù)裝 JDK 17LTS而部分老教師電腦仍用 JDK 11。Spring Boot 3.x 要求最低 JDK 17因此必須放棄 JDK 11 兼容性這是第一個(gè)技術(shù)取舍。創(chuàng)建項(xiàng)目時(shí)使用 start.spring.io 注意選 Spring Boot 3.2.x非 3.3勾選以下依賴Spring WebSpring Data JDBC非 JPA因 MyBatis-Plus 更適配教學(xué)場景的 SQL 可視化Lombok減少樣板代碼學(xué)生易理解Thymeleaf服務(wù)端渲染避免前端框架學(xué)習(xí)負(fù)擔(dān)Validation校驗(yàn)學(xué)生注冊郵箱、密碼格式提示不要勾選 Spring Security。校園系統(tǒng)需“教師賬號擁有全站權(quán)限學(xué)生僅能管理自己博客”用自定義攔截器比 Security 配置更直觀也方便學(xué)生 debug 權(quán)限邏輯。生成 ZIP 后解壓用 IDEA 打開。關(guān)鍵一步檢查pom.xml中 MyBatis-Plus 版本是否為4.3.02023 年底發(fā)布支持 Spring Boot 3.2且TableName注解默認(rèn)開啟駝峰轉(zhuǎn)下劃線省去手動(dòng)配置。若版本不符強(qiáng)制覆蓋dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-spring-boot3-starter/artifactId version4.3.0/version /dependency2.2 用 MyBatis-Plus 逆向工程生成實(shí)體類與建表 SQL三步完成數(shù)據(jù)庫初始化學(xué)生最怕“建表語句寫錯(cuò)導(dǎo)致整個(gè)項(xiàng)目崩”。MyBatis-Plus 的AutoGenerator可根據(jù) Java 實(shí)體類反向生成建表 SQL這才是教學(xué)友好型方案。我們先定義核心實(shí)體類以BlogPost為例// src/main/java/com/example/campusblog/entity/BlogPost.java import com.baomidou.mybatisplus.annotation.*; TableName(blog_post) // 顯式指定表名避免自動(dòng)轉(zhuǎn) blog_post public class BlogPost { TableId(type IdType.AUTO) // 主鍵自增MySQL 用 AUTO_INCREMENT private Long id; TableField(user_id) private Long userId; // 關(guān)聯(lián)學(xué)生 ID TableField(title) private String title; TableField(content) private String content; TableField(create_time) private LocalDateTime createTime; // 使用 LocalDateTime非 Date TableField(status) // 0-草稿, 1-已發(fā)布, 2-已刪除 private Integer status; // getter/setter 省略Lombok Data 已覆蓋 }關(guān)鍵點(diǎn)在于TableField顯式標(biāo)注字段名禁止依賴駝峰自動(dòng)轉(zhuǎn)換——因?yàn)閷W(xué)生常把createTime寫成create_time或createtime顯式聲明能杜絕歧義。接下來編寫代碼生成器放在src/test/java下僅用于初始化// src/test/java/com/example/campusblog/generator/CodeGenerator.java import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import java.util.Collections; public class CodeGenerator { public static void main(String[] args) { FastAutoGenerator.create(jdbc:mysql://localhost:3306/campus_blog?serverTimezoneAsia/ShanghaiuseSSLfalse, root, 123456) .globalConfig(builder - { builder.author(teacher) // 作者名生成代碼時(shí)寫入注釋 .outputDir(src/main/java); // 生成到 src/main/java }) .packageConfig(builder - { builder.parent(com.example.campusblog) // 包名前綴 .moduleName(entity) // 模塊名影響子包路徑 .pathInfo(Collections.singletonMap(OutputFile.xml, src/main/resources/mapper)); // XML 映射文件位置 }) .strategyConfig(builder - { builder.addInclude(blog_user, blog_post, blog_comment) // 只生成這三張表 .entityBuilder() .enableLombok() // 啟用 Lombok .naming(com.baomidou.mybatisplus.generator.config.NamingStrategy.underline_to_camel) // 數(shù)據(jù)庫下劃線轉(zhuǎn)駝峰 .controllerBuilder() .enableRestStyle(); // 生成 RESTful 風(fēng)格 Controller }) .templateEngine(new FreemarkerTemplateEngine()) // 使用 Freemarker 模板 .execute(); } }執(zhí)行main()方法后自動(dòng)生成BlogUser.java,BlogPost.java,BlogComment.java實(shí)體類BlogUserMapper.java,BlogPostMapper.java接口含insert,selectById等方法BlogUserMapper.xml,BlogPostMapper.xml含insertselect標(biāo)簽BlogUserController.java,BlogPostController.java帶RestController的空殼參數(shù)說明serverTimezoneAsia/Shanghai是必須項(xiàng)否則LocalDateTime字段插入 MySQL 會(huì)報(bào)時(shí)區(qū)錯(cuò)誤useSSLfalse因校園內(nèi)網(wǎng) MySQL 通常未配 SSL強(qiáng)行開啟會(huì)導(dǎo)致連接失敗addInclude明確限定表名避免生成無關(guān)表如flyway_schema_history。2.3 運(yùn)行生成器后獲取建表 SQL 并手動(dòng)執(zhí)行為什么不能直接schema.sqlMyBatis-Plus 不提供“一鍵建庫建表”功能但生成器輸出的 XML 文件中insert標(biāo)簽內(nèi)的 SQL 是可讀的。更可靠的做法是用 HikariCP 連接池 spring.sql.init.modealways加載初始化腳本。在src/main/resources/application.yml中添加spring: sql: init: mode: always schema-locations: classpath:schema.sql >-- src/main/resources/schema.sql CREATE TABLE IF NOT EXISTS blog_user ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL, role TINYINT DEFAULT 0 COMMENT 0-學(xué)生, 1-教師, create_time DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS blog_post ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id BIGINT NOT NULL, title VARCHAR(200) NOT NULL, content TEXT NOT NULL, status TINYINT DEFAULT 1 COMMENT 0-草稿,1-已發(fā)布,2-已刪除, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_user_id (user_id) ); CREATE TABLE IF NOT EXISTS blog_comment ( id BIGINT AUTO_INCREMENT PRIMARY KEY, post_id BIGINT NOT NULL, user_id BIGINT NOT NULL, content VARCHAR(500) NOT NULL, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_post_id (post_id) );為什么不用MapperScan自動(dòng)建表因?yàn)镸apperScan只掃描 Mapper 接口不執(zhí)行 DDL。而schema.sql在應(yīng)用啟動(dòng)時(shí)由 Spring JDBC 自動(dòng)執(zhí)行且IF NOT EXISTS保證重復(fù)啟動(dòng)不報(bào)錯(cuò)——這對學(xué)生反復(fù)重啟項(xiàng)目至關(guān)重要。3. 讓學(xué)生真正“交作業(yè)”實(shí)現(xiàn)博客發(fā)布流程與教師后臺審核鏈路3.1 學(xué)生端從登錄到發(fā)布三步完成一篇博客含富文本與圖片上傳校園博客不需復(fù)雜編輯器。用summernote輕量級 jQuery 富文本即可它支持圖片拖拽上傳且 JS 文件僅 300KB。在src/main/resources/templates/user/dashboard.html中引入!-- src/main/resources/templates/user/dashboard.html -- link hrefhttps://cdn.jsdelivr.net/npm/summernote0.8.18/dist/summernote.min.css relstylesheet script srchttps://cdn.jsdelivr.net/npm/summernote0.8.18/dist/summernote.min.js/script div classform-group label博客內(nèi)容/label textarea idcontent-editor namecontent classform-control/textarea /div script $(document).ready(function() { $(#content-editor).summernote({ height: 300, toolbar: [ [style, [bold, italic, underline]], [insert, [picture, link]] ], callbacks: { onImageUpload: function(files) { sendFile(files[0]); // 調(diào)用自定義上傳函數(shù) } } }); }); function sendFile(file) { var formData new FormData(); formData.append(file, file); $.ajax({ url: /api/upload/image, type: POST, data: formData, processData: false, contentType: false, success: function(url) { $(#content-editor).summernote(insertImage, url); // 插入圖片 URL } }); } /script后端接收圖片的 Controller 必須處理MultipartFile并保存到src/main/resources/static/upload/目錄靜態(tài)資源目錄圖片可直接通過 HTTP 訪問// src/main/java/com/example/campusblog/controller/UploadController.java import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.core.io.Resource; import org.springframework.core.io.UrlResource; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; RestController RequestMapping(/api/upload) public class UploadController { private final Path rootLocation Paths.get(src/main/resources/static/upload); PostMapping(/image) public String handleFileUpload(RequestParam(file) MultipartFile file) { try { if (file.isEmpty()) { return ; } // 生成唯一文件名時(shí)間戳 原文件名 String timestamp LocalDateTime.now().format(DateTimeFormatter.ofPattern(yyyyMMddHHmmss)); String filename timestamp _ file.getOriginalFilename(); Path destinationFile this.rootLocation.resolve( Paths.get(filename)) .normalize().toAbsolutePath(); // 確保目錄存在 if (!this.rootLocation.toFile().exists()) { Files.createDirectories(this.rootLocation); } Files.copy(file.getInputStream(), destinationFile); // 返回可訪問的 URL注意static 目錄下文件路徑為 /upload/xxx.jpg return /upload/ filename; } catch (Exception e) { e.printStackTrace(); return ; } } }關(guān)鍵細(xì)節(jié)return /upload/ filename是硬編碼路徑因?yàn)閟rc/main/resources/static/是 Spring Boot 默認(rèn)靜態(tài)資源目錄無需額外配置即可通過http://localhost:8080/upload/xxx.jpg訪問。學(xué)生寫博客時(shí)插入的圖片 URL 就是這個(gè)地址避免使用file://協(xié)議瀏覽器安全限制或絕對路徑部署后失效。3.2 教師端審核列表與一鍵操作用 Thymeleaf 渲染動(dòng)態(tài)表格教師后臺首頁/admin/posts展示待審核博客列表。MyBatis-Plus 分頁查詢 Thymeleaf 表格渲染代碼簡潔且易調(diào)試// src/main/java/com/example/campusblog/controller/AdminController.java GetMapping(/admin/posts) public String listPendingPosts(Model model) { PageBlogPost page new Page(1, 10); // 第 1 頁每頁 10 條 QueryWrapperBlogPost wrapper new QueryWrapper(); wrapper.eq(status, 0); // 只查草稿狀態(tài) wrapper.orderByDesc(create_time); PageBlogPost resultPage blogPostService.page(page, wrapper); model.addAttribute(posts, resultPage.getRecords()); model.addAttribute(page, resultPage); return admin/post-list; // 對應(yīng) templates/admin/post-list.html }post-list.html中用 Thymeleaf 渲染表格!-- src/main/resources/templates/admin/post-list.html -- table classtable table-striped thead tr th標(biāo)題/th th學(xué)生/th th提交時(shí)間/th th操作/th /tr /thead tbody tr th:eachpost : ${posts} td th:text${post.title}示例標(biāo)題/td td th:text${post.user.username}張三/td td th:text${#dates.format(post.createTime, yyyy-MM-dd HH:mm)}2024-05-01 10:20/td td a th:href{/admin/post/{id}/publish(id${post.id})} classbtn btn-success btn-sm發(fā)布/a a th:href{/admin/post/{id}/reject(id${post.id})} classbtn btn-danger btn-sm退回/a /td /tr /tbody /table發(fā)布操作只需更新status字段// src/main/java/com/example/campusblog/controller/AdminController.java PostMapping(/admin/post/{id}/publish) public String publishPost(PathVariable Long id) { BlogPost post blogPostService.getById(id); if (post ! null post.getStatus() 0) { post.setStatus(1); // 1-已發(fā)布 blogPostService.updateById(post); } return redirect:/admin/posts; }為什么不用 REST API AJAX因?yàn)榻處熆赡苡美吓f IE 瀏覽器機(jī)房常見AJAX 兼容性差而redirect是最穩(wěn)妥的頁面跳轉(zhuǎn)方式且 Thymeleaf 模板天然支持服務(wù)端渲染學(xué)生 debug 時(shí)直接看 HTML 源碼就能理解數(shù)據(jù)流向。3.3 權(quán)限控制用攔截器實(shí)現(xiàn)“學(xué)生只能看自己的博客教師看全部”不引入 Spring Security改用HandlerInterceptor實(shí)現(xiàn)細(xì)粒度控制。創(chuàng)建AuthInterceptor// src/main/java/com/example/campusblog/interceptor/AuthInterceptor.java import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class AuthInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session request.getSession(false); if (session null || session.getAttribute(user) null) { response.sendRedirect(request.getContextPath() /login); return false; } String uri request.getRequestURI(); BlogUser user (BlogUser) session.getAttribute(user); // 學(xué)生不能訪問 /admin/ 開頭的路徑 if (uri.startsWith(/admin/) user.getRole() 0) { response.sendError(HttpServletResponse.SC_FORBIDDEN, 無權(quán)限訪問管理員頁面); return false; } // 學(xué)生訪問 /post/{id} 時(shí)校驗(yàn)該博客是否屬于本人 if (uri.matches(/post/\\d) user.getRole() 0) { Long postId Long.parseLong(uri.substring(uri.lastIndexOf(/) 1)); BlogPost post blogPostService.getById(postId); if (post null || !post.getUserId().equals(user.getId())) { response.sendError(HttpServletResponse.SC_FORBIDDEN, 無權(quán)查看他人博客); return false; } } return true; } }在WebMvcConfigurer中注冊// src/main/java/com/example/campusblog/config/WebConfig.java import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; Configuration public class WebConfig implements WebMvcConfigurer { Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new AuthInterceptor()) .excludePathPatterns(/login, /register, /css/**, /js/**, /images/**); } }攔截器 vs FilterFilter 在 Servlet 容器層面無法直接獲取 Spring Bean如blogPostService而HandlerInterceptor在 Spring MVC 攔截鏈中可注入 Service適合業(yè)務(wù)邏輯判斷。這是教學(xué)場景下的合理降級——用更易懂的機(jī)制替代復(fù)雜框架。4. 避坑指南學(xué)生部署時(shí)最常遇到的 4 個(gè)致命問題與血淚解決方案4.1 現(xiàn)象本地啟動(dòng)成功但部署到機(jī)房 Tomcat 后頁面空白控制臺無報(bào)錯(cuò)原因Spring Boot 3.x 默認(rèn)打包為jar而機(jī)房 Tomcat 要求war包且jar包內(nèi)嵌 Tomcat 與外部 Tomcat 沖突。解決修改pom.xml將打包方式改為warpackagingwar/packaging排除內(nèi)嵌 Tomcatdependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-tomcat/artifactId scopeprovided/scope !-- 交給外部 Tomcat 提供 -- /dependency主類繼承SpringBootServletInitializerSpringBootApplication public class CampusBlogApplication extends SpringBootServletInitializer { Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(CampusBlogApplication.class); } public static void main(String[] args) { SpringApplication.run(CampusBlogApplication.class, args); } }用mvn clean package -DskipTests生成target/campus-blog-0.0.1-SNAPSHOT.war丟進(jìn)Tomcat/webapps/即可。4.2 現(xiàn)象學(xué)生注冊時(shí)提示“郵箱格式錯(cuò)誤”但輸入studentschool.edu.cn仍失敗原因Email注解默認(rèn)正則過于嚴(yán)格不支持中文域名或長后綴如.edu.cn。解決自定義校驗(yàn)注解或改用Pattern// 在 BlogUser 實(shí)體類中 Pattern(regexp ^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\\.[a-zA-Z]{2,}$, message 郵箱格式不正確請輸入如 studentschool.edu.cn) private String email;玄學(xué)經(jīng)驗(yàn)正則末尾{2,}允許任意長度頂級域名比Email的硬編碼列表更包容校園郵箱。4.3 現(xiàn)象教師后臺點(diǎn)擊“發(fā)布”后博客狀態(tài)沒變刷新頁面仍是草稿原因blogPostService.updateById(post)更新時(shí)MyBatis-Plus 默認(rèn)只更新非null字段而post對象中userId,title等字段為null因只設(shè)置了id和status導(dǎo)致 SQL 中SET status?被忽略。解決兩種方案任選其一方案 A推薦用LambdaUpdateWrapper顯式指定更新字段LambdaUpdateWrapperBlogPost wrapper new LambdaUpdateWrapper(); wrapper.eq(BlogPost::getId, id).set(BlogPost::getStatus, 1); blogPostService.update(wrapper);方案 B在BlogPost實(shí)體類中為所有字段添加TableField(fill FieldFill.UPDATE)并在MetaObjectHandler中填充但教學(xué)場景過于復(fù)雜不推薦。4.4 現(xiàn)象圖片上傳后顯示 404URL 是/upload/20240501102030_xxx.jpg但瀏覽器打不開原因src/main/resources/static/upload/目錄在打包成war后路徑變?yōu)閃EB-INF/classes/static/upload/而 Tomcat 默認(rèn)不將WEB-INF下的資源設(shè)為靜態(tài)可訪問。解決在application.yml中顯式配置靜態(tài)資源路徑spring: web: resources: static-locations: classpath:/static/,file:./upload/然后修改上傳代碼將圖片保存到項(xiàng)目根目錄的upload/文件夾而非src/main/resources/static/upload/private final Path rootLocation Paths.get(./upload); // 改為相對路徑這樣./upload/位于 Tomcat 的webapps/ROOT/同級天然可被 HTTP 訪問。5. 讓系統(tǒng)“活”過一個(gè)學(xué)期教師后臺的批量操作與數(shù)據(jù)快照技巧5.1 教師一鍵清空全班博客用 MyBatis-Plus 的remove方法安全擦除每學(xué)期初教師需要重置學(xué)生博客空間。與其手動(dòng)刪庫不如在后臺加個(gè)按鈕。在AdminController中添加PostMapping(/admin/clear-all-posts) public String clearAllPosts() { // 刪除所有博客軟刪除status2 UpdateWrapperBlogPost wrapper new UpdateWrapper(); wrapper.set(status, 2) // 標(biāo)記為已刪除 .ne(status, 2); // 避免重復(fù)操作 blogPostService.update(wrapper); // 清空評論 UpdateWrapperBlogComment commentWrapper new UpdateWrapper(); commentWrapper.set(status, 2) .ne(status, 2); blogCommentService.update(commentWrapper); return redirect:/admin/dashboard; }對應(yīng)前端按鈕!-- 在 admin/dashboard.html 中 -- form action/admin/clear-all-posts methodpost button typesubmit classbtn btn-danger onclickreturn confirm(確定清空所有博客和評論此操作不可撤銷) 清空全班博客 /button /form為什么用軟刪除status2而非物理刪除因?yàn)榻處熆赡苷`點(diǎn)物理刪除后無法恢復(fù)而軟刪除只是標(biāo)記狀態(tài)SQL 查詢時(shí)加WHERE status ! 2即可過濾且保留數(shù)據(jù)用于期末統(tǒng)計(jì)如“本學(xué)期共提交博客 1200 篇”。5.2 生成學(xué)期數(shù)據(jù)快照用SELECT ... INTO OUTFILE導(dǎo)出學(xué)生博客為 CSV期末歸檔時(shí)教師需要導(dǎo)出所有已發(fā)布博客為 Excel。MySQL 原生命令SELECT ... INTO OUTFILE可直接生成 CSV比 Java 導(dǎo)出更高效-- 在 MySQL 客戶端執(zhí)行需 FILE 權(quán)限 SELECT u.username AS 學(xué)生姓名, p.title AS 博客標(biāo)題, p.content AS 博客內(nèi)容, p.create_time AS 發(fā)布時(shí)間 INTO OUTFILE /var/lib/mysql-files/campus_blog_export.csv FIELDS TERMINATED BY , OPTIONALLY ENCLOSED BY LINES TERMINATED BY \n FROM blog_post p JOIN blog_user u ON p.user_id u.id WHERE p.status 1;注意/var/lib/mysql-files/是 MySQLsecure_file_priv參數(shù)指定的安全目錄不能隨意改路徑導(dǎo)出后教師用scp或遠(yuǎn)程桌面復(fù)制該文件到本地用 Excel 打開即為標(biāo)準(zhǔn) CSV。5.3 防止學(xué)生“刷分”用 Redis 記錄每日發(fā)布上限有學(xué)生為拿高分一天發(fā) 20 篇博客。在BlogPostController的發(fā)布接口中加入限流// src/main/java/com/example/campusblog/controller/BlogPostController.java Autowired private RedisTemplateString, Object redisTemplate; PostMapping(/post/publish) public String publishPost(RequestBody BlogPost post, HttpSession session) { BlogUser user (BlogUser) session.getAttribute(user); // 限流每天最多 3 篇 String key post_limit: user.getId() : LocalDate.now(); Long count redisTemplate.opsForValue().increment(key, 1); if (count 3) { model.addAttribute(error, 今日發(fā)布次數(shù)已達(dá)上限3 篇); return user/dashboard; } redisTemplate.expire(key, 1, TimeUnit.DAYS); // 設(shè)置 1 天過期 // 正常發(fā)布邏輯... post.setUserId(user.getId()); post.setStatus(0); // 先存草稿 blogPostService.save(post); return redirect:/user/dashboard; }Redis 部署建議校園機(jī)房可安裝 Windows 版 Redis微軟維護(hù)的redis-windows內(nèi)存占用僅 10MB比數(shù)據(jù)庫計(jì)數(shù)更輕量。若無 Redis退化為數(shù)據(jù)庫計(jì)數(shù)SELECT COUNT(*) FROM blog_post WHERE user_id? AND DATE(create_time)CURDATE()但性能稍差。5.4 我的習(xí)慣每次課程更新前用 Git Tag 鎖定教學(xué)版本我?guī)У?Java 課程每年迭代但不同屆學(xué)生用的系統(tǒng)版本必須一致。我的做法是每學(xué)期初在 GitHub 倉庫打 Tag如v2024-spring給學(xué)生文檔明確寫“請 clonegit clone -b v2024-spring https://github.com/yourname/campus-blog.git”所有application.yml中的數(shù)據(jù)庫密碼、Redis 地址等敏感配置用application-dev.yml單獨(dú)存放并加入.gitignore最后把v2024-springTag 對應(yīng)的 ZIP 包上傳到學(xué)校教學(xué)平臺供學(xué)生直接下載。這看似多一步卻避免了“學(xué)生用最新版代碼結(jié)果 Spring Boot 升級到 3.3JDK 17 不兼容”的翻車現(xiàn)場。工程能力的第一課不是寫多炫的算法而是讓代碼在別人機(jī)器上穩(wěn)穩(wěn)跑起來。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美一区二区一级岛国大片| 极品五月天噜噜| 欧美日韩系列| 2019午夜福利视频| 精品国产嫩穴视频| 91 刺激在线| 国产黄色av大片网站| 国产一级高清免费观看| 亚洲人妻爽爽爽| 超碰 av 女人天堂| 爆乳免费黄网站| 人干人人人操人人摸| 久久男人的天堂| 国产欧美日产一区二区三区 - 国产欧美日 | 熟女一区二区三区| 射丝袜高跟鞋99| 色情乱伦AV| 久久天天艹| 97超碰磁| 1人人看人人摸人人操| 屁股久久久久久| 91精品国产长腿丝袜美女| 国产精品视频| 91九九九小逼| 校园春色宗合网| 久艹伊人精品综合在线| 精品91摸| 午夜毛片高清免费不卡| 久久伊人网视频一区二区三区| 91色色色| 九九成人| 热天堂一区二区| 亚洲 欧美 天天| 丁香婷婷色五月| 国产精品三级视频网站| 亚洲色综合| 91小视频| 色婷婷蜜臀av| 88在线一区二区三区| 人乳av| 秋霞鲁丝午夜无码一区二区三| 97超碰资源网| 碰人碰碰人人开房人肉| 亚洲女人毛茸茸91| 99久久99九九99九九九| 九热久| 亚州一区二区| 影音先锋少妇| 国产尤物AV尤物在线观看不卡| 91c色| 婷婷伊人网| aⅴ日韩成人电影av在线免费看av大全| 色综合网1| 狠狠综合网| 一区二区你上我| 欧美色图中文字幕| 大香蕉日韩欧美| 亚洲双插| 日韩免费av片高清无码| 国产精品香蕉热久久新品| 欧美性爱另类综合| 精品视频123区小说区| 亚洲精品欧洲精品| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 污到发麻的视频 国产| 综合网欧| 青青草一本道福利视频| 国产91av在线播放| 欧美日韩性爱视屏免费看了| 亚洲 欧美 天天| 乱码熟妇人妻久久久| 99日免费视频中文字幕| 91无码西班牙视频在线| 粉嫩av在线一区二区| 天天影视色香色欲| 久久精品一区二区三区蜜桃臀| 久久久亚洲熟妇资源| 日韩欧美性吧婷婷乱伦大香蕉| 天天操夜夜操狠很操| 九九久久99| 91色黑人少妇| 综合五月天| 欧美一区二区日韩三区| 麻豆亚洲AV成人无码久久精品| 国产久久日| 超碰97久| 亚洲日本韩国在线| 成人在线视频一区| 中文字幕欧美日韩三级| 99热免费| 日本 情色 1区2区3区| 91看黄片| 67194无码不卡| 97久久国产亚洲精品超碰热| 91精品亚洲内射孕妇| 婷婷综合视频| 欧美97色| 丁香六月婷婷综合| 99草精| 国产精品毛片?v一区二区三区| 91碰碰| 日本三级小说中文字幕| 少妇的嫩逼图片| 国产中文大片资源中文字幕| 殴美,日韩国产伦精品| 色香综合天天影视综合| 岛国A V在线免费看| 91精品国产综合久久久蜜臀| 亚洲成人贴图| 国产最新AV| 九九热三级片| 丁香六月婷婷| 啊啊啊不要嗯嗯在线观看| 综合 亚洲 欧美| 亚洲欧美日韩精品久久久一区二区| 少妇六月天| 丝袜AV一区二区三区| 国产精品无码av在线| 人妻社区男人天堂| 沈阳熟女高潮对白视频| 精品无人区麻豆乱码久久久| 亚洲伊人久久综合97| 亚洲中文字幕妇伦久久| 福利操逼| 日本超碰色精品| 看大黄色大片原件| 超碰在线1234区| 亚洲中文国际强奸字幕| 亚州欧美综合| 国产 日韩 欧美 人妻 熟女 中文| 亚洲性刺激| 久操精品网| 欧美操逼录像国产黄色国产| 欧美无圣光在线| 人人看人人插| 日本最新1区2区3区| 精品国产人成在线| 日韩精品-原创伙伴| 丁香五月av| 爱妻综合网| 91丝袜美女| 久久国内| 99999久久精| 色屁屁影院www国产| 欧美日韩国产电影| 亚洲成人美女无吗| 欧美少妇高潮视频| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲性爱免费电影| 人人操人人精品影片| www.激情| 一二三四视频中文字幕在线看| 国产精品高潮久久AV| 人人人人插| 亚洲综合在线91| 97网址www| 欧美大香蕉同搞| 99色热| 91九久| 黄色区免费观看中文字幕| 久久久久成人网| 亚洲、日韩、综合、另类| 一本色道久久天天射天天干| 欧美亚洲清纯| 欧美在线伊人色| 亚洲天堂 视频你懂的| 日韩猛交| 精品大全99999| 亚洲国成人情色好看电影| 少妇干B| 亚洲精品97久久| 久久伊人网视频一区二区三区 | 成人性爱电影一区二区| 国语对白露脸XXXXXX | 男男H黄动漫啪啪无遮挡网站| 欧美日韩中文字幕不卡| 国产诱惑| 久久久中文版| 热天堂一区二区| 岛国片在线观看视频亚洲| 在线日韩精品一区二区三区| 欧洲精品二区| 欧美极品少妇| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 久久综合婷婷| 日本在线播放不卡一区| 亚洲免费在线探花| 黑人免费福利视频| 欧在线一二区| 黄色成年| 天天综合-91入口| 黑人精品欧美一区二区蜜桃| 亚洲乱熟女一区二区| 情色av电影| 日本人体九九九九九九| 69精品少妇一区二区三区蜜桃| 国产精品嫩草影院免费| 岛国福利在线精品播放| 永久免费av无码网站国产app | 综合色99| 97五月天| 91亚洲青青草原精品1区| 蜜乳av首页| 国产熟女免费观看久久| 国产无马视频| 亚洲国产尤物yw在线观看| 国产丝袜欧美在线视频| 欧美的性爱网站免费| 国产福利精品98视频| 天堂综合网| 人妻熟女一区二区在线视频| 精品夜夜澡人妻无码AV| 亚洲成人ab| 天天综合青苹果| 清纯唯美激情| 成全动漫视频观看免费下载| 精品一区二区国产日韩| 免费看黄视频亚洲网站| 九月丁香综合网| 免费看黄视频亚洲网站| 久草视频分类在线| 这里只有精品视频| 色女网日韩| 中文字幕天天天天天| 江都AV在线| 国产天天看| 97精品视频网站| 污电影在线观看| 99热这里只有精品1| 精品少妇99| 久久男人的天堂| 肏逼视频日本| 亚洲导航深夜福利| 欧美性爱在线无码| 老熟女熟妇| 国产日韩人人| 香蕉99秘 一区精品蜜桃臀| 试看日韩黄片| 一本一道vs波多野结衣| 无码99| 96AV久久久| 欧美性综合| 亚洲色性| 日韩熟女操逼| 亚欧国产无码精品在线| 乱久久久| 百度百度日本操逼| 在线观看av区| 99啪啪视频| 日韩不卡一二三四| 女性喷水高潮在线观看| 亚洲图片欧洲图片aⅴ| 精品一区二区三区蜜桃臀赵总| 亚洲精品一二三四区| 在线观看午夜婷婷久久久久清性观看| 中国91AV| 香蕉久久AⅤ...| 色99视频| 天天日美女的B| TS人妖另类精品视频系列| 久久av成人无码免费| 95人妻爽爽人人做人人澡| 欧美超碰96| 青青草好吊| 手机看片日韩人妻| 国产女人高潮视频| 亚洲有薄码区久久在线一区| 国产精品亚洲免费| h色99999| 久久超碰国产一区二区三区| 伊人91| 精人妻无码一区二区三区伊人直播| 亚州一区二区| 丁香五月偷拍| 精品少妇一区二区三区| 操逼操网| 97一本大道亚洲一区| 日日夜夜精品视频| 成人资源中文字幕在线观看天天| 97超碰欧美手机在线| 99这里只有精品国产| 欧美综合站| 久久午夜神马| AA丁香综合激情| 大干人妻| 日韩人妻免费精品| 无码人妻系列少妇| 亚洲精品日韩国产欧美| 久久同城AV| 日韩在线欧美精品一区二区| 精品91摸| 四虎午夜影院| 大香蕉99热| A片大香蕉在线| 青青草吊丝| 天天澡天天狠天天天做| 黄色高清久久无码依人| 东京热视频网| 高清肉丝中文无码| 欧美日韩中文亚洲v在线综合| 久久九精品| 日韩成人在线性爱视频| 视频在线中文字幕| 人人看人人摸人人色| 日韩精彩视频| 久久婷婷六月综合| 欧美综合第一页| 美女诱惑爱爱| 蜜乳视频网站| 久欲AV| 色色色热| 美女操逼A A| 白丝在线一区| 超碰人人妻| 国产在线综合网| 欧美中字二区| 91精品国产麻豆国产自产在| 91亚洲欧洲| 欧美熟妇乱码在线一区| 国模艳艳啪啪一区| 99精品九九九九九九| 无码又爽又硬又激情免费视频| 97超碰欧美中文字幕| 亚洲精品97在线| 国产午夜福利专区综合| 久久久久久久久国产| 欧亚在线视频| 国产综合在线视频网站| 国产精品农村妇女| 97超视频在线观看| 婷婷色五月激情| 国产精品999aaa| 免费成人在线熟妇网| 99久re热视频精品98| 日本色色色网站免费看不卡| 97伦乱| 少妇高潮99p| 免费精品人妻一区二区三| 欧美桃色网| 亚州色站 日韩电影| 亚洲精品亚洲人成在线麻豆| 久久久久9999| 猛猛干| 欧美91精彩| 夜夜爽77777| 精品成人动漫一区二区| 国产强奸无码乱伦| 精产品久久| 97一本大道亚洲一区| 中文字幕国产精品1区| 中文字幕一区二区韩| 蜜臀99久久精品久久久久| 久久久久网站-538在线视频-欧美永久乱码| 在线强奷到舒服的无码视频 | 五月婷婷丁香六月| 免费人成?大片在线播放| 九九九九精品九九九九| 久久久三区二区一区| 欧美大片天天看| 欧美精品人妻视频| 91操人视频| 影音先锋视频在线| 在线色导航| 天天看天天日天天操| 综合亚洲网| 国产丸一视频| 中文字幕人乱码中文字的预防方法| 久久精精区一区二区一蜜桃一区二区| 综合色色婷婷| 九九色综合| 尤物一级在线免费观看| 26uuu国产日韩综合在线观看| 亚洲97在线| 一区二区三区一亚洲中文字幕、综合区灬| 精吧天堂| 无码精品啪啪啪一区二区三区三州 | 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 五月婷婷无码| 资源在线观一 二| 日欧操屄视频| 99热伊人| 精品国产一区二区三区av在线资源| 国产乱伦一二三区| 天天插天天操| 日韩性爱播放| www超碰| 六月丁香久久| 丁香六月综合激情| 久久人妻精品| 黑丝91视频| 日韩影片中文字幕一区二区三区| 蜜臀av中字字幕网站| 亚洲熟妇乱女区二区三区| 久久这里都是精品| 97玖玖超碰| 亚洲AV无码久久精品蜜桃小说| 亚洲男人的天堂AV| 超碰97首页| 97ai亚洲| 国产真实子伦对白| 亚洲精品一二区| 性色av网站| 欧美一级黄片免费播放| 成人影 天天操 亚洲| www四虎| 超碰综合色| 人妻无码视频一区二区三区久久| 操熟女91| 少妇3P性爱自拍| 国产又大又硬又长又粗| 欧美躁死她一区二区| 2025亚洲男人天堂| 欧美激情黑人| 99无码| 日逼视频日本| 97久久视频| 99999精品视频| 日韩中文字幕精品一二三事国产精品| 美女久久久久久久久久久| 精品蜜乳AV免费观看| 国产 无码 一区二区| 五月婷婷大香蕉| 亚洲综合113页| 后入福利视频| 精品国产一区探花在线观看| 超碰人人干| 国产盗摄美女如厕大神作品在线观看| 哈哈操电影| 久久久久久久九九九九九九| 91国产精品在线看| 久久精品中文字幕女同| 少妇熟女1区2区3区| 免费看欧美美女黄色大片| 伊人五月天青青草婷婷| 夜夜高潮夜夜爽国产伦精品| 一本色道综合久久欧美| 色色国产| 欧美日韩国产精品久久色婷婷| 欧美在线永久天堂| 夜夜爽爽爽| 欧美,亚洲,日韩,v,天堂,手机在线观看| 97综合| 中文字幕一区二区三区视频播放| 日本99一区二区| 国产精品第一页国产大屁股视频免费区| 国产操伦| 天堂麻豆天美| 亚洲无码电影久久久| 久久综合99| 中文字幕第95页| 国产一区二区三区免费视频在性观看 | 欧美性爱97超碰| 久久久九九| 无码精品久久| 75大香蕉| 天天射天天操天天干天天吃2018| 夜色五月天| 久艹99| 国产免费操逼| 欧洲精品网| 涩涩涩综合| 久久嫩草国产成人一区| 狠狠婷婷亚洲中文综合久久| 在现视频女上位好爽| 男人天堂导航| 国产精品电影| 香蕉99秘 一区精品蜜桃臀| 六月丁香久久| 精品一区二区三区蜜桃| 免费看一级a性色生活片久久无| 骚女高跟AV在线| 亚洲97成人在线观看| 99久久久无码国产精品性男| 亚洲系列欧美| 日本污ww视频网站| 99热婷婷一区二区三| 91色色色| 张柏芝国产一区在线观看| 天天综合日韩网| 亚洲情欲| 91美女视频在线| 一类无码操逼视频| 亚洲好色人妻| 伊人五月天青青草婷婷| 九九精品无码专区免费| 久久AV色| 国内外色色色色色成人视频| 97色网| 97超碰逼| 中文字幕免费看大片| 日本道人妻久久久在线不卡色视频| 日本在线不卡v二区| 亚欧操逼片在线观看| 91啪啪视频| 超碰色综合| 夜夜久久| 超碰97精品| 99自拍B亚洲| 国产成人无码啪| 国产97综合| 欧美综合97www| 91午夜无码| 亚洲图片 欧美电影| 国产精品久久久视频| 天天爽夜夜爽夜夜爽精| 青久久| 久久国色天香香蕉| 国产97视频免费观看| 久草这里只有精品| 精品一久久久| 婷色五月天| 天堂俺去俺来也www久久婷婷| 91亚洲黄色网| 啊啊啊啊操死我了| 狠狠干综合| 成人激情无码在线视频| 久久久性少妇| 人妻激情另类| 5278欧美一区二区三区| 丰满美女一级毛片在线播放| 亚洲一区中文字幕| 欧美精品久久| 亚洲中文人妻色| 国产AV久久久蜜爱影集| 亚洲男人久久综合天堂| 91亚洲欧美激情| 五月开心久久AV官网| 国产精品久久久亚洲一区| 久操视频资源站公开| av黄图片在线观看| 水滴偷拍| 51一区二区三区| 久日91在线| 国产乱婷婷精品二区三区| 日韩不卡a级视频专区| 日韩偷拍一区二区三区 | 强免费黄色网址| 97视频在线看| 97人亚洲综合字幕| 青青草原人妻| 嗯啊不要在线| 婷婷丁香六月天| 熟女人妻一区二区三区| 免费精品人妻一区二区三| 国产精品一区二区手机看片| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 中文字幕人妻色偷偷久久皮| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | juliaann丝袜大战黑鬼| 五月婷婷色| 久久久久久精品免费看A级| 豆花视频操逼网址| 日本视频在线中文字幕| 加勒比海色香蕉婷婷| 97操b| 狠狠图片青青草 | 百度百度日本操逼| 亚洲国产精品无码AV久久| 日韩啪啪视频| 最近二区三区视频大全| 大香蕉综合网| 国产精品人妻免费精品| 日韩在线国产字幕| 青青草五月份天| 精品九九九九九九九| 大香蕉综合在线| 99re国产中文字幕| 无码色| 神马久久久久眼| 青青草日逼视频| 97香蕉人人乳| 欧美大色交| 日韩人人精品| 啊啊啊好舒服视频| 日产操逼| 国产精品嫩草影院免费| 国产小u女在线观看| 精品成人av一区二区三区在线| 操人91| 成年人性爱日韩| 天天看天天日天天操| 成人羞羞视频国产| 日韩在线一区高清在线| 国产精品自拍欧美在线| 长长久久免费视频| 天天日天天舔东京热| 强奸熟女一区二区三区 | 99精品成人免费看| 91丨国产丨白浆| 久久999久| 日韩精品人妻中文字幕不卡乱码| 亚洲在线欧美| 日韩性爱毛片操骚逼| 熟女人妻一区二区三区| 人妻夜夜爽天天爽麻豆三区网站 | 欧美伦乱爱| 国产精品午夜福利| 日韩一级久久毛片| 国产精品爽爽va在线观看98| 偷拍欧美综合| 97精品97久久| 风月影院十八禁| 日韩乱伦影音先锋| 日韩丝袜人妻AV| 色偷偷超碰亚洲| 欧美综合天天| 欧美综合区| 麻豆九九九| 外国免费性情大片| 蜜乳AV一区| 天美传媒国产原创中文字幕亚洲欧美另类 | 口爆欧美91| 竹菊一区二区三区AV线| 中国一级操逼视频| 久久免费中文字幕在线观看| 欧美人妻一区二区| 奇米四色网| 夂久色| 久久久精品视频欧州站| 日本黄大片在线观看视频| 美女自卫慰黄网站免费| 色网1| 欧美日韩黄片精品在线| 日韩国语字幕| av2014 日韩在线中文字幕| 日本人妻中文字幕精品| 精品人妻1237| 射综合网| 婷婷爱五月| 国产亚热在线久久| 亚洲第一黄色av网站| 久草视频制服诱惑| 激情文学88| 狠狠操狠狠插| 台湾佬大香蕉| 国内毛片无码一级毛片| 欧美色图在线视频少妇| 亚洲成人免费中文字幕| 亚洲永久AV无码精品秋霞| 天天综合~91| 91狠婷| 97碰久久| 99国内精品| 欧美综合另类| 91老司机在线视频免费观看 | 九九精品热| 亚洲熟女一区二区| 日本在线激情一区二区三区| 人妻丰满熟妇av无码区蜜桃| 久久草在线综合视频| 国产精品69久久久久久久| 不卡啪啪视频| 欧美情色亚洲| 少妇二级| 精品无码一区二区三区色欲| 自拍丝袜美腿人妻| gogogo免费高清看中国国语| 日本欧美色| 一级黄色性爱A级片| 茄子社区国产精品| 啪啪啪大香蕉| 国产又黄又爽| 亚洲情色在线| 国产三级日产三级韩国三级| 国内精品久9| 色五月婷婷五月天| 日本操逼视频免费| 黄色高清久久无码依人| 亚洲97久久精品亚洲| 久久女女| http://qxhbdz.com| 欧美精品久久96人妻无码| 97香蕉人人乳| 国产超碰人人爽人人做| 超碰九7| 日韩高清一二三| 99国产人成精品| 国产91亚洲精品一区二区三区| 成人久久精品| 开心五月婷婷| 一级片在线观看高清无码| 精品久久久久成人码免| 高凊专区人人操| 色婷婷视频| 亚州男人天堂| 亚洲老司机123专区| 91狠狠综合久久久| 精品久久久久久无码| 人妻精品一区一区三区蜜桃91| 综合色图区| 性影在线视频| 亚洲色婷婷久久久综合日本 | 偷窥自拍A片| 久久精品一区二区一8| 色爽——AV| 1024亚洲中文字幕久在线看片你懂的| 日本丝袜人妻内射| 欧美男人天堂| 黑丝制服中文字幕 | 久久直播国产| 加勒比综合网| 91精品久久久久久| 日本黄色裸日本黄色裸体 | 国内外内射高清视频| 青青操视频在线| 欧美日韩淫加| 丰满人妻一区二区三区| 操逼逼中文字幕| 天堂v无码免费视频| 欧美日韩国产精品久久色婷婷| 91+欧美| 青青草中文-久久青草精品一区二区三| 国产精品嫩草久久久久| 水多多映视AV| 日韩欧美女求操每天更新| 69久久久久久久久久久久久| 天天日日舔舔| 香蕉综合网| 白嫩国模丰满一二三区| 成人免费看吃奶视频网站| 清纯唯美亚洲综合| 天天欲望网| 91在线丝袜| 亚洲色图综合网| 日本一天色道久久久精品视频| 殴美,日韩国产伦精品| 亚洲黄色影视| 看一级黄色视频| 被体育老师抱着c到高潮| 亚洲小电影免费涩涩成人在线高清| 亚洲一二三四区| 少妇激情一区二区三区视频| 一区超碰一区| 一本一道久久综合久久| 亚洲AV在线资源| 青青草玖玖爱| 九九九九97| 手机av亚洲丝袜美腿日韩第一页二页| 成人精品一区二区三区| 999综合色| 97视频www| 亚洲高清少妇| 人乳av| 青青草在线视频美女| 国产97综合| 美女黄色91| 国语精品av| 亚洲女人91| 天天综合-91入口| 久久伊人最新网址视频| 日韩一级性爱无码| 亚洲av综合色区图片亚洲| 欧美日韩国产三级黄色| 91成人久久| 人妻人人操| 综合色图亚洲欧美| 97欧美精品综合| 69久久久久久久久久久久久| 超碰日韩美妻| av2014 日韩在线中文字幕| 人妻91少妇| 91处女在线观看| 男女日B国产| 日韩乱伦影音先锋| 狠狠干狠狠色| 色呦呦、国产精品| 福利在线视频一区二区| 久久精品噜噜噜成人看免欧美大片| 亚洲高清欧美总合| 黄色成人网久久久久久| 18禁精品网站在线看| 岛国精品视频在线观看| 色欧美天天| 色欲人妻一区二区在线| 久久久久久久综合,国产| 怡红院成人视频| 欧美性爱第一页久久| 国产一区二区av综合| 日韩人妻精品久久久久| 中文字幕人妻色偷偷久久皮| 东京男人天堂| 欧美18 在线观看| 黄色av一区二区在线| 成 人 影视 一区 二区 三区 四区| 精品乱码久久久久| 欧美日韩久久精品爱爱| 国产精品蜜臀久久久久无码AV| 91人人臊| 精品一久久久| 亚洲 欧美 色图| 久久人人爽爽人人爽人人片αV| 97色色视频| 麻豆 亚洲 97| 亚洲精品97| 黄aaaaaaaaaaaaaaaaaa色网站| 欧美少妇一区二区三区| 午夜操操操| 岛国在线免费视频| 色爱综合网| 欧美骚少妇| 男女做爰猛烈动高潮A片免费应用| 1769精品一区二区三区| 欧美老妇女内射网址| 亚洲小说视频| 亚洲色图亚洲无码强奸乱伦| 成人色女网| 欧美黄业| 婷婷久久五月| 亚洲91大片| 久9re热视频这里只有精品| 综合色播| 清纯唯美综合亚洲| 国产无马视频| 日韩美女,国产传媒,视频一区| 偷拍盗拍亚洲色图图片| 黄片在线免费在线观看| 91真人天天在线| 亚洲第一页第二页激情| 日日日日日| 亚州欧美在线| 欧美一区二区三区日韩| 久久精品99久久久久久| 国产一区二区三区久久久精品| 99久久这里只有精品| 97国产精品一区| www久久99| 啊啊啊啊,啊啊好多水| 再深点灬舒服灬太大了添视频| 超碰午夜在线| 日本中文字幕不卡视频 | 妇女性内射冈站HDWWWCOM| 日本有码久久| 亚州男人天堂| 超碰调教97| 亚洲毛片基地专区| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 国产乱码久久久| 久久性爱大全| 91热色| 国产久久久久久久久一区二区| 亚洲加勒比色图| 日本道久久综合色色| 97射欧美| 激情丁香五月| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 香蕉99秘 一区精品蜜桃臀| 色色色热| av黄图片在线观看| 久久鲁夜| AV免费在线播放一区| 超碰精品人妻狠狠干| 亚洲最大网站av| 欧美性爱超碰97| 日韩偷拍色图| 亚洲春色欧美激情自拍| 性欧美精| 久久艹逼视频| 91国模| 久久天天躁日日躁狠狠躁| av在线观看不卡网站| 日韩熟女视频二区| 99精品无码| 国产高清午夜成人在线观看| 久操在97| 99无码视频| 肏逼视频日本| 欧美第二页午夜| 亚洲综合激情五月久久| 天天上日日上日韩精品| 男女性扦B| 韩日精品四区| 国产性爱在线视频一区二区| 超碰 欧美| 116美女午夜| 综合操逼| 99re在线| 午夜精品人妻二区三区| 日韩有码免费视频| 丰满岳乱妇一区二区三区| 天躁夜夜躁2021| 爱啪精品一区| 啪啪综合网| 少妇啪啪自拍| 久久二| 小草av不卡亚洲二区| 五月激情小说| 在线A日本| 激情小说亚洲| 亚洲在钱| 99抽插| 亚洲男人天堂2019| 久草视频观看视频在线| 成人性生活高清视频在线播放| 热久日综合| 久久草草欧美精品| 少妇高潮对白在线观看| 天堂v无码免费视频| 亚洲乱熟女一区二区| 午夜精品久久久99| caorenqi shipin| 日韩 欧美 另类 人妻| 七月婷婷综合| 久久婷婷成人综合色怡春院| 好舒服视频| 亚欧美天堂在线| 天天做天天爱天天高潮| 亚洲日韩美国人妻| 国产乱伦亚洲色图高清无码| 久久东京热久久| 黄站在线免费观看| 亚洲色入欧美| 中出789在线视频| 亚洲s在线观看| 九九色综合| 2018色综合天天操| 日韩欧美俄罗斯A片| 成人无码在线超碰网| 伊人影院日本| 男人天堂欧美| 97超碰欧美精品| 日日骚av| 2020中文字幕在线| 91操人| 亚洲凸凹超碰成人| 国厂麻豆77q4| 性色国产东北露脸精品视频| 观看免费区二区三区二| 日韩一级二级| 九九热在线视频| 婷婷99狠狠躁天天躁| 久操热线| 五月天婷婷小说| 日本三级中国三级99人妇网站| 欧美性爱在线无码| 黄色片大香蕉| 无码少妇精品一区二区60岁老人| 成人性爱美曰韩| 亚洲欧美国产成人综合不卡| 欧美性爱www免费版| 亚洲天堂7777| 日韩一级片在线看| 国产欧美亚洲精品a第2页| 美国一区二区免费视频| 日本护士高潮| 日韩一级片| 亚洲天堂,男人| 欧美成人9797| 国产精品久久久久绯色| 国产91精品久久久久久久网曝门| 日韩一级二级在线| 黑丝日韩av丝袜av| 亚洲综合一| 干美女人妻| 亚洲熟女诱惑| 日韩性爱长视频免费| 国产丝袜欧美在线视频| 久久91视频| 天天色播| 91美腿丝袜在线观看| 四虎国产成人精品免费一女五男| 亚洲欧美精品久| 偷拍亚洲情色| 国产精品操| 国产精品网址| 国产又操| 青娱乐导航AV| 欧美熟妇亚洲版| 久久婷婷一区| 91香蕉国产尤物视频| 天天日天天搞天天干| 黄片在线免费在线观看| 91在线页| 人妻黑丝袜电影| 欧美劲爆第一页| 婷婷干黄色| 日亚韩精品视频二区三| 99热色这里只有精品| 97爱b| 午夜在线播放| 日韩欧美成人综合在线| 热九九精品| 亚洲精品国产AV天美传媒| 春色综合免费| 岛国免费视频在线| 日本亚洲熟女视频| 欧美成人亚洲精品| 我爱操| 都市久久精品激情亚洲| 亚洲国产日韩欧美熟妇在线| 密臀在线免费观看| 91麻豆天美国产欧美高潮| 亚洲无码com| 久草视频分类在线| 天天碰操中国年青熟妇| 91高清欧美| 国产成人无码啪| 97超碰jingpin| 国产欧美日产一区二区三区 - 国产欧美日 | 国产操逼逼网| 国产夜夜艹| 97中文字幕九区| 3028国产精品| 97 国产一区| 日躁天天爽爽| 国模精品一区二区三区苹果色戒| 亚洲自拍另类丝袜综合| 欧美双插| 99热婷婷| 天天搞欧美| 人妻中文字幕精品无码| 天天操天天射青青草| 蜜臀久久99精品久久久久电影| 看大黄色大片原件| 色女综合| 91丨人妻丨国产丨丝袜| 综合久| 人妻天天爽夜夜爽2| 亚洲 欧美 制服 另类 自拍| 精精夜夜| 国产精品剧情| 伊人亚洲国产一成人久久精品,久久| WWW美腿丝袜香蕉中文| 亚欧成人综合影院| 婷婷激情一区二区三区俺也去| 亚洲Av诱惑| 久热大香蕉| 啊啊在线| 色情五月综合婷婷| 久久久久久99999国产精品| 国产精品女久久久久av爽| 欧美夜色| 久久久亚洲Av| 亚州综合AⅤ| 天天操夜夜操狠很操| 少妇69中文| 中文字幕日韩电影人妻| 一区麻豆 高清中文字幕| www国产无码| 强上我不卡卡| 国内毛片国产欧美拍| 欧美性,色九九| 人人干人人操人人爱| 97 国产一区| 国产成人自拍视频视频| oumeizonghese,www| 日逼逼免费看| 天天天天天超碰| 3d成人精品一区二区| 97超碰色中文字幕| 久久久久久AⅤ无码免费肉站| 日韩欧美蜜桃精品久久中文字幕久久 | 久久久亚洲高清不打码| 久久综合av| 一级久久性爱视频| 亚洲天天自拍| 男人亚洲91首页在线| 亚洲阿v天堂在线| 久久仑合| 亚洲一区二区精品福利| 有码专区最新中文字幕有码| 婷婷五月天在线观看| 17c嫩草51久久91嫩草| 在线97在线| 中文字幕亚韩| 精品一区二区三区麻豆| 97这里都是精品| 国产大学生口爆吞精合集| 在线播放欧洲免费av| 日韩性色b| 中文字幕一区二区日韩网| 欧美在线|亚洲| 98一区二区精品| 国产Av超碰| 人妻蜜桃臀| 国产大片精久久久久久| 日韩av在线免费网站| 男女国产精品| 97色欧州| 亚洲欧美国产日本一区二区三区| 97极品无码| 精品久久大胆人体| 五月天综合在线| 亚洲国产成人精品999| 天天操天天日天天干| 天天综合精品| 国产精品点击进入在线影院| 东京男人天堂| 久久鲁夜| 99久热| 日韩精品人妻一| 亚洲成人贴图| A一级色女| 91美女视屏| 不卡啪啪视频| 国产精品久久久久久久电影渣男| 好色美女九七第一页| 2019天天操天天爽天天拍| 9l视频自拍9l九色成人| 精品人妻1区| 97天天| 国产AV天美传媒一区二区三区| 97干在线看| 操逼日韩无码| 精品九九国产无码| 五月丁香激情四射| 蜜臀网址在线| 北条麻妃性愛视频| 美女啊啊啊啊pc| www超碰| 日韩激情啪啪| 久久黄色视频一区二区三区| 97久久久| 亚洲国产日韩精品久久久| 国产免费一区| 日韩午夜国产| 丝袜狠狠草尤物人妻av91| 激情五月天丁香| 亚洲 欧美日韩 另类| 亚洲人妻在线一区| 免费国产电影一区二区| 日韩射精| 欧美性夜| 99re这里只有精品2| 中国熟女91| 偷拍2020| 色欧洲97| 中文字幕久久亚州无码| 美女AV一区二区| 中文字幕88av在线| 99re这里只有精品3| 黄色污污污污污污网站| 人人操AV| 99综合网| 99色视频| 男人天堂2019亚洲| 国产原创自拍| 麻豆人妻精品一区二区| 成人日韩欧美| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 免费久久一级毛片大黄| 91精品人妻偷情| 一级性爱视频免费观看 | 三级色综合| 日本免费一级AAA大片器| 成人小说视频在线精品欧美| 蜜乳成人AV| 国产强奸乱伦xd| 免费自拍三级综合| 成全在线观看免费观看| 欧洲视频在线| 亚洲成a人在线观看久| 91成人久久| 日本在线播放不卡一区| 强免费黄色网址| www.久久| 欧美大香蕉卡久久| 亚91亚洲网| 色综合久久夜色精品国产天堂| 亚洲一区亚洲天堂| 色九色久|