A WASM plugin for SQLC allowing the generation of Java code.
Note
Only the PostgreSQL and MySQL engines are supported currently. Support for SQLite is planned.
Important
The generated code makes heavy use of records, so you must be using a Java version that has record support (14+). Support is not currently planned for earlier Java versions, but if you think you could implement it then feel free to open a pull request.
| Name | Type | Required | Description |
|---|---|---|---|
package |
string | yes | The name of the package where the generated files will be located. |
emit_exact_table_names |
boolean | no | Whether table names will not be forced to singular form when generating the models. Defaults to false. |
inflection_exclude_table_names |
[]string | no | Table names to be excluded from being forced into singular form when generating the models. |
query_parameter_limit |
integer | no | not yet implemented |
indent_char |
string | no | The character to use to indent the code. Defaults to space " ". |
chars_per_indent_level |
integer | no | The number of characters per indent level. Defaults to 4. |
nullable_annotation |
string | no | The full import path for the nullable annotation to use. Defaults to org.jspecify.annotations.Nullable. Set to empty string to disable. |
non_null_annotation |
string | no | The full import path for the nonnull annotation to use. Defaults to org.jspecify.annotations.NonNull. Set to empty string to disable. |
expose_connection |
boolean | no | Whether a getter will be generated for the internally held connection instance. Defaults to false. |
Check the latest GitHub release for the plugin download URL and checksum.
sqlc.yaml
version: "2"
plugins:
- name: java
wasm:
url: https://github.com/tandemdude/sqlc-gen-java/releases/download/{{VERSION}}/sqlc-gen-java.wasm
sha256: {{CHECKSUM}}
sql:
- schema: src/main/resources/postgresql/schema.sql
queries: src/main/resources/postgresql/queries.sql
engine: postgresql
codegen:
- out: src/main/java/com/example/postgresql
plugin: java
options:
package: com.example.postgresqlBuilding the plugin is very simple, just clone the repository and run the following command:
GOOS=wasip1 GOARCH=wasm go build -o sqlc-gen-java.wasm plugin/main.goA file sqlc-gen-java.wasm will be created in the repository root - you can then move it to your sqlc-enabled project
and reference the plugin in your sqlc.yaml file using file://sqlc-gen-java.wasm as the plugin URL.
You should ensure that the sha256 value in your sqlc.yaml is correct for this new plugin file.
SQLitesupport- Improved parameter naming
Tentative:
- r2dbc support
- copyfrom support where possible ref