{"id":20207786,"url":"https://github.com/exasol/sql-statement-builder","last_synced_at":"2025-09-11T00:39:05.872Z","repository":{"id":34214064,"uuid":"149240414","full_name":"exasol/sql-statement-builder","owner":"exasol","description":"Build SQL statements safely without string concatenation","archived":false,"fork":false,"pushed_at":"2025-02-26T14:58:35.000Z","size":3939,"stargazers_count":25,"open_issues_count":2,"forks_count":5,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-03-24T11:38:21.311Z","etag":null,"topics":["builder-pattern","compile-time-checking","exasol","exasol-integration","foundation-library","java","sql"],"latest_commit_sha":null,"homepage":"","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/exasol.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":"2018-09-18T06:38:29.000Z","updated_at":"2024-08-13T15:44:04.000Z","dependencies_parsed_at":"2024-11-14T05:32:36.966Z","dependency_job_id":"69e9895b-d209-48e9-a0df-5de445a0cfc7","html_url":"https://github.com/exasol/sql-statement-builder","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exasol%2Fsql-statement-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exasol%2Fsql-statement-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exasol%2Fsql-statement-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exasol%2Fsql-statement-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exasol","download_url":"https://codeload.github.com/exasol/sql-statement-builder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248219858,"owners_count":21067192,"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":["builder-pattern","compile-time-checking","exasol","exasol-integration","foundation-library","java","sql"],"created_at":"2024-11-14T05:32:19.628Z","updated_at":"2025-04-10T12:51:09.270Z","avatar_url":"https://github.com/exasol.png","language":"Java","readme":"# SQL Statement Builder\n\n[![Build Status](https://github.com/exasol/sql-statement-builder/actions/workflows/ci-build.yml/badge.svg)](https://github.com/exasol/sql-statement-builder/actions/workflows/ci-build.yml)\n[![Maven Central \u0026ndash; Exasol SQL Statement Builder](https://img.shields.io/maven-central/v/com.exasol/sql-statement-builder)](https://search.maven.org/artifact/com.exasol/sql-statement-builder)\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=com.exasol%3Asql-statement-builder\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=com.exasol%3Asql-statement-builder)\n\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=com.exasol%3Asql-statement-builder\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=com.exasol%3Asql-statement-builder)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=com.exasol%3Asql-statement-builder\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=com.exasol%3Asql-statement-builder)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=com.exasol%3Asql-statement-builder\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=com.exasol%3Asql-statement-builder)\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=com.exasol%3Asql-statement-builder\u0026metric=sqale_index)](https://sonarcloud.io/dashboard?id=com.exasol%3Asql-statement-builder)\n\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=com.exasol%3Asql-statement-builder\u0026metric=code_smells)](https://sonarcloud.io/dashboard?id=com.exasol%3Asql-statement-builder)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=com.exasol%3Asql-statement-builder\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=com.exasol%3Asql-statement-builder)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=com.exasol%3Asql-statement-builder\u0026metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=com.exasol%3Asql-statement-builder)\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=com.exasol%3Asql-statement-builder\u0026metric=ncloc)](https://sonarcloud.io/dashboard?id=com.exasol%3Asql-statement-builder)\n\nThe Exasol SQL Statement Builder abstracts programmatic creation of SQL statements and is intended to replace ubiquitous string concatenation solutions which make the code hard to read and are prone to error and security risks.\n\nGoals:\n\n1. Foster clean and readable code\n1. Allow for thorough validation of dynamic parts\n1. Detect as many errors as possible at *compile time*\n1. Don't repeat yourself (DRY)\n1. Allow extension for different SQL dialects\n\n## In a Nutshell\n\nThe following example gives you an idea about what you can do with the SQL Statement Builder. Check our [user guide](doc/user_guide/user_guide.md) for more details.\n\n```java\nSelect select = StatementFactory.getInstance().select()\n    .field(\"fieldA\", \"tableA.fieldB\", \"tableB.*\");\nselect.from().table(\"schemaA.tableA\");\nselect.limit(10);\nStringRendererConfig config = StringRendererConfig.builder().quoteIdentifiers(true).build();\nSelectRenderer renderer = new SelectRenderer(config);\nselect.accept(renderer);\nString sql = renderer.render();\n```\n\n## Table of Contents\n\n### Information for Users\n\n\"Users\" from the perspective of the `sql-statement-builder` are developers integrating the module into their own software.\n\n* [User Guide](doc/user_guide/user_guide.md)\n* [API Documentation](https://exasol.github.io/sql-statement-builder/index.html)\n* [MIT License](LICENSE)\n* [Changelog](doc/changes/changelog.md)\n* [Dependencies](dependencies.md)\n\n### Information for Developers\n\n* [System Requirement Specification](doc/system_requirements.md)\n* [Design](doc/design.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexasol%2Fsql-statement-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexasol%2Fsql-statement-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexasol%2Fsql-statement-builder/lists"}