发表于: 2017-08-17 22:35:56
1 1006
一、今日完成
1)使用spring JDBC template连接数据库,对数据库进行增删查改操作,其中,interface与Impl没有分离;
2)编写测试方法,调用PersonDAo定义的方法,结果如下:
3)调用Logger.getLogger()方法,打日志,但是并未向ConsoleAppender或.FileAppender输出正确结果;其中log4j.properties配置如下:
log4j.rootLogger = debug,stdout,D,E
log4j.additivity.org.apache=true
#输出信息到控制台̨ #
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
# 输出DEBUG级别以上的日志到=logs/DEBUG.log #
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/DEBUG.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
# 输出ERROR级别以上的日志到=logs/ERROR.log#
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =logs/ERROR.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
二、明日计划
1)调试打log方法,找出BUG;
2)整理task1的全部流程,提交任务。
三、遇到的问题
1)很多参考书和博客里使用的jdbd驱动“com.mysql.jdbc.Driver“,其实已经被废弃(jdk1.8、maven3.5.5和MySQL5.7),现在能够使用的版本是”com.mysql.cj.jdbc.Driver“;
2)在设置datasource的url时候,必须声明”?serverTimezone=UTC“,如下
否则,会报错提示MySQL server时区设置异常
Cannot create PoolableConnectionFactory (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 to utilize time zone support.).
3)数据库连接池的设置如下:
控制台提示:
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.
但是在url value后声明 ”useSSL=true“,并不能解决问题,今天计划再尝试其他方法。
4)数据库表里的某个字段数据类型是DATE,在Smalltest.class中测试插入数据操作,对该字段value写成”1980-01-03“,直接会报错提醒格式不对,
试过如加引号或者写成19800103格式,都会提示格式不兼容,难以解决这个问题。
四、今日收获
编写出一个完整的JDBC Template的实例,并测试成功。
评论