valarchie / AgileBoot-Back-End

🔥 规范易于二开的全栈基础快速开发脚手架。🔥 采用Springboot + Vue 3 + Typescript + Mybatis Plus + Redis + 更面向对象的业务建模 + 面向生产的项目(非玩具项目)。你的 ⭐️ Star ⭐️,是作者更新的动力! 欢迎小伙伴PR,一起构建一个规范的全栈项目~😆
MIT License
1.81k stars 354 forks source link

批量操作 #38

Closed ouyangyuanpeng closed 1 year ago

ouyangyuanpeng commented 1 year ago

想请问一下,如果是涉及到批量操作的话,要怎么设计模型和工厂呢

valarchie commented 1 year ago

你这边如果想直接使用mybatis plus的 saveBatch的话。 那模型就跟其他的接口差不多。
比如我想保存10个学生,那用工厂生产10个模型,依次执行模型的校验OK的话,最后再调用saveBatch方法。

比如你觉得Mybatis Plus的 saveBatch脚本的性能 达不到你的预期的话 模型还是不变, 只是最后落库的时候 走你自己实现的DAO。

ouyangyuanpeng commented 1 year ago

是通过工厂的create方法去创建model,然后在ApplicationService使用saveBatch方法进行保存吗?

valarchie commented 1 year ago

嗯 是的 saveBatch 可以直接把你的模型List直接丢给他保存

ouyangyuanpeng commented 1 year ago

mybatis plus的saveBatch方法不能直接保存model还需要转成entity才行。 我看代码中新增修改都是在model中操作的,如果我想要在model中加一个insertBatch批量保存的方法,这种方式需要怎么设计呢?

valarchie commented 1 year ago

sorry 没注意到 要转成entity才行 感觉savaBatch放在Model里面不是很合适

感觉放xxxxService里面比较合适, 它来负责把模型的List转成Entity的List