Una nueva generación de marco ORM doméstico sagacity-sqltoy-5.1.42 lanzamiento

Dirección de código abierto:

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.

Explica por qué sqltoy mata a mybatis (más) en segundos

  • La paginación definitiva también lo ayuda a lograr un aumento significativo en el rendimiento de las consultas.
  1. 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
  2. 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
  3. 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
  4. 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
Explica por qué sqltoy mata a mybatis (más) en segundos
 
  • Prácticos cálculos estadísticos de bases de datos cruzadas: rotación de datos
Explica por qué sqltoy mata a mybatis (más) en segundos
  • Conveniente cálculo estadístico de bases de datos cruzadas: estadísticas de agrupación infinitas (incluido el promedio de resumen)
Explica por qué sqltoy mata a mybatis (más) en segundos
  • Práctico cálculo estadístico de bases de datos cruzadas: año tras año
Explica por qué sqltoy mata a mybatis (más) en segundos

 

 

Supongo que te gusta

Origin www.oschina.net/news/197392
Recomendado
Clasificación