作者回复: 就希望看到同学们互相帮助,互相成长,我也会跟着大家一起学习。
作者回复: 后面会讲到MyBatis Generator,都帮你生成了。
作者回复: 你好,感谢你的提醒。我也去翻了下MyBatis的文档,这里的确是我把Insert的返回搞错了。
根据官方文档和我自己的验证,@Insert返回的是变动记录的条数,int也是可以的。我知道Update和Delete返回的是条数,但平时不太关心Insert的结果,结果这里就弄错了。
我已经重新写了示例代码,也重新录制了本节相关内容,极客时间的同学在制作完之后会更新上去。
再次感谢你能指出我的问题:-)
作者回复: MyBatis的这个save()方法可以回填id到传入的对象里的, @Options里useGeneratedKeys=true,再设置keyProperty 和 keyColumn 。
作者回复: 从我遇到的情况来看,似乎是比较少,一般我们会用JVM内部缓存或者Redis缓存更多一点。MyBatis更多的还是ORM操作数据库,数据取出来之后,怎么做缓存是我们来处理的,而非让MyBatis来处理。
作者回复: 因为你配置了MapperFactoryBean<UserMapper>,这个Bean会帮你返回一个UserMapper的
作者回复: BigDecimal只是处理精度而已,对于货币而言,还有货币种类、货币单位、货币转换等很多东西需要考虑的。比如元转分,分转元这些Money都提供了支持。
作者回复: 你是不是在application.proeprties里没有配置mybatis.type-handlers-package,让MyBatis到指定包里去找Handler,我们的MoneyTypeHandler你可以看看,也很简单。建议完整比对一下我们Github上的Chapter 3/mybatis-demo
作者回复: 上面那个问题,我们课程应该不会涉及,只能靠你自己查了。
下面那个问题,JPA在处理简单的情况下相对便利一些,但到了复杂的情况下,对SQL的定制多了,就和MyBatis差不多了。一些公司里DBA会对SQL做很多优化,需要对SQL有一定的把控度,这时JPA自动生成的SQL对这些优化并不友好,既然都要手写了,那还不如用MyBatis了。
作者回复: 你说的这个逻辑在MybatisAutoConfiguration中,另外,@MapperScan还可以指定要扫描的package。