day01
1、由于自己电脑原先装的数据库为SQL Server2008R2版,连接数据库时出现以下错误
1)端口错误,视频上mysql端口为3306, SQL server端口应为1433
2)无法打开SQL server登录界面
2、使用的工具为IDEA,基本操作还不熟悉,初期不会导入jar包,出现以下错误
1)Cannot find class: com.microsoft.sqlserver.jdbc.SQLServerDriver
3、更换MySQL时,安装问题,全英文安装,基础较差,安装时间较久
4、更换好新的数据库时,又忽略了关键的MySQL JDBC连接jar包
5、下好mysql-connector-java-8.0.19.jar包后 出现版本问题
1)在IDEA中连接数据库中抛出时区错误
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的版本,然后就报了时区的错误
解决办法是jdbc:mysql://localhost:3306/chapter01?serverTimezone=UTC -- 虽然报错解决了,但是UTC是世界标准时间,与北京时间相差8h
所以UTC可替换为 GMT%2B8 或 Asia/Shanghai
6、下载旧版本jar包时,发现有mysql-connector-java-5.1.48.jar 和 mysql-connector-java-5.1.48-bin.jar 两个版本
经搜索发现,两种jar包在使用上并没有什么区别,带-bin的文件里在编译的的时候里面多了几个编译用的校验文件而已
7、更换旧版本mysql-connector-java-5.1.48.jar包后 出现警告
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.
简单意思为:不建议在没有服务器身份验证的情况下建立SSL连接。
8、对比发现8.0版本的jdbc连接不会出现以上警告,故以后使用8.0版本jar包连接MySQL数据库
注意事项:
JDBC连接更新为 com.mysql.cj.jdbc.Driver 原JDBC连接为 com.mysql.jdbc.Driver
为解决时区问题 url中value="jdbc:mysql://localhost:3306/chapter01?serverTimezone=GMT%2B8" 端口后要添加数据库名 时区设置同上
9、新老版本jar包速度比较
8.0版本jar包:平均速度为:910ms
5.1版本jar包:平均速度为:1s300ms
10、无关紧要的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、当在执行插入等SQL语句时,记得要调用session.commit()方法提交事务
12、在mybatis中#和$的主要区别
#传入的参数在SQL中显示为字符串,
#{}方式能够很大程度防止sql注入;
$传入的参数在SqL中直接显示为传入的值,
${}方式无法防止Sql注入。
综上所述:能用 #{} 的地方就用 #{},不用或少用 ${}
13、在配置属性的时候发现<configuration>总是报错
经发现是因为 其里面的标签顺序应该按照其提示来排序。
Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 32; columnNumber: 17;
元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,
objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)"。
14、个人原因:更新win10中途退出,导致系统出现问题。修复MySQL未果,选择重装,重装N次后 发现还是没有删除干净。
解决办法:首先从注册表中删除MySql的服务,再从安装平台删除所有功能,此时电脑会重启,删除全部。再重新安装即可。
15、在一对一关系映射中,一个表引用另一个表,两表联立,数据库产生的返回类型是枚举类型,枚举类型不满足有参的构造函数
解决办法:在映射类中加入无参构造函数。 //如果实体类中有构造方法了但是参数不匹配的话就会报上述错误,
学习于 - https://blog.csdn.net/qq_35975416/article/details/80488267
https://blog.csdn.net/zuihongyan518/article/details/91448016
day03
16、编写代码时出现无法解析别名错误。Could not resolve type alias 'Student'
原因是因为pojo包中Student类是从ch01中复制过来, 其中使用了@Alias(value = "stu") 故此类别名为stu!
17、log4j.properties 文件学习
文件学习视频里面老师没有讲。自我学习,了解如下
Log4J配置文件的基本格式如下:
三个步骤
#配置根Logger
#配置日志信息输出目的地Appender
#配置日志信息的格式(布局)
五种级别 权值
FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7
day04
18、在IDEA中 不方便导入Spring的命名空间
只需要在<beans>中 自己先写好<context:之后,IDEA会自动提示并补全 beans里面的代码 </beans>
day05
19、关于Spring AOP中AfterThrowing增强处理
AfterThrowing是处理程序中未被捕获的异常通知类型。
如果程序中的异常被try catch 所捕获,则 AT不会触发。
@AfterThrowing(throwing="ex", "pointcut")
其中ex为形参,可以通过ex来访问被抛出的异常。