请参看github介绍:https://github.com/chenrenfei/sagacity-sqltoy
sqltoy-orm是比hibernate+myBatis更加贴合项目的orm框架(依赖spring),具有jpa式的对象CRUD的同时具有比myBatis(plus)更直观简洁性能强大的查询功能。 支持以下数据库:
sqltoy的CRUD:
//save 、saveAll
StaffInfoVO staffInfo = new StaffInfoVO();
staffInfo.setStaffId("S2007");
staffInfo.setStaffCode("S2007");
staffInfo.setStaffName("测试员工9");
staffInfo.setSexType("M");
staffInfo.setEmail("test3@aliyun.com");
staffInfo.setEntryDate(LocalDate.now());
staffInfo.setStatus(1);
sqlToyCRUDService.save(staffInfo);
//update( 不需要先load)、updateAll
StaffInfoVO staffInfo = new StaffInfoVO();
staffInfo.setStaffId("S2007");
staffInfo.setEmail("test07@139.com");
// 这里对照片进行强制修改
sqlToyCRUDService.update(staffInfo, "photo");
// delete 操作、deleteAll
sqlToyCRUDService.delete(new StaffInfoVO("S2007"));
//saveOrUpdate、saveOrUpdateAll
List staffList = new ArrayList();
StaffInfoVO staffInfo = new StaffInfoVO();
staffInfo.setStaffId("S2007");
staffInfo.setStaffCode("S2007");
staffInfo.setStaffName("测试员工7");
staffInfo.setSexType("M");
staffInfo.setEmail("test8@139.com");
StaffInfoVO staffInfo1 = new StaffInfoVO();
staffInfo1.setStaffId("S2008");
staffInfo1.setStaffCode("S2008");
staffInfo1.setStaffName("测试员工8");
staffInfo1.setSexType("M");
staffInfo1.setEmail("test8@aliyun.com");
staffInfo1.setCountry("86");
staffList.add(staffInfo);
staffList.add(staffInfo1);
sqlToyCRUDService.saveOrUpdateAll(staffList);
// isUnique 唯一性验证
StaffInfoVO staffInfo = new StaffInfoVO();
staffInfo.setStaffCode("S0006");
Boolean result = sqlToyCRUDService.isUnique(staffInfo, "staffCode");
//load 、loadAll、load(entity,LockMode)
StaffInfoVO staff=sqlToyCRUDService.load(new StaffInfoVO("S2007"));
ORM框架那么多你为什么要写sqltoy?
下面讲一下理由:
2、最常规的分页,mybatis要自己找插件,经常有人因为找到一个插件或者开发了一个插件在炫耀,而实际项目中分页就跟白米饭一样属于必须品,框架应该提供一个最优的选择,这不知道要省多少不必要的折腾!建议了解一下sqltoy的分页,甩mybatis和mybatis plus万条街!让很多人第一次了解到什么是快速分页、什么是分页优化!闻所未闻!
3、mybatis过度强调sql,在查询领域强调sql认同,但增删改和load等jpa模式是最符合人性的!
4、mybatis和mybatis plus在很多细节上处理不够细,比如saveAll等竟然不是批量操作,又要让你自己实现!
5、mybatis的update操作还是先load再update,要想实现一次数据库交互完成操作就得自己写sql!
6、缺少创新,比如针对数据字典、员工、机构、产品、客户等基础信息,没有充分利用缓存来减少表关联,可以参照sqltoy的缓存翻译实现!
7、缺少项目实践视角考虑:比如开发过程中sql文件变更重载、取top记录、取随机记录,啥都让开发者自己搞,一点都不给你抽象提供!
8、虽然强调查询,但却没有为复杂查询场景提供一些拿来即用的东西,比如行列转换、分组统计、环比计算等等!
总之用mybatis就是要找各种插件,说白了它其实就是一个标准,大家围绕他进行实现!
但现在是什么时代?你以为世界就是一个ORM吗? 还有微服务、大数据、AI、大前端等等纷繁复杂的技术,时代呼唤的是:
页面更新:2024-05-24
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号