作者回复: 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容器,运行后就结束了
作者回复: JDBC只是连接的抽象,具体每个数据库都是要靠自己的驱动来实现这个抽象的。
作者回复: 额,看来是我表述不当,我不是让你通过open session in view来解决问题,而是希望通过这个你能理解为什么会有这个问题。会话还是会和连接关联在一起的,也就是事后获取总是有成本的,如果你这个接口就是要返回所有的数据,那获取时就可以把所有数据拉回来。如果上游系统调用后有的要这些数据,有的不要这些,那可以明确地在接口上区分出来,无论是用参数,还是新拆一个接口,这样是不是会更合理一些呢。
作者回复: Spring Boot的自动配置会根据你的URL来推测驱动的,所以你提供JDBC URL、用户名和密码就好了。
JNDI不是连接池,你可以再去了解下JNDI是什么,你可以通过JNDI获取到事先配置好的连接池。
作者回复: 因为使用了Spring Boot的自动配置,我们在课程中大量地用了自动配置来简化配置工作。关于背后的原理,我们会在Spring Boot章节里展开。
作者回复: 能避免的话就尽量避免分布式事务,用最终一致的方式
作者回复: 没用过Pandora,不过看了你的描述,感觉和RPC也没啥关系,你如果是个Web应用估计也是一样的,可以搜下Open Session in View,然后你大概就能明白怎么回事了。如果看完还没明白,我再来和你解释一下吧。
作者回复: 你说的是不是Spring Data JDBC?我好像没怎么看到过你说的这个观点诶。一个是在简化编程时JDBC的操作,另一个是在做ORM。而且实际在业务系统开发时,使用ORM的方式更多一些,毕竟通常情况下自己写JDBC操作还是相对繁琐一些。
作者回复: Spring Boot的自动配置发现CLASSPATH里有H2,你又没有配置DataSource,就自动配置了一个H2的DataSource,后面课程有详细介绍的
作者回复: ApplicationContext的话题,我们放在Web的章节中会有讲解
作者回复: 我想主流的应该在日常用orm框架更多一些吧,至少我们在工作中以mybatis为主
作者回复: 内嵌数据库才会有这个特性,是Spring Boot的EmbeddedDatabaseBuilder里实现的。在创建DataSource时添加了schema.sql和data.sql,EmbeddedDatabaseFactoryBean的initDatabase里执行的。
作者回复: 看看《Spring实战》吧。先学透再做项目的想法本身还是有点问题的,只有做了项目才能明白你学的东西。另外,SpringBoot和你的数据量没什么关系,它只是帮助你开发的框架,帮你聚焦在你的业务逻辑。
作者回复: 你是说方法名么?那只是作为Bean的名称使用的,名字随你喜欢就好,但一般我们会跟着Spring Bean的命名来做