JDBC MyBatis 更新 v2.5.1 版本,支持官方版直接扩展动态 SQL 能力


  • 欢迎点击star github地址
  • 欢迎点击star gitee地址

简单点 开发的方法简单点 繁琐的功能请省略 你有不是个AI

spring data jdbc 扩展 mybatis 动态sql能力

  • 官方spring data jdbc原生直接 扩展 mybatis动态sql能力

使用方式和官方教程一样 引入spring-boot-starter-data-jdbc 即可 只需要配置扩展的NamedParameterJdbcTemplate 即可

@Configuration
public class MybatisQuerySupportConfig {
@Bean
public NamedParameterJdbcOperations namedParameterJdbcOperations(DataSource dataSource) {
return new MybatisJdbcTemplate(dataSource) {@Override protected Dialect dialect() {return new MySQLDialect();}};
}
}
 

@Query 的ID 是user.md里面ID为queryByUserCode的mybatis sql片段

@Query("user.queryByUserCode")
List<UserDTO> queryByUserCode(@Param("userCode") String userCode);
 

具体使用参考spring-data-jdbc-demo 模块
但是 @Query spring 6(jdk17以上) 以上才支持SPEL 不支持实体参数 通过改代码可以解决(支持mybatis版本的) 但有代码侵入性
无法直接 根据方法名 自动查找sql片段

  • 仿spring 6+ jdbcClient实现 更推荐crudClient
  • 更推荐自研版本spring data jdbc扩展 mybatis动态sql能力

 

  • 底层 jdbcTemplate 复杂SQL才需要mybatis动态模板能力 无QueryDSL/queryMapper 提供crudClient 和jdbcClient

  • 和spring data jdbc一样的追求简单,使用jdbcTemplate,调用jdbc。不提供缓存、延迟加载、QueryDSL等JPA或mybatis的许多特性。一个简单、有限的ORM

  • 扩展并兼容mybatis动态sql能力(不依赖mybatis!提取了动态sql代码),可以应对复杂sql,如果换其他模板引擎(后续可以加)也是可以的,但有学习成本

  • 复杂的SQL写在Markdown的代码片段中,不提供@Query和QueryDSL写法,但按方法名查找和扩展的findByExample可以应付大部分单表查询需求

  • 简化mybatis动态sql写法 easy-dynamic-sql.md

这真是缺点?

  • 缺点一:无QueryDSL/QueryWrapper 我是个懒人 既然service层里可以写QueryWrapper 为啥不可以写在service 为啥要重用?
    要我独立个dao/Repository把数据层下放?想啥呢?!
    我这个框架就只能在dao/Repository层 写确实太麻烦了 复杂的sql还得建个markdown文件
  • 缺点二:没有数据缓存 审计 数据脱敏 IService接口 就不能替我做了吗 非得在应用层实现
    其实我这给了spring缓存框架等用武之地 自己实现可以增加代码量和工作量 在还没被ai替代之前 薅羊毛

相關推薦

2024-06-21

spring data jdbc 扩展 mybatis 动态sql能 底层 jdbcTemplate 复杂SQL才需要mybatis动态模板能力 无QueryDSL 提供crudClient 和jdbcClient 和spring data jdbc一样的追求简单,使用jdbcTemplate,调用jdbc。不提供缓存、延迟加载、QueryDSL等JPA或mybatis的许多

2023-11-25

还在mybatis?mybatis-plus、plus、plus?不下20个了吧?mybaits-plus,mybatis-fluent、mybatis-flex、 mybatis-mp多少开发者因此不眠? 且所有的发力点集中于:为mybatis实现jpa功能,用java lambda模式拟合sql,建议大家可以深度了解一下sqltoy,相信

2024-02-08

构造器、INSERT 策略、多语句 / 多结果。并兼容 Spring 及 MyBatis 用法。 它不依赖任何其它框架,因此可以很方便的和任意一个框架整合在一起使用。 依赖 <dependency> <groupId>net.hasor</groupId> <artifactId>dbvisitor</a

