day01
1、由于自己電腦原先裝的數(shù)據(jù)庫為SQL Server2008R2版,連接數(shù)據(jù)庫時出現(xiàn)以下錯誤
1)端口錯誤,視頻上mysql端口為3306, SQL server端口應(yīng)為1433
2)無法打開SQL server登錄界面
2、使用的工具為IDEA,基本操作還不熟悉,初期不會導(dǎo)入jar包,出現(xiàn)以下錯誤
1)Cannot find class: com.microsoft.sqlserver.jdbc.SQLServerDriver
3、更換MySQL時,安裝問題,全英文安裝,基礎(chǔ)較差,安裝時間較久
4、更換好新的數(shù)據(jù)庫時,又忽略了關(guān)鍵的MySQL JDBC連接jar包
5、下好mysql-connector-java-8.0.19.jar包后 出現(xiàn)版本問題
1)在IDEA中連接數(shù)據(jù)庫中拋出時區(qū)錯誤
The server time zone value '?й???????' is unrecognized or represents more than one time zone.
You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want 錯誤
原因是因為使用了Mysql Connector/J 8.0的版本,然后就報了時區(qū)的錯誤
解決辦法是jdbc:mysql://localhost:3306/chapter01?serverTimezone=UTC -- 雖然報錯解決了,但是UTC是世界標(biāo)準(zhǔn)時間,與北京時間相差8h
所以UTC可替換為 GMT%2B8 或 Asia/Shanghai
6、下載舊版本jar包時,發(fā)現(xiàn)有mysql-connector-java-5.1.48.jar 和 mysql-connector-java-5.1.48-bin.jar 兩個版本
經(jīng)搜索發(fā)現(xiàn),兩種jar包在使用上并沒有什么區(qū)別,帶-bin的文件里在編譯的的時候里面多了幾個編譯用的校驗文件而已
7、更換舊版本mysql-connector-java-5.1.48.jar包后 出現(xiàn)警告
WARN: Establishing SSL connection without server's identity verification is not recommended.
According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set.
For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'.
You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
簡單意思為:不建議在沒有服務(wù)器身份驗證的情況下建立SSL連接。
8、對比發(fā)現(xiàn)8.0版本的jdbc連接不會出現(xiàn)以上警告,故以后使用8.0版本jar包連接MySQL數(shù)據(jù)庫
注意事項:
JDBC連接更新為 com.mysql.cj.jdbc.Driver 原JDBC連接為 com.mysql.jdbc.Driver
為解決時區(qū)問題 url中value="jdbc:mysql://localhost:3306/chapter01?serverTimezone=GMT%2B8" 端口后要添加數(shù)據(jù)庫名 時區(qū)設(shè)置同上
9、新老版本jar包速度比較
8.0版本jar包:平均速度為:910ms
5.1版本jar包:平均速度為:1s300ms
10、無關(guān)緊要的WARN
log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
day02
11、當(dāng)在執(zhí)行插入等SQL語句時,記得要調(diào)用session.commit()方法提交事務(wù)
12、在mybatis中#和$的主要區(qū)別
#傳入的參數(shù)在SQL中顯示為字符串,
#{}方式能夠很大程度防止sql注入;
$傳入的參數(shù)在SqL中直接顯示為傳入的值,
${}方式無法防止Sql注入。
綜上所述:能用 #{} 的地方就用 #{},不用或少用 ${}
13、在配置屬性的時候發(fā)現(xiàn)<configuration>總是報錯
經(jīng)發(fā)現(xiàn)是因為 其里面的標(biāo)簽順序應(yīng)該按照其提示來排序。
Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 32; columnNumber: 17;
元素類型為 "configuration" 的內(nèi)容必須匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,
objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)"。
14、個人原因:更新win10中途退出,導(dǎo)致系統(tǒng)出現(xiàn)問題。修復(fù)MySQL未果,選擇重裝,重裝N次后 發(fā)現(xiàn)還是沒有刪除干凈。
解決辦法:首先從注冊表中刪除MySql的服務(wù),再從安裝平臺刪除所有功能,此時電腦會重啟,刪除全部。再重新安裝即可。
15、在一對一關(guān)系映射中,一個表引用另一個表,兩表聯(lián)立,數(shù)據(jù)庫產(chǎn)生的返回類型是枚舉類型,枚舉類型不滿足有參的構(gòu)造函數(shù)
解決辦法:在映射類中加入無參構(gòu)造函數(shù)。 //如果實體類中有構(gòu)造方法了但是參數(shù)不匹配的話就會報上述錯誤,
學(xué)習(xí)于 - https://blog.csdn.net/qq_35975416/article/details/80488267
https://blog.csdn.net/zuihongyan518/article/details/91448016
day03
16、編寫代碼時出現(xiàn)無法解析別名錯誤。Could not resolve type alias 'Student'
原因是因為pojo包中Student類是從ch01中復(fù)制過來, 其中使用了@Alias(value = "stu") 故此類別名為stu!
17、log4j.properties 文件學(xué)習(xí)
文件學(xué)習(xí)視頻里面老師沒有講。自我學(xué)習(xí),了解如下
Log4J配置文件的基本格式如下:
三個步驟
#配置根Logger
#配置日志信息輸出目的地Appender
#配置日志信息的格式(布局)
五種級別 權(quán)值
FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7
day04
18、在IDEA中 不方便導(dǎo)入Spring的命名空間
只需要在<beans>中 自己先寫好<context:之后,IDEA會自動提示并補(bǔ)全 beans里面的代碼 </beans>
day05
19、關(guān)于Spring AOP中AfterThrowing增強(qiáng)處理
AfterThrowing是處理程序中未被捕獲的異常通知類型。
如果程序中的異常被try catch 所捕獲,則 AT不會觸發(fā)。
@AfterThrowing(throwing="ex", "pointcut")
其中ex為形參,可以通過ex來訪問被拋出的異常。