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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

【无标题】智慧校园管理系统-毕设项目(包含数据库)

發(fā)布時間:2023/12/18 windows 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【无标题】智慧校园管理系统-毕设项目(包含数据库) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 1、 項目簡介
    • 1.1、 簡介
    • 1.2、 項目模塊
    • 1.3 使用的技術(shù)
  • 2、 項目環(huán)境搭建
    • 2.1、使用IDEA的SpringBoot創(chuàng)建一個Maven項目
    • 2.2 pom.xml 導(dǎo)入依賴
    • 2.3、準(zhǔn)備目錄結(jié)構(gòu)
    • 2.5、準(zhǔn)備分頁插件的配置類
    • 2.6、準(zhǔn)備 swagger2 的配置類
    • 準(zhǔn)備 util 下的工具類
    • 2.7.1、驗證碼圖片工具類
    • 2.7.2、token口令生成工具 JwtHelper
    • 2.7.3、解析request請求中的 token口令的工具AuthContextHolder
    • 2.7.4、MD5加密工具類
    • 2.7.5、響應(yīng)結(jié)果類型碼枚舉
    • 2.7.6、JSON響應(yīng)結(jié)果格式封裝類
    • 2.7.7、文件上傳工具類
    • 2.8、創(chuàng)建數(shù)據(jù)表及數(shù)據(jù)
    • 2.9、根據(jù)數(shù)據(jù)表準(zhǔn)備pojo、mapper、controller、service及其實現(xiàn)類
  • 3、測試訪問首頁的問題:數(shù)據(jù)庫版本不一致

1、 項目簡介

1.1、 簡介

智慧校園管理系統(tǒng):主要是以年級、班級為單位,進(jìn)行老師和學(xué)生信息記錄和統(tǒng)計功能。項目采用前后端分離架構(gòu)思想,前端采用 HTML+CSS+VUE來實現(xiàn)頁面效果展示,后端采用 SpringBoot+MybatisPlus 框架實現(xiàn)數(shù)據(jù)存儲等服務(wù)。存儲層使用高性能的 MySQL,服務(wù)器使用 SpringBoot 內(nèi)置的Tomcat9.x,項目構(gòu)建工具使用Maven來管理jar包和項目構(gòu)建。

1.2、 項目模塊

1.3 使用的技術(shù)

2、 項目環(huán)境搭建

2.1、使用IDEA的SpringBoot創(chuàng)建一個Maven項目

設(shè)置好包名及存放的位置即可,無需添加其他功能,后面會對Pom.xml進(jìn)行修改,其他功能可以通過maven即可。

2.2 pom.xml 導(dǎo)入依賴

為了避免影響其他插件的使用,需要使用較低的 SpringBoot 的版本

由于我的數(shù)據(jù)庫是 mysql5.7,導(dǎo)入的依賴也應(yīng)該是 5.x 版本的

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- 繼承方式使用SpringBoot --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</version><relativePath/></parent><groupId>com.zyj</groupId><artifactId>myzhxy</artifactId><version>0.0.1-SNAPSHOT</version><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--單元測試啟動器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- thymeleaf支持--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.1</version></dependency><!-- 簡化POJO實體類開發(fā) --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--mysql--><!--<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.3.1</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency><!--swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version></dependency><!--swagger ui--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version></dependency><!--swagger2 增強(qiáng)版接口文檔--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.4</version></dependency><!--開發(fā)者工具--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.29</version></dependency><!-- JWT生成Token--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.7.0</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version></dependency></dependencies><build><plugins><!--spring boot maven插件 , 可以將項目運行依賴的jar包打到我們的項目中--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2.3、準(zhǔn)備目錄結(jié)構(gòu)

1、java目錄下

config : 項目的配置類controller: 控制層mapper : 持久層接口pojo : 實體類service: 服務(wù)層util: 工具類包

2、resources目錄下

mapper :持久層映射文件public/upload:文件上傳目錄static: 靜態(tài)資源目錄application.yml :SpringBoot核心配置文件

## 2.4、配置application.yaml文件

server:port: 8080 #指定當(dāng)前項目啟動的端口號 spring:#解決SpringBoot2.6.0與swagger沖突問題【原因是在springboot2.6.0中將SpringMVC 默認(rèn)路徑匹配策略從AntPathMatcher 更改為PathPatternParser,導(dǎo)致出錯,解決辦法是切換回原先的AntPathMatcher】mvc:pathmatch:matching-strategy: ant_path_matcher#配置數(shù)據(jù)源datasource:#配置數(shù)據(jù)源類型type: com.zaxxer.hikari.HikariDataSource#配置數(shù)據(jù)庫連接屬性driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/zhxy_db?characterEncoding=utf-8&useSSL=false #&serverTimezone=GMT%2B8username: rootpassword: zyj123hikari:connection-test-query: SELECT 1connection-timeout: 60000idle-timeout: 500000max-lifetime: 540000maximum-pool-size: 12minimum-idle: 10pool-name: GuliHikariPoolthymeleaf:#模板的模式,支持 HTML, XML TEXT JAVASCRIPTmode: HTML5#編碼 可不用配置encoding: UTF-8#開發(fā)配置為false,避免修改模板還要重啟服務(wù)器cache: false#配置模板路徑,默認(rèn)是templates,可以不用配置prefix: classpath:/static/jackson:# 時間格式date-format: yyyy-MM-dd HH:mm:ss# 時區(qū)time-zone: GMT+8servlet:#設(shè)置文件上傳上限multipart:# 單個文件最大大小max-file-size: 10MB# 多個文件總共最大大小max-request-size: 100MB mybatis-plus:configuration:#添加日志支持log-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath*:/mapper/**/*.xml

2.5、準(zhǔn)備分頁插件的配置類

@Configuration @MapperScan("com.zyj.myzhxy.mapper") public class MyConfig {@Beanpublic PaginationInterceptor paginationInterceptor(){PaginationInterceptor paginationInterceptor = new PaginationInterceptor();return paginationInterceptor;}}

2.6、準(zhǔn)備 swagger2 的配置類

若想查看,需訪問 localhost:端口號/swagger-ui.html

只有有 Api 相關(guān)的注解才會生成

@Api 標(biāo)注在類上,示例:@Api(tags = “年級控制器”)

@ApiOperation 標(biāo)注在方法上,示例:@ApiOperation(“(批量)刪除年級信息”)

@ApiParam 標(biāo)注在方法參數(shù)上,示例:@ApiParam(“要刪除的年級信息的id的JSON集合”) @RequestBody List ids

