我目前正在学习更多关于在Spring Boot webapp中实现JDBC和使用数据库的知识,我在帖子的底部遇到了以下Stack Trace.
我创建了一个简单的Employee模型,我试图在我的main()所在的同一个类上执行一些数据库代码.模型和主类是整个项目中存在的唯一两个java文件.我正在尝试实现以下run()代码,该代码覆盖了接口CommandLineRunner中的那个,但是我没有得到log.info之后的日志("A部分:"):
log.info("Part A:")
employees.forEach(employee -> {log.info(employee.toString());
log.info("part a");});
Run Code Online (Sandbox Code Playgroud)
- 我注意到了:
我注意到堆栈跟踪开始之前的日志的最后一行来自:"Thread-1"而不是"main".我认为这意味着来自除main之外的某个地方的线程在正常关闭之前遇到错误和关闭连接.
另外,我认为因为HikariPool在"peer's close_notify"之前关闭,我认为它指的是HikariPool的正常关闭,我无法看到我一直试图获取的最后一点日志记录.我希望看到的最后一点日志记录是已插入到我的数据库中的员工的日志记录.
我希望看到的最后一点日志记录应该从这行代码中获得:
employees.forEach(employee -> {log.info(employee.toString());
log.info("part a");});
Run Code Online (Sandbox Code Playgroud)
- 要注意的事项:
由于日志中的这一行,我以为我会看到员工插入到我的数据库中,但当我直接在MySQL命令行客户端上查询时,它返回一个空集:
2018-11-03 21:08:35.362 INFO 2408 --- [ main] c.j.jdbctest1.JdbcTest1Application : rows affected: 1
Run Code Online (Sandbox Code Playgroud)
我不明白为什么在没有任何内容插入数据库时,行会受到影响.
堆栈跟踪和日志:(下面粘贴的堆栈跟踪实际上会重复几次,但我为了简洁而将其剪掉了.)
2018-11-03 21:08:32.997 INFO 2408 --- [ main] c.j.jdbctest1.JdbcTest1Application : Starting JdbcTest1Application on KitKat with PID 2408 (C:\Users\Nano\Downloads\jdbc-test1\jdbc-test1\target\classes started by Nano in C:\Users\Nano\Downloads\jdbc-test1\jdbc-test1)
2018-11-03 21:08:33.003 INFO 2408 --- [ main] c.j.jdbctest1.JdbcTest1Application : No …Run Code Online (Sandbox Code Playgroud)