Dirección de código abierto:
- github: https://github.com/sagframe/sagacity-sqltoy
- casa rural: https://gitee.com/sagacity/sagacity-sqltoy
- complemento de idea (se puede recuperar e instalar directamente en idea): https://github.com/threefish/sqltoy-idea-plugins
actualizar contenido
- 1. Admite varios campos, por ejemplo: (id, tipo) en ((: id,: tipos)) o (id, tipo) en (: id,: tipos)
List<StaffInfoVO> staffs = sqlToyLazyDao.findEntity(StaffInfoVO.class, EntityQuery.create().values(new StaffInfoVO())); String sql = "select * from sqltoy_staff_info where (staff_id,STAFF_CODE) " + "in ((:staffIdVOs.staffId,:staffIdVOs.staffCode))"; List<StaffInfoVO> staffVOs = sqlToyLazyDao.findBySql(sql, MapKit.keys("staffIdVOs").values(staffs), StaffInfoVO.class);
Ventajas clave de sqltoy:
//------------------了解 sqltoy的关键优势: -------------------------------------------------------------------------------------------*/
//1、最简最直观的sql编写方式(不仅仅是查询语句),采用条件参数前置处理规整法,让sql语句部分跟客户端保持高度一致
//2、sql中支持注释(规避了对hint特性的影响,知道hint吗?搜oracle hint),和动态更新加载,便于开发和后期维护整个过程的管理
//3、支持缓存翻译和反向缓存条件检索(通过缓存将名称匹配成精确的key),实现sql简化和性能大幅提升
//4、支持快速分页和分页优化功能,实现分页最高级别的优化,同时还考虑到了cte多个with as情况下的优化支持
//5、支持并行查询
//6、根本杜绝sql注入问题
//7、支持行列转换、分组汇总求平均、同比环比计算,在于用算法解决复杂sql,同时也解决了sql跨数据库问题
//8、支持保留字自动适配
//9、支持跨数据库函数自适配,从而非常有利于一套代码适应多种数据库便于产品化,比如oracle的nvl,当sql在mysql环境执行时自动替换为ifnull
//10、支持分库分表
//11、提供了取top、取random记录、树形表结构构造和递归查询支持、updateFetch单次交互完成修改和查询等实用的功能
//12、sqltoy的update、save、saveAll、load 等crud操作规避了jpa的缺陷,参见update(entity,String...forceUpdateProps)和updateFetch
//13、提供了极为人性化的条件处理:排它性条件、日期条件加减和提取月末月初处理等
//14、提供了查询结果日期、数字格式化、安全脱敏处理,让复杂的事情变得简单,大幅简化sql或结果的二次处理工作
//-----------------------------------------------------------------------------------*/
Introducción a las características de sqltoy:
- La idea central de construcción de sqltoy
- Los puntos centrales de la comparación de sqltoy mybatis (más): redacción de sentencias de consulta, legibilidad, mantenibilidad
- Object crud es la base, pero sqltoy tiene mejoras específicas: actualización, actualizaciónSaveFetch, actualizaciónFetch, etc.
- La traducción de caché de sqltoy reduce en gran medida las asociaciones de tablas y simplifica sql, lo que mejora geométricamente el rendimiento de su consulta.
- La paginación definitiva también lo ayuda a lograr un aumento significativo en el rendimiento de las consultas.
- Paginación rápida: @fast () se da cuenta primero de obtener una sola página de datos y luego correlaciona la consulta, lo que mejora en gran medida la velocidad
- Optimizador de paginación: la optimización de la página hace que la consulta de paginación sea de dos veces a 1,3~1,5 veces (la cantidad total de registros que usan la memoria caché para lograr la misma condición de consulta no necesita repetir la consulta dentro de un período determinado
- El proceso de paginación y obtención de registros totales de sqltoy no es un simple recuento de selección (1) de (sql original); es un juicio inteligente si se convierte en: recuento de selección (1) de 'desde la declaración posterior', y elimina automáticamente el más externo ordenar por
- sqltoy admite consultas paralelas: parallel="true", consulta el número total de registros y datos de una sola página al mismo tiempo, lo que mejora en gran medida el rendimiento
- Prácticos cálculos estadísticos de bases de datos cruzadas: rotación de datos
- Conveniente cálculo estadístico de bases de datos cruzadas: estadísticas de agrupación infinitas (incluido el promedio de resumen)
- Práctico cálculo estadístico de bases de datos cruzadas: año tras año