{"id":20608946,"url":"https://github.com/mybatis/spring-native","last_synced_at":"2025-04-06T04:13:13.123Z","repository":{"id":37713780,"uuid":"453716938","full_name":"mybatis/spring-native","owner":"mybatis","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-14T03:37:09.000Z","size":1083,"stargazers_count":86,"open_issues_count":12,"forks_count":17,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-30T03:07:20.530Z","etag":null,"topics":["java","spring"],"latest_commit_sha":null,"homepage":null,"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/mybatis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2022-01-30T15:22:06.000Z","updated_at":"2025-03-12T20:47:44.000Z","dependencies_parsed_at":"2023-12-02T03:22:15.325Z","dependency_job_id":"6e7c713d-0815-4d19-9b47-b1e347b2bb64","html_url":"https://github.com/mybatis/spring-native","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mybatis%2Fspring-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mybatis%2Fspring-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mybatis%2Fspring-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mybatis%2Fspring-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mybatis","download_url":"https://codeload.github.com/mybatis/spring-native/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247430878,"owners_count":20937874,"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","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":["java","spring"],"created_at":"2024-11-16T10:12:17.723Z","updated_at":"2025-04-06T04:13:12.959Z","avatar_url":"https://github.com/mybatis.png","language":"Java","readme":"# MyBatis integration with Spring Native feature\n\n[![Java CI](https://github.com/mybatis/spring-native/actions/workflows/ci.yaml/badge.svg)](https://github.com/mybatis/spring-native/actions/workflows/ci.yaml)\n[![Samples](https://github.com/mybatis/spring-native/actions/workflows/samples.yaml/badge.svg)](https://github.com/mybatis/spring-native/actions/workflows/samples.yaml)\n[![Coverage Status](https://coveralls.io/repos/github/mybatis/spring-native/badge.svg?branch=master)](https://coveralls.io/github/mybatis/spring-native?branch=master)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=mybatis_spring-native\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=mybatis_spring-native)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=mybatis_spring-native\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=mybatis_spring-native)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=mybatis_spring-native\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=mybatis_spring-native)\n\n[![Maven central](https://maven-badges.herokuapp.com/maven-central/org.mybatis.spring.native/mybatis-spring-native/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.mybatis.spring.native/mybatis-spring-native)\n[![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/https/oss.sonatype.org/org.mybatis.spring.native/mybatis-spring-native.svg)](https://oss.sonatype.org/content/repositories/snapshots/org/mybatis/spring/native/mybatis-spring-native/)\n[![License](https://img.shields.io/:license-apache-brightgreen.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)\n\n![mybatis-spring](https://mybatis.org/images/mybatis-logo.png)\n\nThe project that the MyBatis integration with Spring Native feature.\n\n## Requirements\n\n* Java 11+\n* [GraalVM](https://github.com/graalvm/graalvm-ce-builds/releases)\n* [Spring Boot](https://github.com/spring-projects/spring-boot) 2.6.3+\n* [Spring Native](https://github.com/spring-projects-experimental/spring-native) 0.11.2+\n* [MyBatis Spring](https://github.com/mybatis/spring) 2.0.7+\n* [MyBatis Spring Boot](https://github.com/mybatis/spring-boot-starter) 2.2.2+\n\n## Essentials\n\n* [Quick Start](https://github.com/mybatis/spring-native/wiki/Quick-Start)\n* [Reference documentation](docs/src/site/markdown/index.md)\n\n### Translations\n\n* [Reference documentation (简体中文)](docs/src/site/zh/markdown/index.md)\n* [Reference documentation (한국어)](docs/src/site/ko/markdown/index.md)\n\n## How to install on your application\n\nSpecify the `mybatis-spring-native-core` on `pom.xml` as follows:\n\n**Maven:**\n\n```xml\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003eorg.mybatis.spring.native\u003c/groupId\u003e\n    \u003cartifactId\u003emybatis-spring-native-core\u003c/artifactId\u003e\n    \u003cversion\u003e0.1.0-SNAPSHOT\u003c/version\u003e\n  \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n**Gradle:**\n\n```groovy\ndependencies {\n  compile(\"org.mybatis.spring.native:mybatis-spring-native-core:0.1.0-SNAPSHOT\")\n}\n```\n\nIf you use other extension modules provided by mybatis, please specify the `mybatis-spring-native-extensions` instead of `mybatis-spring-native-core`.\n\n**Maven:**\n\n```xml\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003eorg.mybatis.spring.native\u003c/groupId\u003e\n    \u003cartifactId\u003emybatis-spring-native-extensions\u003c/artifactId\u003e\n    \u003cversion\u003e0.1.0-SNAPSHOT\u003c/version\u003e\n  \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n**Gradle:**\n\n```groovy\ndependencies {\n  compile(\"org.mybatis.spring.native:mybatis-spring-native-extensions:0.1.0-SNAPSHOT\")\n}\n```\n\nAdd Sonatype OSS snapshot repository when use MyBatis's snapshot modules.\n\n**Maven:**\n\n```xml\n\u003crepositories\u003e\n  \u003crepository\u003e\n    \u003cid\u003esonatype-oss-snapshots\u003c/id\u003e\n    \u003cname\u003eSonatype OSS Snapshots Repository\u003c/name\u003e\n   \u003curl\u003ehttps://oss.sonatype.org/content/repositories/snapshots\u003c/url\u003e\n  \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n**Gradle:**\n\n```groovy\nrepositories {\n  maven { url \"https://oss.sonatype.org/content/repositories/snapshots\" }\n}\n```\n\n## How to build\n\nIf you want to build this project, please will execute following procedures.\n\n\u003e **NOTE: Pre Conditions**\n\u003e\n\u003e Need to following environment variables are defined.\n\u003e\n\u003e * `JAVA_HOME`\n\u003e * `GRAALVM_HOME`\n\n### All modules\n\n```\n./mvnw -Pnative clean package\n```\n\u003e **WARNING:**\n\u003e\n\u003e **Building all modules takes long time.**\n\n\n### Core module and specific sample module\n\n```\n./mvnw -pl core,samples/simple -Pnative clean package\n```\n\n\u003e **NOTE:**\n\u003e\n\u003e Please replace the 'simple' part  on above example to sample's suffix value(e.g. xml, sqlprovider and more) that you want to build.\n\n### Extension module and specific sample module\n\n```\n./mvnw -pl core,extensions,samples/thymeleaf -Pnative clean package\n```\n\n## How to run a sample\n\nExecute the following command when the build is completed.\n\n### Run with Native Image\n\n\n```\n./samples/simple/target/mybatis-spring-native-sample-simple\n```\n\n```\n2022-01-22 13:45:10.453  INFO 2265 --- [           main] o.s.nativex.NativeListener               : AOT mode enabled\n\n  .   ____          _            __ _ _\n /\\\\ / ___'_ __ _ _(_)_ __  __ _ \\ \\ \\ \\\n( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\\n \\\\/  ___)| |_)| | | | | || (_| |  ) ) ) )\n  '  |____| .__|_| |_|_| |_\\__, | / / / /\n =========|_|==============|___/=/_/_/_/\n :: Spring Boot ::                (v2.6.3)\n\n2022-01-22 13:45:10.455  INFO 2265 --- [           main] s.s.MybatisSpringNativeSampleApplication : Starting MybatisSpringNativeSampleApplication v0.1.0-SNAPSHOT using Java 17.0.1 on fv-az136-971 with PID 2265 (/home/runner/work/mybatis-spring-native/mybatis-spring-native/samples/simple/target/mybatis-spring-native-sample-simple started by runner in /home/runner/work/mybatis-spring-native/mybatis-spring-native)\n2022-01-22 13:45:10.455  INFO 2265 --- [           main] s.s.MybatisSpringNativeSampleApplication : No active profile set, falling back to default profiles: default\n2022-01-22 13:45:10.487  INFO 2265 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...\n2022-01-22 13:45:10.491  INFO 2265 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.\n2022-01-22 13:45:10.496  INFO 2265 --- [           main] s.s.MybatisSpringNativeSampleApplication : Started MybatisSpringNativeSampleApplication in 0.054 seconds (JVM running for 0.056)\n2022-01-22 13:45:10.497  INFO 2265 --- [           main] s.s.MybatisSpringNativeSampleApplication : New city: City{id=4, name='NYC', state='NY', country='USA'}\n2022-01-22 13:45:10.497  INFO 2265 --- [           main] s.s.MybatisSpringNativeSampleApplication : City{id=1, name='San Francisco', state='CA', country='USA'}\n2022-01-22 13:45:10.497  INFO 2265 --- [           main] s.s.MybatisSpringNativeSampleApplication : City{id=2, name='Boston', state='MA', country='USA'}\n2022-01-22 13:45:10.497  INFO 2265 --- [           main] s.s.MybatisSpringNativeSampleApplication : City{id=3, name='Portland', state='OR', country='USA'}\n2022-01-22 13:45:10.497  INFO 2265 --- [           main] s.s.MybatisSpringNativeSampleApplication : City{id=4, name='NYC', state='NY', country='USA'}\n2022-01-22 13:45:10.498  INFO 2265 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...\n2022-01-22 13:45:10.499  INFO 2265 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.\n```\n\n### Run with executable jar\n\n```\n./samples/simple/target/mybatis-spring-native-sample-simple-exec.jar\n```\n\n```\n2022-01-22 13:45:14.191  INFO 2305 --- [           main] o.s.nativex.NativeListener               : AOT mode disabled\n\n  .   ____          _            __ _ _\n /\\\\ / ___'_ __ _ _(_)_ __  __ _ \\ \\ \\ \\\n( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\\n \\\\/  ___)| |_)| | | | | || (_| |  ) ) ) )\n  '  |____| .__|_| |_|_| |_\\__, | / / / /\n =========|_|==============|___/=/_/_/_/\n :: Spring Boot ::                (v2.6.3)\n\n2022-01-22 13:45:14.295  INFO 2305 --- [           main] s.s.MybatisSpringNativeSampleApplication : Starting MybatisSpringNativeSampleApplication v0.1.0-SNAPSHOT using Java 17.0.1 on fv-az136-971 with PID 2305 (/home/runner/work/mybatis-spring-native/mybatis-spring-native/samples/simple/target/mybatis-spring-native-sample-simple-0.1.0-SNAPSHOT-exec.jar started by runner in /home/runner/work/mybatis-spring-native/mybatis-spring-native)\n2022-01-22 13:45:14.296  INFO 2305 --- [           main] s.s.MybatisSpringNativeSampleApplication : No active profile set, falling back to default profiles: default\n2022-01-22 13:45:15.349  INFO 2305 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...\n2022-01-22 13:45:15.578  INFO 2305 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.\n2022-01-22 13:45:15.718  INFO 2305 --- [           main] s.s.MybatisSpringNativeSampleApplication : Started MybatisSpringNativeSampleApplication in 1.892 seconds (JVM running for 2.406)\n2022-01-22 13:45:15.774  INFO 2305 --- [           main] s.s.MybatisSpringNativeSampleApplication : New city: City{id=4, name='NYC', state='NY', country='USA'}\n2022-01-22 13:45:15.804  INFO 2305 --- [           main] s.s.MybatisSpringNativeSampleApplication : City{id=1, name='San Francisco', state='CA', country='USA'}\n2022-01-22 13:45:15.805  INFO 2305 --- [           main] s.s.MybatisSpringNativeSampleApplication : City{id=2, name='Boston', state='MA', country='USA'}\n2022-01-22 13:45:15.805  INFO 2305 --- [           main] s.s.MybatisSpringNativeSampleApplication : City{id=3, name='Portland', state='OR', country='USA'}\n2022-01-22 13:45:15.806  INFO 2305 --- [           main] s.s.MybatisSpringNativeSampleApplication : City{id=4, name='NYC', state='NY', country='USA'}\n2022-01-22 13:45:15.816  INFO 2305 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...\n2022-01-22 13:45:15.823  INFO 2305 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.\n```\n\n## Related Links\n\n* https://spring.io/blog/2021/12/29/go-go-graalvm-with-spring-native-my-adventures-in-native-image-ville\n* https://joshlong.com/jl/blogPost/mybatis-and-spring-native.html\n* https://github.com/spring-projects-experimental/spring-native/issues/404\n* https://www.youtube.com/watch?v=EWWq3ts9Tv4\u0026t=1s\n\n## Special Thanks\n\nThanks for helping this project creation!!\n\n* Josh Long([@joshlong](https://github.com/joshlong))  \n  Josh provided [the first sample application](https://github.com/joshlong/mybatis-spring-native/tree/mybatis-spring).\n\n\n* Stéphane Nicoll([@snicoll](https://github.com/snicoll))  \n  Stéphane resolved and helped some issues for running MyBatis on native image. \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmybatis%2Fspring-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmybatis%2Fspring-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmybatis%2Fspring-native/lists"}