作者回复: 你好,感谢你的提醒。我也去翻了下MyBatis的文档,这里的确是我把Insert的返回搞错了。 根据官方文档和我自己的验证,@Insert返回的是变动记录的条数,int也是可以的。我知道Update和Delete返回的是条数,但平时不太关心Insert的结果,结果这里就弄错了。 我已经重新写了示例代码,也重新录制了本节相关内容,极客时间的同学在制作完之后会更新上去。 再次感谢你能指出我的问题:-)
作者回复: BigDecimal只是处理精度而已,对于货币而言,还有货币种类、货币单位、货币转换等很多东西需要考虑的。比如元转分,分转元这些Money都提供了支持。
作者回复: 就希望看到同学们互相帮助,互相成长,我也会跟着大家一起学习。
作者回复: 后面会讲到MyBatis Generator,都帮你生成了。
作者回复: 我试了下把mybatis-spring-boot-starter换成2.0.1,的确也出现了你这个问题,在把save方法的注解换成这样后解决了 @Options(useGeneratedKeys = true, keyColumn="id", keyProperty="id") 。 在1.3.2时没有这个问题,save时可以回填id,升级后需要Options里加上配置才行了。
作者回复: 不太建议,一般选一种,这样项目也能清晰一些。所以一开始就要评估好技术选型。两者的功能其实差不多,混用的价值也不是很大。或者你能补充些场景,我们再一起看看是否合适。
作者回复: 这个其实是一样的,看你们习惯,不过有时候SQL都集中到XML里,和代码分开后,方便做些其他的工作,比如用工具扫描SQL Mapper的XML文件什么的。
作者回复: 你说的这个逻辑在MybatisAutoConfiguration中,另外,@MapperScan还可以指定要扫描的package。
作者回复: 从我遇到的情况来看,似乎是比较少,一般我们会用JVM内部缓存或者Redis缓存更多一点。MyBatis更多的还是ORM操作数据库,数据取出来之后,怎么做缓存是我们来处理的,而非让MyBatis来处理。
作者回复: 是mybatis-spring-boot-autoconfiguration做的,默认会和SpringBoot扫描同样的包