关键词:生日福利|1342|开源|锦鲤|52|27

庆AIStudio生日福利,赢最强锦鲤

  • 浏览: 7

庆AI Studio生日福利,赢最強锦鲤>>>

开源详细地址:

github: https://github.com/chenrenfei/sagacity-sqltoygitee: https://gitee.com/sagacity/sagacity-sqltoyidea 软件(可立即在idea中查找安裝):  https://github.com/threefish/sqltoy-idea-plugins

升级內容

1、对于特殊情景出示好几个无依次相互依赖的sql并行执行,协助开发人员避开大sql,另外提高查寻高效率

// parallQuery 朝向查寻(不必用以事务管理操作流程中),sqltoy出示强劲的方式 ,但是不是适当应用必须使用人做有效的分辨/** * @TODO 并行处理查寻并回到一维List,几个查寻List中就包括好多个結果目标,paramNames和paramValues是所有sql的标准主要参数的合辑 * @param parallQueryList * @param paramNames * @param paramValues */public List> parallQuery(List parallQueryList, String[] paramNames,Object[] paramValues);

具体应用:

// 应用并行处理查寻另外实行两个sql,标准主要参数是两个查寻的合辑String[] paramNames = new String[] { "userId", "defaultRoles", "deployId", "authObjType" };Object[] paramValues = new Object[] { userId, defaultRoles, GlobalConstants.DEPLOY_ID,SagacityConstants.TempAuthObjType.GROUP };List> list = super.parallQuery(Arrays.asList(ParallQuery.create().sql("webframe_searchAllModuleMenus").resultType(TreeModel.class),ParallQuery.create().sql("webframe_searchAllUserReports").resultType(TreeModel.class)),paramNames, paramValues);

迅速掌握 sqltoy-orm:

sqltoy是全新升级一代的ORM架构,兼具jpa目标式实际操作的优点,另外巨大提高了查寻作用,加上科学研究的sql撰写方式、恰当的缓存文件汉语翻译集成化、完美的分页查询提升及其对于规模性数据信息下的分库分表、超繁杂情景下的mongodb、elastic、clickhouse组成运用!sqltoy让你产生了多种多样主键对策,除基本的UUID、sequence、identity外,还包括雪花算法和根据redis造成有标准的业务流程主键等。sqltoy还出示了对于数据分析的:数据信息转动、无限极排序测算、同比环比等来降低开发人员写繁杂sql。sqltoy在许多 层面出示了极其好用的方式 ,如:树型表处理、isUnique、findTop、getRandomResult、updateFetch这些sqltoy不动jooq全目标式、mybatis全sql式这类并不是天便是地的极端化门路,紧靠新项目实战演练发展趋势起來的架构,让分别技术性以有效的方法运用于有效的地区!

简略举例说明详细介绍:

JPA式的CRUD,但避开了其不够,出示了默认设置的SqlToyCRUDService(简易的则不用写service方式 ) 和 SqlToyLazyDao(开发设计不用自身写Dao,只必须写Service领域模型),能够掌握类似update、updateAll、saveOrUpdate等本质逻辑性,降低了数据库查询互动,考虑到了分布式系统和业务流程目标变动的特点! @Autowired private SqlToyCRUDService sqlToyCRUDService; //根据目标储存  sqlToyCRUDService.save(staffInfo); //根据目标升级(字段名数值null的不容易参加变动)  sqlToyCRUDService.update(staffInfo); //深层变动,所有字段名都参加变动 sqlToyCRUDService.updateDeeply(staffInfo); //根据目标升级(制订强制性改动的字段名)  sqlToyCRUDService.update(staffInfo,new String[]{"staffName","onDuty"}); //根据目标升级  sqlToyCRUDService.saveOrUpdate(staffInfo); //载入目标 sqlToyCRUDService.load(new StaffInfoVO("S190715009")); //上锁获得目标 sqlToyCRUDService.load(new StaffInfoVO("S190715009"),LockMode.UPGRADE); //分辨目标是不是唯一 sqlToyCRUDService.isUnique(staffInfo, "staffCode"); //delete\deleteAll\updateAll\loadAll 这些不一一写完单表等简易的查寻和变动实际操作,出示了链条式实际操作//单表目标查寻,立即传参方式List staffVOs = sqlToyLazyDao.findEntity(StaffInfoVO.class,EntityQuery.create().where("#[staffName like ?] #[ and status=?]").values("陈", 1).lock(LockMode.UPGRADE).orderBy("staffName").orderByDesc("createTime"));//单表查寻,目标传参方式List staffVOs = sqlToyLazyDao.findEntity(StaffInfoVO.class,EntityQuery.create().where("#[staffName like :staffName] #[ and status=:status]").values(new StaffInfoVO().setStatus(1).setEmail("[email protected]")));//编码中链条式查寻并删掉Long deleteCount = sqlToyLazyDao.deleteByQuery(StaffInfoVO.class,EntityQuery.create().where("status=:status").values(new StaffInfoVO().setStatus(1)));//链条式变动Long updateCount = sqlToyLazyDao.updateByQuery(StaffInfoVO.class,EntityUpdate.create().set("staffName", "张三").where("staffName like ? and status=?").values("陈", 1));更强劲的查寻,sqltoy注重繁杂查寻提议置放于xml中跟编码分离出来(可是能够写在编码中的),不必见xml就反,请深入了解以后再反!//sqltoy统一的标准便是立即传送sql语句或是相匹配的sqlId,并不是说sql只有写在xml中(强烈推荐但不肯定)findBySql(final String sqlOrSqlId, final String[] paramsNamed, final Object[] paramsValue,final Class voClass)//看不上上边的恢复出厂设置传参还可以应用那样链条式查寻sqlToyLazyDao.findByQuery(new QueryExecutor("sqltoy_order_search").names("orderId", "authedOrganIds").values(null, authedOrgans).resultType(DeviceOrderInfoVO.class));sqltoy出示了最简约的动态sql撰写

大家比照一下mybatis的完成(非常简单的sql写的这般令人不愿意写!):

缓存文件汉语翻译,运用缓存文件降低关联查询,简单化sql另外大幅度提高高效率

完美分页查询提升

转动数据信息并开展环比计算

猜你喜欢