2024-11-01

别总是再mybatis了,最近信创被mybatis坑惨了,一堆xml中乱七八糟的的sql,再强调mybatis真的是坑害大家! 开源地址: github: https://github.com/sagframe/sagacity-sqltoy gitee: https://gitee.com/sagacity/sagacity-sqltoy idea 插件 (可直接在 i

2024-07-24

特点介绍: sqltoy 的核心构建思想 sqltoy 的对比 mybatis (plus) 的核心点:查询语句编写、可阅读性、可维护性 对象化 crud 是基础,但 sqltoy 有针对性的改进:update、updateSaveFetch、updateFetch 等 sqltoy 的缓存翻译,

2024-08-03

特点介绍: sqltoy 的核心构建思想 sqltoy 的对比 mybatis (plus) 的核心点:查询语句编写、可阅读性、可维护性 对象化 crud 是基础,但 sqltoy 有针对性的改进:update、updateSaveFetch、updateFetch 等 sqltoy 的缓存翻译,

2024-08-27

ate 优化 支持通过配置文件关闭工作流 update 优化 增加mybatis-plus填充器兜底策略 update 优化 TenantSpringCacheManager 处理逻辑 update 优化 角色权限判断 update 优化 增加删除标志位常量优化查询代码 update 优化 监控使用独

2024-08-27

ate 优化 支持通过配置文件关闭工作流 update 优化 增加mybatis-plus填充器兜底策略 update 优化 TenantSpringCacheManager 处理逻辑 update 优化 角色权限判断 update 优化 增加删除标志位常量优化查询代码 update 优化 监控使用独

2023-11-28

boot 2.7.16 => 2.7.18 升级到2.X最终版本(官方停更) update mybatis-plus 3.5.3.2 => 3.5.4 update satoken 1.36.0 => 1.37.0 update hutool 5.8.20 => 5.8.22 update aws-java-sdk-s3 1.12.400 => 1.12.540 update vue-quill 1.1.0 => 1.2.0 功能更新 upd

2023-11-28

boot 2.7.17 => 2.7.18 升级到2.X最终版本(官方停更) update mybatis-plus 3.5.3.2 => 3.5.4 update springboot 2.7.14 => 2.7.17 update satoken 1.36.0 => 1.37.0 update aws-java-sdk-s3 1.12.400 => 1.12.540 update vue-quill 1.1.0 => 1.2.0 功能更新

2023-07-21

特点介绍: sqltoy 的核心构建思想 sqltoy 的对比 mybatis (plus) 的核心点:查询语句编写、可阅读性、可维护性 对象化 crud 是基础,但 sqltoy 有针对性的改进:update、updateSaveFetch、updateFetch 等 sqltoy 的缓存翻译,

2023-07-16

天下大势,分久必合! Hibernate/MyBatis+ plus +Sharding JDBC + Jpa+ Spring data+ GraphQL+ App ORM (Android, 鸿蒙)= Bee Spring Cloud 微服务使用数据库更方便:Bee + Spring Boot; 轻松支持多数据源,Sharding, Mongodb. 要整合一堆的工具,还不如只用一个

2023-11-16

min 3.1.5 => 3.1.7 update satoken 1.35.0.RC => 1.37.0 update mybatis-plus 3.5.3.2 => 3.5.4 适配mp新版本改动 update dynamic-ds 4.1.3 => 4.2.0 update bouncycastle 1.72 => 1.76 update poi 5.2.3 => 5.2.4 update redisson 3.23.2 => 3.24.1 update huto

2024-10-29

excel 4.0.2 => 4.0.3 update redisson 3.34.1 => 3.37.0 update mybatis-plus 3.5.7 => 3.5.8 update sa-token 1.38.0 => 1.39.0 update aws-s3 2.25.15 => 2.28.22 update aws-crt 0.29.13 => 0.31.3 update mapstruct-plus 1.4.4 => 1.4.5 功能更新 update