sqltoy-orm课堂 第一讲:认识sqltoy

请参看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?

下面讲一下理由:

  1. mybatis的sql写法就是原本代码中if(param!=null){buff.append()}的xml化!你自己对比一下sqltoy的写法,哪个直观?哪个便于后期变更和维护?


sqltoy-orm课堂 第一讲:认识sqltoy

sqltoy的写法效果


sqltoy-orm课堂 第一讲:认识sqltoy

伟大的mybatis的写法效果

2、最常规的分页,mybatis要自己找插件,经常有人因为找到一个插件或者开发了一个插件在炫耀,而实际项目中分页就跟白米饭一样属于必须品,框架应该提供一个最优的选择,这不知道要省多少不必要的折腾!建议了解一下sqltoy的分页,甩mybatis和mybatis plus万条街!让很多人第一次了解到什么是快速分页、什么是分页优化!闻所未闻!


sqltoy-orm课堂 第一讲:认识sqltoy


3、mybatis过度强调sql,在查询领域强调sql认同,但增删改和load等jpa模式是最符合人性的!

4、mybatis和mybatis plus在很多细节上处理不够细,比如saveAll等竟然不是批量操作,又要让你自己实现!

5、mybatis的update操作还是先load再update,要想实现一次数据库交互完成操作就得自己写sql!

6、缺少创新,比如针对数据字典、员工、机构、产品、客户等基础信息,没有充分利用缓存来减少表关联,可以参照sqltoy的缓存翻译实现!


sqltoy-orm课堂 第一讲:认识sqltoy


7、缺少项目实践视角考虑:比如开发过程中sql文件变更重载、取top记录、取随机记录,啥都让开发者自己搞,一点都不给你抽象提供!

8、虽然强调查询,但却没有为复杂查询场景提供一些拿来即用的东西,比如行列转换、分组统计、环比计算等等!


sqltoy-orm课堂 第一讲:认识sqltoy


sqltoy-orm课堂 第一讲:认识sqltoy


总之用mybatis就是要找各种插件,说白了它其实就是一个标准,大家围绕他进行实现!

但现在是什么时代?你以为世界就是一个ORM吗? 还有微服务、大数据、AI、大前端等等纷繁复杂的技术,时代呼唤的是:

  1. 一个一站式搞定今后也不愁数据库交互的框架!
  2. 一个拿来后可以让视角从ORM层移开、将眼光尽快移到其他领域的框架,这个年代容易吗?不会点微服务、了解点大数据、还会点运维还能混吗!
  3. 一个可以帮助大家实现不用996的框架!
展开阅读全文

页面更新:2024-05-24

标签:写法   缓存   直观   视角   插件   框架   课堂   对象   员工   版本   操作   建议   数据库   测试   项目   数据   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top