{"id":31050356,"url":"https://github.com/vonchange/spring-data-jdbc-mybatis","last_synced_at":"2025-09-14T22:42:00.724Z","repository":{"id":41907823,"uuid":"244171560","full_name":"VonChange/spring-data-jdbc-mybatis","owner":"VonChange","description":"spring data jdbc extend mybatis dynamic sql","archived":false,"fork":false,"pushed_at":"2025-02-03T05:17:42.000Z","size":1060,"stargazers_count":100,"open_issues_count":0,"forks_count":15,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-05T19:12:37.430Z","etag":null,"topics":["crud","jdbc-template","jdbctemplate","jpa","mybaits","orm","spring","spring-data-jdbc","spring-jdbc"],"latest_commit_sha":null,"homepage":"http://www.vonchange.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VonChange.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-01T15:14:47.000Z","updated_at":"2025-06-19T02:29:13.000Z","dependencies_parsed_at":"2024-06-26T09:55:59.828Z","dependency_job_id":"11babe48-def1-414b-985b-c550b148b0ec","html_url":"https://github.com/VonChange/spring-data-jdbc-mybatis","commit_stats":null,"previous_names":["vonchange/spring-data-jdbc-mybatis","vonchange/spring-data-mybatis-mini"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/VonChange/spring-data-jdbc-mybatis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VonChange%2Fspring-data-jdbc-mybatis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VonChange%2Fspring-data-jdbc-mybatis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VonChange%2Fspring-data-jdbc-mybatis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VonChange%2Fspring-data-jdbc-mybatis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VonChange","download_url":"https://codeload.github.com/VonChange/spring-data-jdbc-mybatis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VonChange%2Fspring-data-jdbc-mybatis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275180197,"owners_count":25419065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crud","jdbc-template","jdbctemplate","jpa","mybaits","orm","spring","spring-data-jdbc","spring-jdbc"],"created_at":"2025-09-14T22:41:59.798Z","updated_at":"2025-09-14T22:42:00.713Z","avatar_url":"https://github.com/VonChange.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# spring-data-jdbc-mybatis\n\n![](https://img.shields.io/maven-central/v/com.vonchange.common/spring-data-jdbc-mybatis.svg?label=Maven%20Central)\n[![](https://img.shields.io/github/stars/vonchange/spring-data-jdbc-mybatis.svg?style=social)\n](https://github.com/VonChange/spring-data-jdbc-mybatis)\n\n[简体中文](./README.zh-CN.md)\n\n**spring data jdbc extend mybatis dynamic sql**\n## What Is This?\n* It aims at being conceptually easy. In order to achieve this it does NOT offer caching, lazy loading,QueryDSL, write behind or many other features of JPA. This makes  a simple, limited, opinionated ORM.\n\n* use mybatis dynamic SQL(not dependency mybatis),it is good for complex SQL\n\n* SQL is  written in Markdown\n\n\n[UserInfoRepository.md](spring-data-jdbc-mybatis-demo%2Fsrc%2Fmain%2Fresources%2Fsql%2FUserInfoRepository.md)\n\n```sql\n-- findUserByIds\nSELECT  [@id column] FROM user_base \n\u003cwhere\u003e \n[@@and id in #{idList:in} and user_name like #{userName:like}]\n[@and user_name like userName%]\n[@and id in idList]\n\u003cif test=\"null!=createTime\"\u003e  and create_time \u003c #{createTime}  \u003c/if\u003e\n\u003c/where\u003e\n```\n## see  [easy-dynamic-sql.md](easy-dynamic-sql.md)\n\n* extend findByExample,findByBeanProperties [UserExample.java](spring-data-jdbc-mybatis-demo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fvonchange%2Fnine%2Fdemo%2Fdao%2FUserExample.java)\n```\nuserInfoMethodDao.findAll(UserExample.builder()\n.userCodeIn(Arrays.asList(\"u001\",\"u002\"))\n.userNameLike(\"ch%\")\n.createTimeDesc(true).build());\n```\n\n## Features\n* method name query [method-name-query.md](method-name-query.md)\n* @Id @Table @Column\n* recommend CrudExtendRepository not CrudRepository,because [curd-repository.md](curd-repository.md)\n* not support @Query or QueryDSL, sql must be written in markdown\n* batch update [bach-update.md](bach-update.md)\n* [multi-datasource.md](multi-datasource.md)\n\n## Getting Started with JDBC mybatis\n\n[UserInfoRepository.java](spring-data-jdbc-mybatis-demo%2Fsrc%2Fmain%2Fjava%2Fcom%2Fvonchange%2Fnine%2Fdemo%2Fdao%2FUserInfoRepository.java)\n```java\npublic interface UserInfoRepository extends CrudExtendRepository\u003cUserInfoDO, Long\u003e {\n    List\u003cUserInfoDO\u003e findByUserCodes(@Param(\"userCodes\") List\u003cString\u003e userCodes);\n    List\u003cUserInfoDO\u003e findUserBySearchParam(@Param(\"param\") SearchParam searchParam);\n}\n```\n\u003e define sql in markdown [UserInfoRepository.md](spring-data-jdbc-mybatis-demo%2Fsrc%2Fmain%2Fresources%2Fsql%2FUserInfoRepository.md)\n\n\u003e need  @EnableJdbcRepositories\n```java\n@SpringBootApplication\n@EnableJdbcRepositories\npublic class JdbcMybatisTestApplication {\n    public static void main(String[] args) {\n        SpringApplication.run(JdbcMybatisTestApplication.class, args);\n    }\n}\n```\n\u003e maven\n```\n\u003c!-- spring boot 2.x --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.vonchange.common\u003c/groupId\u003e\n  \u003cartifactId\u003espring-data-jdbc-mybatis\u003c/artifactId\u003e\n  \u003cversion\u003e${version}\u003c/version\u003e\n\u003c/dependency\u003e\n\u003cdependency\u003e\n       \u003cgroupId\u003eorg.springframework.data\u003c/groupId\u003e\n       \u003cartifactId\u003espring-data-commons\u003c/artifactId\u003e\n \u003c/dependency\u003e\n \u003cdependency\u003e\n         \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n         \u003cartifactId\u003espring-boot-starter-jdbc\u003c/artifactId\u003e\n \u003c/dependency\u003e\n\n```\n\n\n\n## official spring data jdbc extend mybatis dynamic sql\n\nsee spring-data-jdbc-demo\n\nconfiguration\n```\n@Configuration\npublic class MybatisQuerySupportConfig {\n    @Bean\n    public NamedParameterJdbcOperations namedParameterJdbcOperations(DataSource dataSource) {\n        return new MybatisJdbcTemplate(dataSource) {@Override protected Dialect dialect() {return new MySQLDialect();}};\n    }\n}\n```\nuse\n```\n    @Query(\"user.queryByUserCode\")\n    List\u003cUserDTO\u003e queryByUserCode(@Param(\"userCode\") String userCode);\n```\nbut SpEL support became available with Spring Data JDBC 3.0 RC1 ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvonchange%2Fspring-data-jdbc-mybatis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvonchange%2Fspring-data-jdbc-mybatis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvonchange%2Fspring-data-jdbc-mybatis/lists"}