除了rewriteBatchedStatements=true、useLocalSessionState=true、jdbc驱动版本还有什么原因会影响batchUpdate的效率?
数据库那边也会又影响么?例如数据量、索引等
这种批量化的操作,尽量放到存储过程中,放到数据库上直接执行,效率更高。加上适当的索引提高检索效率。
最近针对JPA、Hibernate的批量插入做了功课,并不建议使用这种框架提供的脚手架API做批量插入。
道理也很简单,JPA与Hibernate的批量插入都可能会在批量更新时,先执行查询操作,而这是大数据量
无法忍受的。所以建议还是JDBCTemplate或者原生JDBC操作即可,使用原生的SQL,操作你的逻辑。
不要被框架束缚。
针对楼上的存储过程,针对公司吧,毕竟很多公司是不允许你用的。
至于分层,不要纠结,传统的三层、四层架构,并不会让你的领域逻辑清晰,没必要花时间在分层上,
浪费了时间,你也得不到高内聚的领域模型。先解决问题,然后再改造