记得刚接触ibatis时,是毕业后第一个项目,当时项目组决定采用struts+spring+ibatis来开发本项目。在数据库方面,当时有两种选择:ibatis和hibernate。项目组决定采用ibatis时,是基于其SQL可自己配置,增强了灵活性。记得当时软件经理曾说过,ibatis唯一的不足是不能进行批处理……
由于当时时间比较紧迫,而自己也只是一个初出茅庐的毕业生,所以就接受了他这种:ibatis不能进行批量新增和更新。到现在已经差不多了,自己也在业余时间参看了一下Ibatis的源码。发现好像ibatis是可以进行批量处理的的可能。因为其SqlExecutor类有executeBatch方法,这个方法是用于执行statements batch的。这里是否意味着ibatis是可以执行批处理的呢?因为在add和update方法中,都调用了addBatch和executeBatch方法……
在看ibatis的源码时,发现了它有存储过程。不知道在执行add和update时,它自身是不是通过调用存储过程来处理的呢?如果是的话,其存储过程是提高了性能还是降低了性能呢?(有人曾说存储过程会大大降低系统的性能,所以一般在项目中我们都不用存储过程)。不知道这种做法好不好……