import com.google.common.base.Predicates; import io.swagger.annotations.ApiOperation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.ArrayList; import java.util.List;/*** Swagger2配置信息*/ @Configuration @EnableSwagger2 public class Swagger2Config {@Beanpublic Docket webApiConfig(){//添加head參數(shù)startList<Parameter> pars = new ArrayList<>();ParameterBuilder tokenPar = new ParameterBuilder();tokenPar.name("userId").description("用戶ID").defaultValue("1").modelRef(new ModelRef("string")).parameterType("header").required(false).build();pars.add(tokenPar.build());ParameterBuilder tmpPar = new ParameterBuilder();tmpPar.name("userTempId").description("臨時用戶ID").defaultValue("1").modelRef(new ModelRef("string")).parameterType("header").required(false).build();pars.add(tmpPar.build());//添加head參數(shù)endreturn new Docket(DocumentationType.SWAGGER_2).groupName("webApi").apiInfo(webApiInfo()).select()//可以測試請求頭中:輸入token// 有 ApiOperation 注解才生成//.apis(RequestHandlerSelectors.withClassAnnotation(ApiOperation.class))// 掃描的基礎(chǔ)包.apis(RequestHandlerSelectors.basePackage("com.zyj.myzhxy.controller"))//過濾掉admin路徑下的所有頁面//.paths(Predicates.and(PathSelectors.regex("/sms/.*")))//過濾掉所有error或error.*頁面//.paths(Predicates.not(PathSelectors.regex("/error.*"))).build().globalOperationParameters(pars);}private ApiInfo webApiInfo(){return new ApiInfoBuilder().title("網(wǎng)站-API文檔").description("本文檔描述了網(wǎng)站微服務(wù)接口定義").version("1.0").contact(new Contact("atguigu", "http://atguigu.com", "512111559@qq.com")).build();}private ApiInfo adminApiInfo(){return new ApiInfoBuilder().title("后臺管理系統(tǒng)-API文檔").description("本文檔描述了后臺管理系統(tǒng)微服務(wù)接口定義").version("1.0").contact(new Contact("atguigu", "http://atguigu.com", "512111559@qq.com")).build();}}

準(zhǔn)備 util 下的工具類

2.7.1、驗證碼圖片工具類

import java.awt.*; import java.awt.image.BufferedImage; import java.util.Random;/*** @project: ssm_sms* @description: 繪制驗證碼圖片*/ public class CreateVerifiCodeImage {private static int WIDTH = 90;private static int HEIGHT = 35;private static int FONT_SIZE = 20; //字符大小private static char[] verifiCode; //驗證碼private static BufferedImage verifiCodeImage; //驗證碼圖片/*** @description: 獲取驗證碼圖片* @param: no* @return: java.awt.image.BufferedImage*/public static BufferedImage getVerifiCodeImage() {verifiCodeImage = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_BGR);// create a imageGraphics graphics = verifiCodeImage.getGraphics();verifiCode = generateCheckCode();drawBackground(graphics);drawRands(graphics, verifiCode);graphics.dispose();return verifiCodeImage;}/*** @description: 獲取驗證碼* @param: no* @return: char[]*/public static char[] getVerifiCode() {return verifiCode;}/*** @description: 隨機(jī)生成驗證碼* @param: no* @return: char[]*/private static char[] generateCheckCode() {String chars = "0123456789abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ";char[] rands = new char[4];for (int i = 0; i < 4; i++) {int rand = (int) (Math.random() * (10 + 26 * 2));rands[i] = chars.charAt(rand);}return rands;}/*** @description: 繪制驗證碼* @param: g* @param: rands* @return: void*/private static void drawRands(Graphics g, char[] rands) {g.setFont(new Font("Console", Font.BOLD, FONT_SIZE));for (int i = 0; i < rands.length; i++) {g.setColor(getRandomColor());g.drawString("" + rands[i], i * FONT_SIZE + 10, 25);}}/*** @description: 繪制驗證碼圖片背景* @param: g* @return: void*/private static void drawBackground(Graphics g) {g.setColor(Color.white);g.fillRect(0, 0, WIDTH, HEIGHT);// 繪制驗證碼干擾點for (int i = 0; i < 200; i++) {int x = (int) (Math.random() * WIDTH);int y = (int) (Math.random() * HEIGHT);g.setColor(getRandomColor());g.drawOval(x, y, 1, 1);}}/*** @description: 獲取隨機(jī)顏色* @param: no* @return: java.awt.Color*/private static Color getRandomColor() {Random ran = new Random();return new Color(ran.nextInt(220), ran.nextInt(220), ran.nextInt(220));} }

2.7.2、token口令生成工具 JwtHelper

package com.zyj.myzhxy.util;import io.jsonwebtoken.*; import org.springframework.util.StringUtils;import java.util.Date;public class JwtHelper {// 一天的毫秒數(shù)private static long tokenExpiration = 24*60*60*1000;// 后綴信息,用于增加保密性private static String tokenSignKey = "123456";//生成token字符串(根據(jù)tokenExpiration和tokenSignKey)public static String createToken(Long userId, Integer userType) {String token = Jwts.builder().setSubject("YYGH-USER").setExpiration(new Date(System.currentTimeMillis() + tokenExpiration)).claim("userId", userId) // .claim("userName", userName).claim("userType", userType).signWith(SignatureAlgorithm.HS512, tokenSignKey).compressWith(CompressionCodecs.GZIP).compact();return token;}//從token字符串獲取useridpublic static Long getUserId(String token) {if(StringUtils.isEmpty(token)) return null;Jws<Claims> claimsJws = Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token);Claims claims = claimsJws.getBody();Integer userId = (Integer)claims.get("userId");return userId.longValue();}//從token字符串獲取userTypepublic static Integer getUserType(String token) {if(StringUtils.isEmpty(token)) return null;Jws<Claims> claimsJws= Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token);Claims claims = claimsJws.getBody();return (Integer)(claims.get("userType"));}//從token字符串獲取userNamepublic static String getUserName(String token) {if(StringUtils.isEmpty(token)) return "";Jws<Claims> claimsJws= Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token);Claims claims = claimsJws.getBody();return (String)claims.get("userName");}//判斷token是否有效public static boolean isExpiration(String token){try {boolean isExpire = Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token).getBody().getExpiration().before(new Date());//沒有過期,有效,返回falsereturn isExpire;}catch(Exception e) {//過期出現(xiàn)異常,返回truereturn true;}}/*** 刷新Token* @param token* @return*/public String refreshToken(String token) {String refreshedToken;try {final Claims claims = Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token).getBody();refreshedToken = JwtHelper.createToken(getUserId(token), getUserType(token));} catch (Exception e) {refreshedToken = null;}return refreshedToken;}public static void main(String[] args) { // String token = JwtHelper.createToken(1L, "lucy"); // System.out.println(token); // System.out.println(JwtHelper.getUserId(token)); // System.out.println(JwtHelper.getUserName(token));} }

2.7.3、解析request請求中的 token口令的工具AuthContextHolder

import javax.servlet.http.HttpServletRequest;public class AuthContextHolder {//從請求頭token獲取useridpublic static Long getUserIdToken(HttpServletRequest request) {//從請求頭tokenString token = request.getHeader("token");//調(diào)用工具類Long userId = JwtHelper.getUserId(token);return userId;}//從請求頭token獲取namepublic static String getUserName(HttpServletRequest request) {//從header獲取tokenString token = request.getHeader("token");//jwt從token獲取usernameString userName = JwtHelper.getUserName(token);return userName;} }

2.7.4、MD5加密工具類

import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public final class MD5 {/*** 將明文轉(zhuǎn)為密文* @param strSrc 明文* @return 密文*/public static String encrypt(String strSrc) {try {char hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8','9', 'a', 'b', 'c', 'd', 'e', 'f' };byte[] bytes = strSrc.getBytes();MessageDigest md = MessageDigest.getInstance("MD5");md.update(bytes);bytes = md.digest();int j = bytes.length;char[] chars = new char[j * 2];int k = 0;for (int i = 0; i < bytes.length; i++) {byte b = bytes[i];chars[k++] = hexChars[b >>> 4 & 0xf];chars[k++] = hexChars[b & 0xf];}return new String(chars);} catch (NoSuchAlgorithmException e) {e.printStackTrace();throw new RuntimeException("MD5加密出錯!!+" + e);}}}

2.7.5、響應(yīng)結(jié)果類型碼枚舉

import lombok.Getter;/*** 統(tǒng)一返回結(jié)果狀態(tài)信息類**/ @Getter public enum ResultCodeEnum {SUCCESS(200,"成功"),FAIL(201, "失敗"),SERVICE_ERROR(2012, "服務(wù)異常"),ILLEGAL_REQUEST( 204, "非法請求"),PAY_RUN(205, "支付中"),ARGUMENT_VALID_ERROR(206, "參數(shù)校驗錯誤"),LOGIN_ERROR(207, "用戶名或密碼錯誤"),LOGIN_AUTH(208, "未登陸"),PERMISSION(209, "沒有權(quán)限"),SECKILL_NO_START(210, "秒殺還沒開始"),SECKILL_RUN(211, "正在排隊中"),SECKILL_NO_PAY_ORDER(212, "您有未支付的訂單"),SECKILL_FINISH(213, "已售罄"),SECKILL_END(214, "秒殺已結(jié)束"),SECKILL_SUCCESS(215, "搶單成功"),SECKILL_FAIL(216, "搶單失敗"),SECKILL_ILLEGAL(217, "請求不合法"),SECKILL_ORDER_SUCCESS(218, "下單成功"),COUPON_GET(220, "優(yōu)惠券已經(jīng)領(lǐng)取"),COUPON_LIMIT_GET(221, "優(yōu)惠券已發(fā)放完畢"),//2022-02-22LOGIN_CODE(222,"長時間未操作,會話已失效,請刷新頁面后重試!"),CODE_ERROR(223,"驗證碼錯誤!"),TOKEN_ERROR(224,"Token無效!");private Integer code;private String message;private ResultCodeEnum(Integer code, String message) {this.code = code;this.message = message;} }

2.7.6、JSON響應(yīng)結(jié)果格式封裝類

import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data;/*** 全局統(tǒng)一返回結(jié)果類**/ @Data @ApiModel(value = "全局統(tǒng)一返回結(jié)果") public class Result<T> {@ApiModelProperty(value = "返回碼")private Integer code;@ApiModelProperty(value = "返回消息")private String message;@ApiModelProperty(value = "返回數(shù)據(jù)")private T data;public Result(){}// 返回數(shù)據(jù)protected static <T> Result<T> build(T data) {Result<T> result = new Result<T>();if (data != null)result.setData(data);return result;}public static <T> Result<T> build(T body, ResultCodeEnum resultCodeEnum) {Result<T> result = build(body);result.setCode(resultCodeEnum.getCode());result.setMessage(resultCodeEnum.getMessage());return result;}public static<T> Result<T> ok(){return Result.ok(null);}/*** 操作成功* @param data* @param <T>* @return*/public static<T> Result<T> ok(T data){Result<T> result = build(data);return build(data, ResultCodeEnum.SUCCESS);}public static<T> Result<T> fail(){return Result.fail(null);}/*** 操作失敗* @param data* @param <T>* @return*/public static<T> Result<T> fail(T data){Result<T> result = build(data);return build(data, ResultCodeEnum.FAIL);}public Result<T> message(String msg){this.setMessage(msg);return this;}public Result<T> code(Integer code){this.setCode(code);return this;}public boolean isOk() {if(this.getCode().intValue() == ResultCodeEnum.SUCCESS.getCode().intValue()) {return true;}return false;} }

2.7.7、文件上傳工具類

import org.apache.commons.io.filefilter.SuffixFileFilter; import org.springframework.web.multipart.MultipartFile;import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.UUID;/*** @project: zhxy* @description: 上傳文件的工具類*/ public class UploadFile {//存儲文件上傳失敗的錯誤信息private static Map<String, Object> error_result = new HashMap<>();//存儲頭像的上傳結(jié)果信息private static Map<String, Object> upload_result = new HashMap<>();/*** @description: 效驗所上傳圖片的大小及格式等信息...* @param: photo* @param: path* @return: java.util.Map<java.lang.String, java.lang.Object>*/private static Map<String, Object> uploadPhoto(MultipartFile photo, String path) {//限制頭像大小(20M)int MAX_SIZE = 20971520;//獲取圖片的原始名稱String orginalName = photo.getOriginalFilename();//如果保存文件的路徑不存在,則創(chuàng)建該目錄File filePath = new File(path);if (!filePath.exists()) {filePath.mkdirs();}//限制上傳文件的大小if (photo.getSize() > MAX_SIZE) {error_result.put("success", false);error_result.put("msg", "上傳的圖片大小不能超過20M喲!");return error_result;}// 限制上傳的文件類型String[] suffixs = new String[]{".png", ".PNG", ".jpg", ".JPG", ".jpeg", ".JPEG", ".gif", ".GIF", ".bmp", ".BMP"};SuffixFileFilter suffixFileFilter = new SuffixFileFilter(suffixs);if (!suffixFileFilter.accept(new File(path + orginalName))) {error_result.put("success", false);error_result.put("msg", "禁止上傳此類型文件! 請上傳圖片喲!");return error_result;}return null;}/*** @description: (提取公共代碼 : 提高代碼的可重用性)獲取頭像的上傳結(jié)果信息* @param: photo* @param: dirPaht* @param: portraitPath* @return: java.util.Map<java.lang.String, java.lang.Object>*/public static Map<String, Object> getUploadResult(MultipartFile photo, String dirPaht, String portraitPath) {if (!photo.isEmpty() && photo.getSize() > 0) {//獲取圖片的原始名稱String orginalName = photo.getOriginalFilename();//上傳圖片,error_result:存儲頭像上傳失敗的錯誤信息Map<String, Object> error_result = UploadFile.uploadPhoto(photo, dirPaht);if (error_result != null) {return error_result;}//使用UUID重命名圖片名稱(uuid__原始圖片名稱)String newPhotoName = UUID.randomUUID() + "__" + orginalName;//將上傳的文件保存到目標(biāo)目錄下try {photo.transferTo(new File(dirPaht + newPhotoName));upload_result.put("success", true);upload_result.put("portrait_path", portraitPath + newPhotoName);//將存儲頭像的項目路徑返回給頁面} catch (IOException e) {e.printStackTrace();upload_result.put("success", false);upload_result.put("msg", "上傳文件失敗! 服務(wù)器端發(fā)生異常!");return upload_result;}} else {upload_result.put("success", false);upload_result.put("msg", "頭像上傳失敗! 未找到指定圖片!");}return upload_result;} }

2.8、創(chuàng)建數(shù)據(jù)表及數(shù)據(jù)

SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;-- ---------------------------- -- Table structure for tb_admin -- ---------------------------- DROP TABLE IF EXISTS `tb_admin`; CREATE TABLE `tb_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`gender` CHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`password` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`telephone` VARCHAR(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`address` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`portrait_path` VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE ) ENGINE = INNODB AUTO_INCREMENT = 157 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;-- ---------------------------- -- Records of tb_admin -- ---------------------------- INSERT INTO `tb_admin` VALUES (101, 'admin', '女', '21232f297a57a5a743894a0e4a801fc3', '111111@qq.com', '13260161111', '昌平', 'upload/default.jpg'); INSERT INTO `tb_admin` VALUES (102, 'admin1', '男', '21232f297a57a5a743894a0e4a801fc3', '512111559@qq.com', '13260166090', '北京', 'upload/default.jpg'); INSERT INTO `tb_admin` VALUES (103, 'admin2', '男', '21232f297a57a5a743894a0e4a801fc3', '512111559@qq.com', '13260166090', '北京', 'upload/default.jpg'); INSERT INTO `tb_admin` VALUES (104, 'admin3', '男', '21232f297a57a5a743894a0e4a801fc3', '123456@qq.com', '13666666666', '宏福苑', 'upload/default.jpg');-- ---------------------------- -- Table structure for tb_clazz -- ---------------------------- DROP TABLE IF EXISTS `tb_clazz`; CREATE TABLE `tb_clazz` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`number` INT(3) NULL DEFAULT NULL,`introducation` VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`headmaster` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`telephone` VARCHAR(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`grade_name` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE ) ENGINE = INNODB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;-- ---------------------------- -- Records of tb_clazz -- ---------------------------- INSERT INTO `tb_clazz` VALUES (1, '一年一班', 30, '大圣的一年一班好', '大圣', 'dasheng@163.com', '13260166090', '一年級'); INSERT INTO `tb_clazz` VALUES (2, '一年二班', 28, '小張的一年二班好', '小張', 'xiaozhang@163.com', '13260166090', '一年級'); INSERT INTO `tb_clazz` VALUES (3, '二年一班', 35, '小韓的二年一班好', '小韓', 'xiaohan@163.com', '13260166090', '二年級'); INSERT INTO `tb_clazz` VALUES (4, '二年二班', 30, '小強(qiáng)的二年二班好', '小強(qiáng)', 'xiaoqiang@163.com', '13260166090', '二年級'); INSERT INTO `tb_clazz` VALUES (5, '三年一班', 30, '小花的三年一班好', '小花', 'xiaohua@163.com', '13260166090', '三年級'); INSERT INTO `tb_clazz` VALUES (6, '三年二班', 30, '小趙的三年二班好', '小趙', 'xiaozhao@163.com', '13260166090', '三年級'); INSERT INTO `tb_clazz` VALUES (7, '四年一班', 30, '小趙的三年二班好', '小飛', 'xiaofei@163.com', '13260166090', '四年級');-- ---------------------------- -- Table structure for tb_grade -- ---------------------------- DROP TABLE IF EXISTS `tb_grade`; CREATE TABLE `tb_grade` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',`manager` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`telephone` VARCHAR(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`introducation` VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`, `name`) USING BTREE ) ENGINE = INNODB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;-- ---------------------------- -- Records of tb_grade -- ---------------------------- INSERT INTO `tb_grade` VALUES (1, '一年級', '大圣', 'dasheng@163.com', '13260166090', '大學(xué)一年級'); INSERT INTO `tb_grade` VALUES (2, '二年級', '小魏', 'xiaowei@163.com', '13260166090', '大學(xué)二年級'); INSERT INTO `tb_grade` VALUES (3, '三年級', '小李', 'xiaoli@163.com', '13666666666', '三年級,這個班級的孩子們很有才藝'); INSERT INTO `tb_grade` VALUES (4, '五年級', '小麗', 'li@123.com', '13666666666', '這個年級的同學(xué)多才多活力'); INSERT INTO `tb_grade` VALUES (5, '六年級', '小明', 'xiaoming@666.com', '13666666666', '這個年級的主任是小明');-- ---------------------------- -- Table structure for tb_student -- ---------------------------- DROP TABLE IF EXISTS `tb_student`; CREATE TABLE `tb_student` (`id` INT(11) NOT NULL AUTO_INCREMENT,`sno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`name` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`gender` CHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`password` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`telephone` VARCHAR(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`address` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`introducation` VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`portrait_path` VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`clazz_name` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE ) ENGINE = INNODB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;-- ---------------------------- -- Records of tb_student -- ---------------------------- INSERT INTO `tb_student` VALUES (1, '1001', '張小明', '男', 'e10adc3949ba59abbe56e057f20f883e', 'yinyufei@163.com', '13260166090', '北京天通苑', '這個學(xué)生學(xué)習(xí)好', 'upload/default.jpg', '一年一班'); INSERT INTO `tb_student` VALUES (2, '1002', '郭建超', '男', 'e10adc3949ba59abbe56e057f20f883e', 'guojianchao@163.com', '13260166090', '北京昌平', '這個學(xué)生會功夫', 'upload/default.jpg', '一年一班'); INSERT INTO `tb_student` VALUES (3, '1003', '史汶鑫', '男', 'e10adc3949ba59abbe56e057f20f883e', 'shiwenxin@163.com', '13260166090', '北京昌平', '這個學(xué)生酒量好', 'upload/default.jpg', '二年一班'); INSERT INTO `tb_student` VALUES (4, '1004', '高建軍', '男', 'e10adc3949ba59abbe56e057f20f883e', 'gaojianjun@163.com', '13260166090', '北京昌平', '這個學(xué)生會做飯', 'upload/default.jpg', '二年一班'); INSERT INTO `tb_student` VALUES (5, '1005', '鄒偉斌', '男', 'e10adc3949ba59abbe56e057f20f883e', 'zouweibin@163.com', '13260166090', '北京昌平', '這個學(xué)生能吃辣', 'upload/default.jpg', '三年一班'); INSERT INTO `tb_student` VALUES (6, '1006', '劉路', '男', 'e10adc3949ba59abbe56e057f20f883e', 'liulu@163.com', '13260166090', '北京昌平', '這個學(xué)生是學(xué)霸', 'upload/default.jpg', '三年二班'); INSERT INTO `tb_student` VALUES (7, '1007', '龐家仨', '女', 'e10adc3949ba59abbe56e057f20f883e', 'pangjiasan@163.com', '13260166090', '北京昌平', '這個學(xué)生海拔高', 'upload/default.jpg', '三年二班'); INSERT INTO `tb_student` VALUES (8, '1008', '譚帥', '男', 'e10adc3949ba59abbe56e057f20f883e', 'tanshuai@163.com', '13260166090', '北京昌平', '這個學(xué)生想考研', 'upload/default.jpg', '四年一班');-- ---------------------------- -- Table structure for tb_teacher -- ---------------------------- DROP TABLE IF EXISTS `tb_teacher`; CREATE TABLE `tb_teacher` (`id` INT(11) NOT NULL AUTO_INCREMENT,`tno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`name` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`gender` CHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`password` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`telephone` VARCHAR(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`address` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`portrait_path` VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`clazz_name` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE ) ENGINE = INNODB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;-- ---------------------------- -- Records of tb_teacher -- ---------------------------- INSERT INTO `tb_teacher` VALUES (1, '101', '大圣', '女', '123456', 'dasheng@163.com', '13260166090', '北京昌平', 'upload/default.jpg', '一年一班'); INSERT INTO `tb_teacher` VALUES (2, '102', '小張', '男', 'e10adc3949ba59abbe56e057f20f883e', 'xiaozhang@163.com', '13260166090', '北京海淀', 'upload/default.jpg', '一年二班'); INSERT INTO `tb_teacher` VALUES (3, '103', '小韓', '男', 'e10adc3949ba59abbe56e057f20f883e', 'xiaohan@163.com', '13260166090', '北京朝陽', 'upload/default.jpg', '二年一班'); INSERT INTO `tb_teacher` VALUES (4, '104', '小強(qiáng)', '男', 'e10adc3949ba59abbe56e057f20f883e', 'xiaoqiang@163.com', '13260166090', '北京通州', 'upload/default.jpg', '二年二班'); INSERT INTO `tb_teacher` VALUES (5, '105', '小花', '男', 'e10adc3949ba59abbe56e057f20f883e', 'xiaohua@163.com', '13260166090', '北京順義', 'upload/default.jpg', '三年一班'); INSERT INTO `tb_teacher` VALUES (6, '106', '小趙', '男', 'e10adc3949ba59abbe56e057f20f883e', 'xiaozhao@163.com', '13260166090', '北京東城', 'upload/default.jpg', '三年二班'); INSERT INTO `tb_teacher` VALUES (7, '107', '小飛', '男', 'e10adc3949ba59abbe56e057f20f883e', 'xiaofei@163.com', '13260166090', '北京西城', 'upload/default.jpg', '四年一班'); INSERT INTO `tb_teacher` VALUES (8, '108', '秀秀', '女', 'e10adc3949ba59abbe56e057f20f883e', '123456@123.com', '13855555555', '海淀', 'upload/12fe07bf8b6d493b96294f1ef0552339default.jpg', '一年一班');SET FOREIGN_KEY_CHECKS = 1;

2.9、根據(jù)數(shù)據(jù)表準(zhǔn)備pojo、mapper、controller、service及其實現(xiàn)類

@Data @AllArgsConstructor @NoArgsConstructor @TableName("tb_admin") public class Admin {@TableId(value = "id", type = IdType.AUTO)private Integer id;private String name;private Character gender;private String password;private String email;private String telephone;private String address;private String portraitPath; // 頭像圖片路徑 } @Mapper public interface AdminMapper extends BaseMapper<Admin> { } public interface AdminService extends IService<Admin> { } @Service("adminServiceImpl") @Transactional public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements AdminService { }

3、測試訪問首頁的問題:數(shù)據(jù)庫版本不一致

完成以上搭建后,應(yīng)該可以實現(xiàn)對首頁的訪問,但我這里失敗了。后來發(fā)現(xiàn)是因為數(shù)據(jù)庫版本的不一致的問題。

由于我的 MySQL 版本為 5.7,這里需要在 pom.xml 中更改導(dǎo)入的數(shù)據(jù)庫驅(qū)動版本

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency>

application.yaml 中數(shù)據(jù)庫的配置也要與 5.7 版本的格式對應(yīng)

driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/zhxy_db?characterEncoding=utf-8&useSSL=false #&serverTimezone=GMT%2B8username: rootpassword: 123456

總結(jié)

以上是生活随笔為你收集整理的【无标题】智慧校园管理系统-毕设项目(包含数据库)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

成人国产精品久久久久久亚洲 | 97碰碰精品嫩模在线播放 | 韩国精品在线观看 | 久久九九精品久久 | 天天摸天天操天天爽 | 黄网站色成年免费观看 | 亚洲精品中文字幕视频 | 韩国三级一区 | 麻豆国产露脸在线观看 | 伊人资源视频在线 | 国产乱对白刺激视频在线观看女王 | 成年人免费在线观看网站 | 久久精品亚洲 | 香蕉国产91 | 91av视频在线免费观看 | 992tv在线观看 | 日本精品久久久一区二区三区 | 激情视频免费观看 | 九九免费在线观看视频 | 国产精品久久久久一区二区国产 | 久久人人射 | 婷婷色综合 | 成人av电影免费 | 97色综合 | 免费国产在线精品 | 日韩在线视频观看免费 | 96精品视频 | 99久久婷婷国产一区二区三区 | 人人干人人草 | 久久精品综合一区 | 人人精品 | 韩国三级在线一区 | 91看片淫黄大片在线播放 | 午夜精品久久久久久久久久久 | 亚洲成人黄色av | 中文资源在线观看 | 人人看看人人 | 四虎永久免费在线观看 | 六月丁香激情综合色啪小说 | 波多野结衣在线观看视频 | av成人免费在线看 | 国产视频97 | 国产999在线 | 99爱在线| 天天干天天操av | a√天堂中文在线 | 国产一区在线播放 | 成人在线免费看视频 | 在线观看岛国片 | 亚洲精品久久久久中文字幕二区 | 国产精品视频大全 | 91视频亚洲 | 日韩免费视频播放 | 国产精品国产亚洲精品看不卡 | 国产精品免费观看久久 | 日韩中文字幕免费看 | 久久久国产精品一区二区三区 | 亚洲精品毛片一级91精品 | 一级片在线 | 欧美日韩一区二区三区在线观看视频 | 日韩精品在线一区 | 亚洲成人国产 | 九九在线国产视频 | 国产一级精品绿帽视频 | 国产精品精品国产婷婷这里av | 国产成人一区二区三区免费看 | 又色又爽又黄高潮的免费视频 | 日日干美女 | 99精品视频网站 | 欧美在线不卡一区 | 国产在线综合视频 | 久久精品综合视频 | 久久国产乱 | 99精品久久久久久久 | 91精品国产一区二区在线观看 | av三级在线免费观看 | 国产一二三在线视频 | 免费观看日韩 | 欧美精品资源 | 五月花丁香婷婷 | 在线超碰av | 亚洲综合色丁香婷婷六月图片 | 亚洲午夜精 | 色婷婷久久| 精品久久片 | 69久久久久久久 | 免费av网址在线观看 | 麻豆91精品91久久久 | 91精品久久久久久综合乱菊 | 久久久久亚洲精品国产 | 免费看一及片 | 91九色综合| 中文字幕欲求不满 | 97成人超碰 | 黄色亚洲大片免费在线观看 | 日韩二区在线 | 免费三级黄 | 色人久久 | 亚洲 欧美 另类人妖 | 91成人精品一区在线播放69 | 四虎国产视频 | 欧美一级久久久 | 国产 一区二区三区 在线 | 国产精品一级视频 | 欧美做受高潮电影o | 欧美一区二区三区在线视频观看 | 欧美精品久久人人躁人人爽 | 午夜视频在线观看一区二区三区 | 国产一级a毛片视频爆浆 | 天天婷婷| 91亚洲精品久久久久图片蜜桃 | 天天插天天射 | 349k.cc看片app | 在线看国产精品 | 免费av在线| 天天曰天天干 | 91手机视频| 特级西西444www高清大视频 | 激情丁香在线 | 成人av免费网站 | 九九在线国产视频 | 日韩久久视频 | www.午夜| 国产视频资源在线观看 | 久久久久久久久久久网站 | 日韩中文字幕免费视频 | 99视频在线免费观看 | 96视频免费在线观看 | 久热电影 | 国产精品免费一区二区 | 五月婷婷一区二区三区 | 国产999精品久久久久久 | 国产精品久久婷婷六月丁香 | 日韩免费视频播放 | 91av久久 | 婷婷成人综合 | 99久久久国产免费 | 99热这里只有精品免费 | 在线观看亚洲专区 | 亚洲天天摸日日摸天天欢 | 日本不卡123区 | 欧美日韩性 | 丁香狠狠 | 99久久er热在这里只有精品66 | 欧美福利在线播放 | 中文字幕在线影院 | 三上悠亚在线免费 | 99久久日韩精品视频免费在线观看 | 91人人澡人人爽 | 欧美大片大全 | 欧美激情操| 日韩av免费一区 | 97精品国产aⅴ | 亚洲乱码国产乱码精品天美传媒 | 涩涩网站在线播放 | 99在线看| 免费观看www视频 | 久久高清片 | 黄色电影在线免费观看 | 久久系列 | 六月丁香在线观看 | av电影久久 | 亚洲精品白浆高清久久久久久 | 久草在线免费在线观看 | 国产视频精品久久 | 久久精品视频免费 | 国产黄色免费 | 国产日韩视频在线观看 | 国产色婷婷精品综合在线手机播放 | 国产精品久久久久三级 | 在线观看色视频 | 超碰人在线 | 黄色aaa毛片| 狠狠色丁香婷婷综合久久片 | 午夜av片 | 欧美日韩二区在线 | 久久九九免费视频 | 综合久久婷婷 | 欧美在线一二 | 精品在线观看一区二区 | 蜜臀av麻豆 | 久久在线精品视频 | 色欧美视频 | 99久在线精品99re8热视频 | 精品在线99 | 欧美精品亚洲二区 | 国产一区二区不卡视频 | 99免在线观看免费视频高清 | 国产永久免费高清在线观看视频 | 91中文字幕在线播放 | 中文字幕在线专区 | 黄色1级毛片 | 午夜久久久精品 | 亚洲成人午夜在线 | 国产在线黄 | 国产视频999 | 国产99色| 免费麻豆网站 | 久精品视频在线观看 | 成年人网站免费在线观看 | 911国产 | 韩日精品视频 | 毛片一区二区 | 免费看黄在线网站 | 免费国产黄线在线观看视频 | 五月天六月色 | 国产精品黄网站在线观看 | 国产精品日韩在线观看 | 欧美日韩国产综合网 | 国内小视频 | av资源免费看 | 国产精品一区二区三区久久久 | 精品一二区 | 久久久久女人精品毛片九一 | 精品一区二区三区久久 | 美女视频久久黄 | 久久y| 欧美午夜精品久久久久久浪潮 | 亚洲精品免费观看视频 | 色www精品视频在线观看 | 国产中文字幕在线免费观看 | 91精品在线免费视频 | 99国产成+人+综合+亚洲 欧美 | 日韩毛片在线一区二区毛片 | 黄色av电影 | 丁香综合激情 | 91精品高清| 国产精品二区在线 | 99久久久久久久久久 | 在线视频欧美日韩 | 中文字幕在线国产 | 久久伊人国产精品 | 久久综合婷婷综合 | 成人午夜在线观看 | 国产精品一区专区欧美日韩 | 97精品久久人人爽人人爽 | 久久av网址 | 综合久久久 | 日本巨乳在线 | 免费网站黄 | av免费片| 久久精品国产亚洲精品 | 久久精品久久99 | 噜噜色官网 | 99视频在线精品国自产拍免费观看 | 中文字幕资源网在线观看 | 日韩三级精品 | 亚洲国产精品成人综合 | 深夜免费福利网站 | 亚洲精品影视在线观看 | 精品美女久久久久久免费 | 国产午夜麻豆影院在线观看 | 国产精品11| 久久亚洲影视 | 国产99免费 | 亚洲伊人av | 国产美女免费视频 | 在线国产高清 | 久综合网| 亚洲 中文 欧美 日韩vr 在线 | 亚洲一区久久 | 日韩精品欧美视频 | 国产在线观看一 | 欧美日本中文字幕 | 国产免费又爽又刺激在线观看 | 久久99国产精品免费网站 | 成人影视免费 | 国产精品一区在线观看 | 色综合久久66 | 午夜 免费 | 午夜视频在线观看一区二区三区 | 国产精品久久久久久久毛片 | 欧美黄色高清 | 免费福利视频网站 | 在线看的av网站 | 亚欧洲精品视频在线观看 | 亚洲 欧美 综合 在线 精品 | 成人av免费在线 | 中文字幕国产视频 | 日韩丝袜视频 | 免费看的黄网站软件 | 99视频在线观看免费 | 日韩视频一区二区在线观看 | 免费的国产精品 | 天天操天天射天天插 | 国产免费视频一区二区裸体 | 最新一区二区三区 | 精品久久久久久久久久 | 国产粉嫩在线 | 亚洲精品网页 | 久久99久久99精品免观看软件 | 午夜av不卡 | 国产黄色片久久 | 国产午夜一区 | 成人精品电影 | 成人高清在线 | 成人三级av| 热久久视久久精品18亚洲精品 | 免费日韩高清 | 久久成年人视频 | 亚洲精品午夜久久久久久久 | 色偷偷88888欧美精品久久久 | 91成人免费在线 | 午夜少妇一区二区三区 | 五月婷婷在线观看视频 | 亚洲综合视频在线 | 日韩欧美极品 | av资源中文字幕 | 亚洲精品久久久久中文字幕二区 | 亚洲精品美女久久17c | 免费黄色av | 久久99国产视频 | 人人澡超碰碰97碰碰碰软件 | 草久中文字幕 | 精品一区二区av | 国产手机精品视频 | 日本久久久亚洲精品 | 天天色天天草天天射 | av色一区| 91精品国产综合久久福利 | 国产v亚洲v | 日韩在线精品一区 | 国产99久久精品一区二区永久免费 | 精品一区在线看 | 精品国产一区二区三区在线观看 | 麻豆久久精品 | 国产一性一爱一乱一交 | 97超碰人人 | 精品亚洲va在线va天堂资源站 | 西西444www大胆高清视频 | 2019中文字幕第一页 | 久久99热精品这里久久精品 | 中文高清av| 日日婷婷夜日日天干 | 天天综合网国产 | 日韩理论在线视频 | 97超碰资源网| 国产精品女 | 亚洲最新av在线网站 | 天堂在线免费视频 | 一二区av | 国产呻吟在线 | 成人在线超碰 | 亚洲高清国产视频 | 中文字幕在线观看完整版电影 | 激情综合色综合久久综合 | 国产成人av一区二区三区在线观看 | 成人午夜剧场在线观看 | 亚洲免费av一区二区 | 欧美性超爽 | 99国产精品一区 | 97夜夜澡人人双人人人喊 | 夜夜躁天天躁很躁波 | 成人免费色 | 日韩欧美网址 | 美女网站视频久久 | 黄色毛片大全 | 成人一级片免费看 | 成年人黄色免费网站 | 最新国产在线视频 | 欧美老人xxxx18 | 欧美做受高潮1 | 中文 一区二区 | 韩日精品在线 | 国产欧美在线一区二区三区 | 在线观看的av网站 | 国产福利91精品一区二区三区 | 亚洲国产成人久久综合 | 国内精品久久久久影院一蜜桃 | 亚洲天堂网站 | 中文字幕在线观看第三页 | 久久久久久久久久久久久9999 | 国产成人精品一区二区 | 欧美国产日韩在线观看 | 天天爱天天色 | 亚洲精选久久 | 久久久久国产免费免费 | 亚洲精品高清在线观看 | 在线免费黄色片 | 500部大龄熟乱视频 欧美日本三级 | 13日本xxxxxⅹxxx20 | 国产精品18久久久久久久久久久久 | 国产精品私人影院 | 一区二区三区高清 | 国产在线观看你懂得 | 国产中文字幕在线免费观看 | 国产一区二区免费看 | 激情网在线观看 | 午夜精品福利在线 | 国产伦理久久精品久久久久_ | 免费观看9x视频网站在线观看 | 在线不卡视频 | 国产婷婷一区二区 | 日本三级人妇 | 国产美女精品 | 四虎免费在线观看 | 久久久久北条麻妃免费看 | 国产精品日韩欧美一区二区 | 97超碰在线播放 | 亚洲最新精品 | 97视频免费在线观看 | 亚洲精品中文字幕视频 | 国产精品久久电影观看 | 91中文字幕网 | 日本一区二区免费在线观看 | 国产一区二区精品在线 | 国产999| av免费黄色 | 久久小视频 | 精品高清美女精品国产区 | 欧美性黄网官网 | 中文乱码视频在线观看 | 欧美日韩一二三四区 | wwwww.国产| 99久久精品久久亚洲精品 | 亚洲成a人片77777潘金莲 | 欧美日韩午夜 | 久久精品99国产精品日本 | 亚洲国产成人在线 | 日日操操 | 一区二区三区视频网站 | 高清免费在线视频 | 日日摸日日 | 久久成人在线 | 日韩午夜电影 | 国产精品18毛片一区二区 | 久久免费在线观看 | 色婷婷激情四射 | 超碰在线免费97 | 日韩欧美国产激情在线播放 | 成人免费一区二区三区在线观看 | av福利第一导航 | 99精品在线免费 | 国产在线综合视频 | 在线免费观看黄色小说 | 在线播放亚洲 | 五月宗合网 | 国产伦精品一区二区三区免费 | 国产 在线观看 | h动漫中文字幕 | 亚洲国产网址 | 久久亚洲成人网 | 国产亚洲午夜高清国产拍精品 | 亚洲精品久久久久久久不卡四虎 | 日本特黄一级片 | 久久高视频 | 国产精品久久久久久久久久尿 | 国产丝袜一区二区三区 | 国产一区二区免费看 | 亚洲国产成人精品电影在线观看 | 中文字幕在线成人 | 久久久久久久久久免费 | 在线a视频 | 波多野结衣一区二区 | 成人免费视频播放 | 国产精品一区二区电影 | 在线成人欧美 | 在线观看播放av | 精品久久精品 | 亚洲精品国产成人av在线 | 国产a高清| 亚洲伦理一区 | 中文字幕色婷婷在线视频 | 国内精品久久久精品电影院 | 久久99热这里只有精品 | 亚洲综合五月 | 亚洲欧美激情插 | 国产专区精品视频 | 特级黄色一级 | 国产精品一区二区 91 | 日日夜夜网 | 操老逼免费视频 | 人人澡澡人人 | 国产一区二三区好的 | 成人久久影院 | 亚洲另类视频 | 狠狠干夜夜操天天爽 | 就要色综合 | 欧美日韩高清免费 | 国产手机视频在线观看 | 久久一久久 | 国产福利免费在线观看 | 亚洲精品网址在线观看 | 久草久热 | 激情视频免费观看 | 午夜av在线免费 | 日韩在线观看一区二区 | 亚洲精品视频在线看 | 日韩理论片中文字幕 | 国产女v资源在线观看 | 色婷婷亚洲婷婷 | 视频在线99 | 六月婷色 | 久久精品一二三区 | 日本中文字幕在线 | 三级性生活视频 | 中文字幕第一页av | 毛片视频电影 | 日本久久免费电影 | 午夜久久 | 中文字幕影视 | 草久久久 | 久久 精品一区 | 欧美少妇xxx | 国产精品第一页在线 | 毛片无卡免费无播放器 | 久久99中文字幕 | 国产成人免费av电影 | 久久精品视频在线看 | 亚洲综合视频在线 | 精品欧美一区二区精品久久 | 久久线视频 | 波多野结衣一区二区三区中文字幕 | 久久精品中文字幕免费mv | 成年人毛片在线观看 | 最近av在线| 激情久久一区二区三区 | 高清在线观看av | 亚洲精品视频在线观看免费视频 | 国产精品一级在线 | 五月综合激情 | 在线电影 一区 | 国产成人精品久久久久 | 欧美日韩免费在线视频 | 国产系列在线观看 | 久久人人插 | 日韩av免费在线看 | 国产亚洲精品久久久久久 | 国产成人精品综合久久久 | 四虎www.| 婷婷六月天天 | 午夜 久久 tv | av7777777| 欧美人体xx | 91麻豆精品| 六月婷婷久香在线视频 | 国产最新在线观看 | 免费看国产黄色 | 日韩在线观看av | 久久精品久久久久久久 | 久久av中文字幕片 | 99精品免费久久久久久久久 | 久久中文字幕导航 | 国产在线观看一区 | 亚洲精品视频在线看 | 日操操 | 夜夜躁日日躁狠狠躁 | www.福利 | 久久草在线精品 | 日本韩国精品在线 | 久草 | 色偷偷88欧美精品久久久 | 激情欧美在线观看 | 69国产盗摄一区二区三区五区 | 狠狠色噜噜狠狠狠狠2022 | 激情丁香月 | 极品嫩模被强到高潮呻吟91 | 日本色小说视频 | 91桃花视频 | 日韩城人在线 | 日日干激情五月 | 亚洲欧洲精品一区 | 最近更新好看的中文字幕 | 狠狠干天天操 | 亚洲视频精品在线 | 九九在线免费视频 | 国产精品 国产精品 | 国产一级特黄毛片在线毛片 | 国产精品99精品久久免费 | 欧美资源 | 国产亚洲精品久久久久久无几年桃 | 91精品国产一区 | 最近中文字幕在线 | 波多野结衣电影一区二区 | 丁香视频五月 | 亚洲精品456在线播放乱码 | 亚洲黄a | 色97在线 | 日韩中文字幕91 | 毛片.com | 99久久99久久精品 | 日韩专区中文字幕 | 成人久久视频 | 中文字幕电影高清在线观看 | 狠狠干夜夜操 | 五月激情丁香婷婷 | 欧洲视频一区 | 久久综合日 | 久久亚洲人 | 欧美 高跟鞋交 xxxxhd | 久久国产精品偷 | 91在线超碰 | 五月综合色婷婷 | 99国产一区二区三精品乱码 | 欧美另类交人妖 | 久久精品人人做人人综合老师 | www99精品| 日韩久久久久久久 | 91精品久久久久久久91蜜桃 | 日韩中文字幕网站 | 玖玖色在线观看 | 国产 中文 日韩 欧美 | 狠色狠色综合久久 | 国产精国产精品 | 一区二区三区在线不卡 | 四虎在线视频免费观看 | 国产欧美日韩一区 | 国产看片 色 | 国产剧情一区二区 | 国产午夜精品在线 | 国产精品电影一区二区 | 亚洲精品视频一二三 | 国产高清在线一区 | 欧美精品久久久久久久久久久 | 九九热精 | 精品国产免费久久 | 免费网站看v片在线a | 国产主播大尺度精品福利免费 | 最近更新中文字幕 | 中文字幕有码在线播放 | 中文字幕一区二区三区视频 | 国产精品综合在线观看 | 欧美老女人xx| 国产成人精品av在线 | 美女网站黄免费 | 免费亚洲黄色 | 亚洲国产日韩在线 | 色婷婷色 | 国产香蕉97碰碰久久人人 | 亚洲精品动漫在线 | 国产探花视频在线播放 | 五月婷婷激情 | 久综合网| 狠狠夜夜| 国产精品去看片 | 97色在线 | 婷婷激情综合五月天 | 美女视频黄免费的 | 在线看片成人 | 欧美精品免费在线观看 | 久久久久国产a免费观看rela | 国产高清一 | 国产区在线视频 | 一区二区三区韩国免费中文网站 | 亚洲一级片| 国产一区二区在线视频观看 | 激情五月婷婷激情 | 色网站免费在线看 | 亚洲视频一 | 一级免费片 | 人人玩人人添人人澡超碰 | 一级片黄色片网站 | 999国产精品视频 | 国产1区2 | 久久久精品欧美一区二区免费 | 日韩高清精品免费观看 | 久久狠狠亚洲综合 | 国产在线观| 日本精品视频免费观看 | 国产在线久草 | 在线观看视频亚洲 | 天天综合视频在线观看 | 日韩欧美一区二区在线播放 | 91高清完整版在线观看 | 欧美精品久久久久 | 国产视频中文字幕在线观看 | 欧美另类xxxx | 麻豆免费在线播放 | 88av视频 | 综合激情伊人 | 日日夜夜免费精品 | 久久8| 81精品国产乱码久久久久久 | 啪啪av在线| 精品久久一区二区三区 | 午夜国产福利视频 | 亚洲国产综合在线 | 午夜电影久久 | 亚洲成人资源 | 婷婷色中文字幕 | 97狠狠干| 成年人在线免费看视频 | 欧美a影视 | 91视频在线观看免费 | 精品毛片在线 | 超碰97中文 | 美女网站免费福利视频 | 中文字幕在线不卡国产视频 | 日韩av免费观看网站 | 久久欧美在线电影 | 麻豆国产在线播放 | 首页中文字幕 | 免费中文字幕在线观看 | 亚洲国产精品推荐 | 午夜精品久久久久久久久久久久久久 | 国产女人18毛片水真多18精品 | 国产精品久久久久久久av大片 | 99久久久国产精品免费99 | 日韩免费在线网站 | 国产精品成人免费精品自在线观看 | 菠萝菠萝在线精品视频 | 黄色成年片 | 国产视频中文字幕在线观看 | 欧美精品一区二区蜜臀亚洲 | 精品视频专区 | 欧美激情视频一区二区三区免费 | 免费又黄又爽视频 | 97成人精品视频在线播放 | 中文字幕在线不卡国产视频 | 国产一区二区精品久久 | 国产一区二区三区在线免费观看 | 91精品国产乱码 | 国产色视频网站 | 日韩欧美在线综合网 | 久久免费看av | 午夜精品成人一区二区三区 | 激情视频免费观看 | 久久国产视频网 | 激情av网址| 日韩精品专区在线影院重磅 | 91精品伦理 | 天天搞天天干天天色 | 国产精品美女久久久久久久久久久 | 色伊人网 | 国产午夜在线 | 在线观看黄av | 国产原创中文在线 | 久久久久久高潮国产精品视 | 国产精品免费久久久久久久久久中文 | 在线观看av网站 | 欧美一二三专区 | 狠狠狠色丁香婷婷综合久久五月 | 亚洲午夜精品福利 | 91免费观看 | 亚洲免费av在线播放 | 色香蕉视频 | 一区二区欧美在线观看 | 国产人成一区二区三区影院 | 成人精品亚洲 | 亚洲做受高潮欧美裸体 | 一级a性色生活片久久毛片波多野 | 天天av在线播放 | 黄色免费网站下载 | 久久久久伊人 | 久久久久免费网 | 亚洲第二色 | 日韩成人免费观看 | 国内视频在线 | 69国产盗摄一区二区三区五区 | 国产精品不卡一区 | 88av色 | 香蕉影院在线播放 | 亚洲九九九在线观看 | 日日日视频 | 国产精品入口66mio女同 | 888av| 一区二区三区免费在线观看视频 | 久久伊人婷婷 | 久久国产网 | 操综合| 亚洲精品在线视频观看 | 1区2区视频 | 欧美伦理电影一区二区 | 7799av | 亚洲精品麻豆视频 | 国产亚洲视频在线免费观看 | 日韩视频免费观看高清完整版在线 | 国产成人久久77777精品 | 日批视频 | 国产精品区一区 | av成人资源| 婷婷丁香国产 | 日韩免费视频一区二区 | 夜夜躁日日躁狠狠久久av | 国产精品69av | 黄色成人在线观看 | 婷婷在线网 | 亚洲夜夜网 | 日韩一区二区三区免费视频 | 日本久久久久久久久久久 | 亚洲最大的av网站 | 中文字幕在线看视频国产 | 国产视频中文字幕 | 亚洲va天堂va欧美ⅴa在线 | 四虎亚洲精品 | 免费三级网 | 人人爽人人看 | 国产精品久久久一区二区三区网站 | 国产分类视频 | 在线观看国产日韩欧美 | 黄色日本片 | 2019免费中文字幕 | 国产精品videossex国产高清 | 这里只有精品视频在线 | 中文字幕 欧美性 | 色香天天 | 久久久久久国产精品免费 | 成人黄色电影免费观看 | 夜夜澡人模人人添人人看 | 五月天综合网 | 五月天久久 | 精品久久一区二区三区 | 丁香婷婷久久久综合精品国产 | 久久精品视频免费播放 | 久久国产欧美日韩 | 五月婷婷综合激情 | 国产91免费观看 | 亚洲视频免费在线看 | a视频免费 | 最新国产一区二区三区 | 狠狠色狠狠综合久久 | 国产精品午夜在线观看 | 久草免费色站 | 精品国产综合区久久久久久 | 国产精品孕妇 | 免费观看国产视频 | 正在播放国产一区 | 亚洲人人爱 | 久久国产精品99国产 | 97看片 | 99精品偷拍视频一区二区三区 | 黄色片视频在线观看 | 男女免费视频观看 | 日韩久久久久久 | 国产在线精品观看 | 精品视频在线视频 | 国语麻豆| 国产成免费视频 | 国产高清视频在线观看 | 三上悠亚一区二区在线观看 | 欧美在线视频第一页 | 久久一区二区三区四区 | 99精品久久久久久久久久综合 | 天堂av一区二区 | 亚洲国产精品久久 | 在线视频区 | 日韩黄色一区 | 久久精品视频播放 | 免费在线中文字幕 | 久久综合婷婷 | 五月婷婷在线观看视频 | 久久精品成人 | 奇米7777狠狠狠琪琪视频 | 欧洲高潮三级做爰 | 在线你懂的视频 | 久草在线视频首页 | 97色资源| 国产毛片在线 | 久久综合久久综合九色 | 久久国产日韩 | 欧美精品在线免费 | 婷婷综合 | 国产精品原创在线 | 九九久久久久久久久激情 | 粉嫩av一区二区三区四区五区 | 91视频免费 | 国产精品亚州 | 国产精品久久久777 成人手机在线视频 | 国产精品专区h在线观看 | 99re久久资源最新地址 | 中文字幕第一页在线视频 | 三级a视频 | 国产精品九九九九九 | www99精品 | 伊人国产在线播放 | 亚洲国产精品女人久久久 | 狠狠狠狠狠操 | 久久久久久久久久影院 | 亚洲精品一区二区三区在线观看 | 成年人在线视频观看 | 午夜18视频在线观看 | 久久久久久久精 | 久久久久久久久久久久影院 | 久久国产精品区 | 人人艹视频 | 国内精品久久久久影院日本资源 | 国产精品一区二区中文字幕 | 久久国产精品偷 | 91av电影 | 在线视频精品播放 | 人人爽人人爽人人爽学生一级 | 国产精品久久久久四虎 | 最近2019中文免费高清视频观看www99 | 欧美日韩成人一区 | 免费久久久 | www.av免费| 一本一本久久aa综合精品 | 亚洲国产精品久久久久 | 91精品国产自产老师啪 | 91福利社区在线观看 | 在线视频91 | 国产美女免费视频 | 99免费在线观看 | 在线视频1卡二卡三卡 | www.91av在线 | 69国产成人综合久久精品欧美 | 在线看国产日韩 | av观看在线观看 | 在线中文字幕播放 | 99九九99九九九视频精品 | 天天操综合 | 2019av在线视频 | 国产精品久久久久三级 | 久久免费看毛片 | av一区二区三区在线观看 | 久久另类小说 | 国产精品麻豆果冻传媒在线播放 | 亚洲人成在线电影 | 国产香蕉视频 | 中文字幕韩在线第一页 | 2018精品视频 | 亚洲 欧美 精品 | 狠狠色丁香婷婷综合 | 在线亚洲天堂网 | av网站在线观看播放 | 免费看成人a | 天天干天天综合 | 日韩av电影一区 | 日本精品视频在线 | 中文字幕中文中文字幕 | 日日干天天操 | 成人黄大片 | 波多野结衣精品 | 国产精品嫩草影视久久久 | 全久久久久久久久久久电影 | 99久久网站 | 日日天天干 | 黄色精品一区 | 五月天婷婷在线观看视频 | 日韩欧美一区二区三区在线 | 国产精华国产精品 | 91在线看黄 | 日韩久久片 | 久久伦理网 | 亚洲视频每日更新 | 精品国产乱码 | 97视频网址 | 国产一级视屏 | 又爽又黄又刺激的视频 | 免费观看v片在线观看 | 国产视频在线观看一区 | 97人人模人人爽人人喊网 | 五月激情六月丁香 | 国产一级免费片 | 国产视频不卡一区 | 99精品视频在线观看视频 | 天天干天天干天天干天天干天天干天天干 | 黄色影院在线免费观看 | 96国产在线 | 成人va天堂| 精品女同一区二区三区在线观看 | 三上悠亚一区二区在线观看 | 欧美日韩国产一区二区三区在线观看 | 最近日韩免费视频 | 日日夜夜中文字幕 | h网站免费在线观看 | 成人va在线观看 | 日韩精品一区二区三区在线视频 | 2022久久国产露脸精品国产 | 久久亚洲私人国产精品 | 国产精品自拍在线 | 在线天堂8√| www.黄色在线 | 国内精品国产三级国产aⅴ久 | 久草视频在线免费看 | 91九色最新地址 | 久久精品久久久精品美女 | 在线国产一区二区 | 国产精品毛片完整版 | 国精产品永久999 | 亚洲精品一区中文字幕乱码 | 国产精品一区二区免费在线观看 | 国产亚洲在线观看 | 成年美女黄网站色大片免费看 | 色九九影院 | 久久99久久99久久 | 韩国av一区二区三区在线观看 | 黄色毛片在线观看 | 久久这里只有精品视频99 | 国产精品嫩草影院9 | 99这里精品| 欧美一级爽 | 国产91欧美 | 亚洲视频1| 69国产盗摄一区二区三区五区 | 国产精品久久久久久久久久久久午 | 福利一区在线视频 | 日韩在线精品 | 亚洲精品久久久久中文字幕m男 | 日韩国产在线观看 | 爱av在线网| 91网站在线视频 | 色婷婷六月天 | 日韩欧美精品在线观看 | 麻豆传媒视频在线播放 | 久久人人爽人人爽 | 天堂资源在线观看视频 | 中文在线免费视频 |