简单点 开发的方法简单点 繁琐的功能请省略 你有不是个AI
使用方式和官方教程一样 引入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片段
底层 jdbcTemplate 复杂SQL才需要mybatis动态模板能力 无QueryDSL 提供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
-- findUser
SELECT [@id column] FROM user_info
<where>
[@@and id in #{idList:in} and user_name like #{userName:like}]
[@and user_name like userName%]
[@and id in idList]
<if test="null!=createTime"> and create_time < #{createTime} </if>
</where>
userInfoMethodDao.findAll(UserExample.builder()
.userCodeIn(Arrays.asList("u001","u002"))
.userNameLike("ch%")
.createTimeDesc(true).build());
public interface UserInfoRepository extends CrudExtendRepository<UserInfoDO, Long> {
List<UserInfoDO> findByUserCodes(@Param("userCodes") List<String> userCodes);
List<UserInfoDO> findUserBySearchParam(@Param("param") SearchParam searchParam);
}
在 markdown 定义 UserInfoRepository.md
只需要 @EnableJdbcRepositories 注解
@SpringBootApplication
@EnableJdbcRepositories
public class JdbcMybatisTestApplication {
public static void main(String[] args) {
SpringApplication.run(JdbcMybatisTestApplication.class, args);
}
}
maven 支持spring boot 2.x
<!-- spring boot 2.x -->
<dependency>
<groupId>com.vonchange.common</groupId>
<artifactId>spring-data-jdbc-mybatis</artifactId>
<version>${version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。