作者回复: 谢谢,我也学习了
作者回复: size设置了这个Batch的大小,实际在JdbcTemplate里,有一个循环: for (int i = 0; i < batchSize; i++) { pss.setValues(ps, i); ... } 所以就有了你看到的效果
作者回复: JPA是规范,Hibernate才是实现,Hibernate和MyBatis 都能用来做数据的存取操作,它们底下是JDBC支持。我想你提问里说的应该是spring-data-jdbc,它的定位和Hibernate还有MyBatis是一样的,用来方便地操作数据。
作者回复: 你没有加Web的Starter依赖自然就不会启动Web容器,运行后就结束了
作者回复: 看看《Spring实战》吧。先学透再做项目的想法本身还是有点问题的,只有做了项目才能明白你学的东西。另外,SpringBoot和你的数据量没什么关系,它只是帮助你开发的框架,帮你聚焦在你的业务逻辑。
作者回复: 你说的是不是Spring Data JDBC?我好像没怎么看到过你说的这个观点诶。一个是在简化编程时JDBC的操作,另一个是在做ORM。而且实际在业务系统开发时,使用ORM的方式更多一些,毕竟通常情况下自己写JDBC操作还是相对繁琐一些。
作者回复: Spring Boot的自动配置发现CLASSPATH里有H2,你又没有配置DataSource,就自动配置了一个H2的DataSource,后面课程有详细介绍的
作者回复: JDBC只是连接的抽象,具体每个数据库都是要靠自己的驱动来实现这个抽象的。
作者回复: 额,看来是我表述不当,我不是让你通过open session in view来解决问题,而是希望通过这个你能理解为什么会有这个问题。会话还是会和连接关联在一起的,也就是事后获取总是有成本的,如果你这个接口就是要返回所有的数据,那获取时就可以把所有数据拉回来。如果上游系统调用后有的要这些数据,有的不要这些,那可以明确地在接口上区分出来,无论是用参数,还是新拆一个接口,这样是不是会更合理一些呢。
作者回复: 我们有个simpleJdbcInsert(JdbcTemplate jdbcTemplate)方法,加了@Bean注解,它就是用来定义simpleJdbcInsert这个Bean的,这个Bean是被Spring管理的。