異常一:IDEA連線mysql8.0.16,報[08001] Could not create connection to database server.
Connection to icloud_db@localhost failed.[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.
原因是Mysql版本比較高出現的系列適配問題。
解決方式:
1. mysql5.5 使用:com.mysql.jdbc.Driver而8.0.*版本用com.mysql.cj.jdbc.Driver
2. 追加useSSL+serverTimezone+characterEncoding+autoReconnect
jdbc:mysql://localhost:3306/icloud_db?useSSL=false&serverTimezone=Hongkong&characterEncoding=utf-8&autoReconnect=true
mysql的連線驅動配置在這個位置,idea--->Database--->"+"---->>data source--->>mysql
------------------------------------------------------------------ 分割線 ----------------------------------------------------------------
異常二: IDEA中,使用generator外掛生成mybatis程式碼,遇到Could not autowire. No beans of 'xxx' type found.異常
解決方式1:mapper檔案上加@Repository註解,這是從sping2.0新增的一個註解,用於簡化 Spring 的開發,實現資料訪問;
2:在mapper檔案上加@Component註解,把普通pojo例項化到spring容器中;
------------------------------------------------------------------ 分割線 ----------------------------------------------------------------
異常三: TypeException: The alias 'Criterion' is already mapped to the value ****
通過mybaits外掛自動生成程式碼(多張資料庫表的mapper檔案)時,報如上異常;
原因:是因為mybatis2.0.1自身缺陷導致的bug,而且mybatis預設使用2.0.1。
解決方式:使用mybatis-spring 2.0.0 或 2.0.2-SNAPSHOT
------------------------------------------------------------------ 分割線 ----------------------------------------------------------------
異常四: FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
原因:通過MultipartFile檔案上傳時,報該異常。原因:上傳檔案大小超過tomcate的最大限制;
解決方式:
方式一:在application.properties中加入配置,改變上傳檔案最大值;
1、1.4版本之前配置方式:
multipart.maxFileSize=2000Mb
multipart.maxRequestSize=2500Mb
2、1.4版本後修改為:
spring.http.multipart.maxFileSize=2000Mb
spring.http.multipart.maxRequestSize=2500Mb
3、2.0版本之後修改該為:
spring.http.multipart.max-file-size=2000Mb
spring.http.multipart.max-request-size=2500Mb
方式二:在啟動類 Application中新增配置,我是採取這種方式解決的。
1.給該類新增@Configuration 註解,
2.在該類中新增該方法;
@Beanpublic MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //檔案最大 factory.setMaxFileSize("10240KB"); //KB,MB /// 設定總上傳資料總大小 factory.setMaxRequestSize("102400KB"); return factory.createMultipartConfig();}
------------------------------------------------------------------ 分割線 ----------------------------------------------------------------
異常五:Could not resolve view with name 'xxxxxxxxxxx' in servlet with name 'dispatcherServlet'"
出現該異常的原因:由於我的請求引數比較多,於是把它們封裝成一個類,然後又在.mapper檔案中引用了該類;而且Controller類用@Controller註解的;
解決方式:
給Controller類新增@RestController註解;
@Controller與@RestController區別如下
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
------------------------------------------------------------------ 分割線 ----------------------------------------------------------------
異常六: FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of ...
出現原因:上傳的檔案大小超過最大限制
解決方式:
在你的Application入口類中加入,multipartConfigElement方法
/** * 設定檔案上傳最大值 * * @return */@Beanpublic MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //檔案最大 factory.setMaxFileSize(DataSize.of(50, DataUnit.MEGABYTES)); //MB /// 設定總上傳資料總大小 factory.setMaxRequestSize(DataSize.of(70, DataUnit.MEGABYTES)); return factory.createMultipartConfig();}