{"id":25569687,"url":"https://github.com/future-architect/uroborosql","last_synced_at":"2025-05-07T21:08:49.064Z","repository":{"id":18256388,"uuid":"83053870","full_name":"future-architect/uroborosql","owner":"future-architect","description":"Developer-oriented and SQL centric database access library","archived":false,"fork":false,"pushed_at":"2025-05-05T05:52:49.000Z","size":2666,"stargazers_count":91,"open_issues_count":2,"forks_count":8,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-05-07T21:08:38.449Z","etag":null,"topics":["java","java-library","orm","sql"],"latest_commit_sha":null,"homepage":"https://future-architect.github.io/uroborosql-doc/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/future-architect.png","metadata":{"files":{"readme":"README.ja.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,"zenodo":null}},"created_at":"2017-02-24T15:16:04.000Z","updated_at":"2025-05-05T05:36:58.000Z","dependencies_parsed_at":"2024-07-22T15:29:34.221Z","dependency_job_id":"d7463c12-ed54-4439-a99f-fb01059511d4","html_url":"https://github.com/future-architect/uroborosql","commit_stats":null,"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/future-architect%2Furoborosql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/future-architect%2Furoborosql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/future-architect%2Furoborosql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/future-architect%2Furoborosql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/future-architect","download_url":"https://codeload.github.com/future-architect/uroborosql/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252954409,"owners_count":21830905,"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","java-library","orm","sql"],"created_at":"2025-02-21T00:02:34.369Z","updated_at":"2025-05-07T21:08:49.055Z","avatar_url":"https://github.com/future-architect.png","language":"Java","funding_links":[],"categories":["数据库开发"],"sub_categories":[],"readme":"[![Maven Central](https://maven-badges.herokuapp.com/maven-central/jp.co.future/uroborosql/badge.svg?style=plastic)](https://maven-badges.herokuapp.com/maven-central/jp.co.future/uroborosql) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg?style=plastic)](https://raw.githubusercontent.com/future-architect/uroborosql/master/LICENSE) [![Javadocs](https://www.javadoc.io/badge/jp.co.future/uroborosql.svg)](https://www.javadoc.io/doc/jp.co.future/uroborosql) [![Build Status](https://github.com/future-architect/uroborosql/actions/workflows/ci.yml/badge.svg)](https://github.com/future-architect/uroborosql/actions/workflows/ci.yml) [![Coverage Status](https://coveralls.io/repos/github/future-architect/uroborosql/badge.svg?branch=master)](https://coveralls.io/github/future-architect/uroborosql?branch=master)\n\nuroboroSQL\n==========\n\n\u003cimg src=\"https://future-architect.github.io/uroborosql-doc//images/logo.png\" style=\"max-width: 600px;\" alt=\"uroboroSQL\" /\u003e\n\nuroboroSQLは、Java8対応の2Way-SQLが利用可能なシンプルなSQL実行ライブラリです。\n\nuroboroSQLは主にSQL中心の設計コンセプトを採用しています。Javaを中心に考えてSQLを組み立てるという思想ではなく、SQLに足りないところをJavaで補うという思想です。\n\nエンタープライズで培われたノウハウとして、区分値サポート、リトライ、フィルターによるカスタマイズなどの機能を充実させています。また、2Way-SQLに対して、カバレッジを取れるようにするという、品質視点での機能があるのも特徴です。\n\nさらにSQLの開発生産性を格段に上げるREPL機能も搭載しています。\n\n[![asciicast](https://asciinema.org/a/122312.png)](https://asciinema.org/a/122312)\n\n## Installation\n\n### for Maven\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ejp.co.future\u003c/groupId\u003e\n    \u003cartifactId\u003euroborosql\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.5\u003c/version\u003e\n\u003c/dependency\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\n    \u003cartifactId\u003espring-expression\u003c/artifactId\u003e\n    \u003cversion\u003e5.3.20\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nまたは\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ejp.co.future\u003c/groupId\u003e\n    \u003cartifactId\u003euroborosql\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.5\u003c/version\u003e\n\u003c/dependency\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003eognl\u003c/groupId\u003e\n    \u003cartifactId\u003eognl\u003c/artifactId\u003e\n    \u003cversion\u003e3.1.23\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### for Gradle\n\n```gradle\ncompile group: 'jp.co.future', name: 'uroborosql', version: '1.0.5'\ncompile group: 'org.springframework', name: 'spring-expression', version: '5.3.20'\n```\n\nまたは\n\n```gradle\ncompile group: 'jp.co.future', name: 'uroborosql', version: '1.0.5'\ncompile group: 'ognl', name: 'ognl', version: '3.1.23'\n```\n\n## Documentation\n\n[https://future-architect.github.io/uroborosql-doc/](https://future-architect.github.io/uroborosql-doc/)\n\n## Requirement\n\n- Java 11 or later.\n\n## Quick start\n\n### 2Way-SQL\n\n```sql\n/* department/select_department.sql */\n\nSELECT /* _SQL_ID_ */\n DEPT.DEPT_NO AS DEPT_NO\n, DEPT.DEPT_NAME AS DEPT_NAME\nFROM\n DEPARTMENT DEPT\nWHERE\n 1    = 1\n/*IF SF.isNotEmpty(dept_no)*/\nAND DEPT.DEPT_NO = /*dept_no*/1\n/*END*/\n/*IF SF.isNotEmpty(dept_name)*/\nAND DEPT.DEPT_NAME = /*dept_name*/'sample'\n/*END*/\n\n```\n\n```sql\n/* department/insert_department.sql */\n\nINSERT\n/* _SQL_ID_ */\nINTO\n DEPARTMENT\n(\n DEPT_NO\n, DEPT_NAME\n) VALUES (\n /*dept_no*/1\n, /*dept_name*/'sample'\n)\n```\n\n```java\nSqlConfig config = UroboroSQL.builder(\"jdbc:h2:mem:test;DB_CLOSE_DELAY=-1\", \"sa\", \"\")\n    .build();\n\ntry (SqlAgent agent = config.agent()) {\n  // SELECT\n  List\u003cMap\u003cString, Object\u003e\u003e departments = agent.query(\"department/select_department\")\n      .param(\"dept_no\", 1001)\n      .collect();\n\n  // INSERT\n  int count = agent.update(\"department/insert_department\")\n      .param(\"dept_no\", 1001)\n      .param(\"dept_name\", \"sales\")\n      .count();\n}\n```\n\n### DAO Interface\n\n```java\nSqlConfig config = UroboroSQL.builder(\"jdbc:h2:mem:test;DB_CLOSE_DELAY=-1\", \"sa\", \"\")\n    .build();\n\ntry (SqlAgent agent = config.agent()) {\n  // select\n  Department dept = agent.find(Department.class, 1001)\n      .orElse(null);\n\n  // insert\n  Department hrDept = new Department();\n  hrDept.setDeptNo(1002);\n  hrDept.setDeptName(\"HR\");\n  agent.insert(hrDept);\n\n  // update\n  hrDept.setDeptName(\"Human Resources\");\n  agent.update(hrDept);\n\n  // delete\n  agent.delete(hrDept);\n}\n```\n\n## Sample application\n\n- CLI\n  - \u003chttps://github.com/future-architect/uroborosql-sample\u003e\n- Web application(with Spring Boot)\n  - \u003chttps://github.com/shout-star/uroborosql-springboot-demo\u003e\n\n## Automated code generation\n\n- uroboroSQL source generator\n  - \u003chttps://github.com/shout-star/uroborosql-generator\u003e\n\n## SQL Formatter\n\n\u003cimg src=\"https://github.com/future-architect/uroboroSQL-formatter/raw/master/image/uroboroSQLformatter_logo.png\" style=\"max-width: 500px;\" alt=\"uroboroSQL\" /\u003e\n\n開発で便利なSQL formatterも用意しています。\n\n- CLI\n  - \u003chttps://github.com/future-architect/uroboroSQL-formatter\u003e\n- VSCode Plugin\n  - \u003chttps://github.com/future-architect/vscode-uroborosql-fmt\u003e\n- Eclipse Plugin\n  - \u003chttps://github.com/future-architect/eclipse-uroborosql-formatter\u003e\n- Sublime Text 3 Plugin\n  - \u003chttps://github.com/future-architect/Sublime-uroboroSQL-formatter\u003e\n- IntelliJ IDEA Platform Plugin\n  - \u003chttps://github.com/future-architect/idea-uroborosql-formatter\u003e\n\n## License\n\nReleased under the [MIT License](https://github.com/future-architect/uroborosql/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuture-architect%2Furoborosql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuture-architect%2Furoborosql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuture-architect%2Furoborosql/lists"}