{"id":13605068,"url":"https://github.com/r2dbc/r2dbc-mssql","last_synced_at":"2025-04-09T05:10:53.326Z","repository":{"id":45575575,"uuid":"153808944","full_name":"r2dbc/r2dbc-mssql","owner":"r2dbc","description":"R2DBC Driver for Microsoft SQL Server using TDS (Tabular Data Stream) Protocol","archived":false,"fork":false,"pushed_at":"2024-10-02T09:03:54.000Z","size":1976,"stargazers_count":183,"open_issues_count":30,"forks_count":33,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-01T05:33:27.017Z","etag":null,"topics":["azure-sql-server","microsoft-sql-server","non-blocking","r2dbc","reactive","tds"],"latest_commit_sha":null,"homepage":"","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/r2dbc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","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":"2018-10-19T16:04:58.000Z","updated_at":"2025-03-03T20:48:41.000Z","dependencies_parsed_at":"2024-11-30T10:02:16.016Z","dependency_job_id":null,"html_url":"https://github.com/r2dbc/r2dbc-mssql","commit_stats":{"total_commits":364,"total_committers":15,"mean_commits":"24.266666666666666","dds":"0.35989010989010994","last_synced_commit":"3449c8462e39c9580cbcae32c8f784fb232c47b9"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r2dbc%2Fr2dbc-mssql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r2dbc%2Fr2dbc-mssql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r2dbc%2Fr2dbc-mssql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r2dbc%2Fr2dbc-mssql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r2dbc","download_url":"https://codeload.github.com/r2dbc/r2dbc-mssql/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247980837,"owners_count":21027808,"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":["azure-sql-server","microsoft-sql-server","non-blocking","r2dbc","reactive","tds"],"created_at":"2024-08-01T19:00:54.370Z","updated_at":"2025-04-09T05:10:53.301Z","avatar_url":"https://github.com/r2dbc.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# Reactive Relational Database Connectivity Microsoft SQL Server Implementation [![Java CI with Maven](https://github.com/r2dbc/r2dbc-mssql/workflows/Java%20CI%20with%20Maven/badge.svg?branch=main)](https://github.com/r2dbc/r2dbc-mssql/actions?query=workflow%3A%22Java+CI+with+Maven%22+branch%3Amain) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.r2dbc/r2dbc-mssql/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.r2dbc/r2dbc-mssql)\n \n\nThis project contains the [Microsoft SQL Server][m] implementation of the [R2DBC SPI][r]. This implementation is not intended to be used directly, but rather to be used as the backing implementation for a humane client library to delegate to\n\n[m]: https://microsoft.com/sqlserver\n[r]: https://github.com/r2dbc/r2dbc-spi\n\nThis driver provides the following features:\n\n* Complies with R2DBC 1.0\n* Login with username/password with temporary SSL encryption\n* Full SSL encryption support (for e.g. Azure usage).\n* Transaction Control\n* Simple execution of SQL batches (direct and cursored execution)\n* Execution of parametrized statements (direct and cursored execution)\n* Extensive type support (including `TEXT`, `VARCHAR(MAX)`, `IMAGE`, `VARBINARY(MAX)` and national variants, see below for exceptions)\n* Execution of stored procedures\n\nNext steps:\n\n* Add support for TVP and UDTs\n\n## Code of Conduct\n\nThis project is governed by the [R2DBC Code of Conduct](https://github.com/r2dbc/.github/blob/main/CODE_OF_CONDUCT.adoc). By participating, you are expected to uphold this code of conduct. Please\nreport unacceptable behavior to [info@r2dbc.io](mailto:info@r2dbc.io).\n\n## Getting Started\n\nHere is a quick teaser of how to use R2DBC MSSQL in Java:\n\n**URL Connection Factory Discovery**\n\n```java\nConnectionFactory connectionFactory = ConnectionFactories.get(\"r2dbc:mssql://\u003chost\u003e:1433/\u003cdatabase\u003e\");\n\nPublisher\u003c? extends Connection\u003e connectionPublisher = connectionFactory.create();\n```\n\n**Programmatic Connection Factory Discovery**\n\n```java\nConnectionFactoryOptions options = builder()\n    .option(DRIVER, \"sqlserver\")\n    .option(HOST, \"…\")\n    .option(PORT, …)  // optional, defaults to 1433\n    .option(USER, \"…\")\n    .option(PASSWORD, \"…\")\n    .option(DATABASE, \"…\") // optional\n    .option(SSL, true) // optional, defaults to false\n    .option(Option.valueOf(\"applicationName\"), \"…\") // optional\n    .option(Option.valueOf(\"preferCursoredExecution\"), true/false) // optional\n    .option(Option.valueOf(\"connectionId\"), new UUID(…)) // optional\n    .build();\n\nConnectionFactory connectionFactory = ConnectionFactories.get(options);\n\nPublisher\u003c? extends Connection\u003e connectionPublisher = connectionFactory.create();\n\n// Alternative: Creating a Mono using Project Reactor\nMono\u003cConnection\u003e connectionMono = Mono.from(connectionFactory.create());\n```\n\n**Supported ConnectionFactory Discovery Options**\n\n| Option            | Description\n| ----------------- | -----------\n| `ssl`             | Whether to use transport-level encryption for the entire SQL server traffic.\n| `driver`          | Must be `sqlserver`.\n| `host`            | Server hostname to connect to.\n| `port`            | Server port to connect to. Defaults to `1433`. _(Optional)_\n| `username`        | Login username.\n| `password`        | Login password.\n| `database`        | Initial database to select. Defaults to SQL Server user profile settings. _(Optional)_\n| `applicationName` | Name of the application. Defaults to driver name and version. _(Optional)_\n| `connectionId`    | Connection Id for tracing purposes. Defaults to a random Id. _(Optional)_\n| `connectTimeout`  | Connection Id for tracing purposes. Defaults to 30 seconds. _(Optional)_\n| `hostNameInCertificate` | Expected hostname in SSL certificate. Supports wildcards (e.g. `*.database.windows.net`). _(Optional)_\n| `lockWaitTimeout` | Lock wait timeout using `SET LOCK_TIMEOUT …`. _(Optional)_\n| `preferCursoredExecution` | Whether to prefer cursors  or direct execution for queries. Uses by default direct. Cursors require more round-trips but are more backpressure-friendly. Defaults to direct execution. Can be `boolean` or a `Predicate\u003cString\u003e` accepting the SQL query. _(Optional)_\n| `sendStringParametersAsUnicode` | Configure whether to send character data as unicode (NVARCHAR, NCHAR, NTEXT) or whether to use the database encoding, defaults to `true`. If disabled, `CharSequence` data is sent using the database-specific collation such as ASCII/MBCS instead of Unicode.\n| `sslTunnel`       | Enables SSL tunnel usage when using a SSL tunnel or SSL terminator in front of SQL Server. Accepts `Function\u003cSslContextBuilder, SslContextBuilder\u003e` to customize the SSL tunnel settings. SSL tunneling is not related to SQL Server's built-in SSL support. _(Optional)_\n| `sslContextBuilderCustomizer`  | SSL Context customizer to configure SQL Server's built-in SSL support (`Function\u003cSslContextBuilder, SslContextBuilder\u003e`) _(Optional)_\n| `tcpKeepAlive`    | Enable/disable TCP KeepAlive. Disabled by default. _(Optional)_\n| `tcpNoDelay`      | Enable/disable TCP NoDelay. Enabled by default. _(Optional)_\n| `trustServerCertificate` | Fully trust the server certificate bypassing X.509 certificate validation. Disabled by default. _(Optional)_\n| `trustStoreType`  | Type of the TrustStore. Defaults to `KeyStore.getDefaultType()`. _(Optional)_\n| `trustStore`      | Path to the certificate TrustStore file. _(Optional)_\n| `trustStorePassword` | Password used to check the integrity of the TrustStore data. _(Optional)_\n\n\n**Programmatic Configuration**\n\n```java\nMssqlConnectionConfiguration configuration = MssqlConnectionConfiguration.builder()\n    .host(\"…\")\n    .username(\"…\")\n    .password(\"…\")\n    .database(\"…\")\n    .preferCursoredExecution(…)\n    .build();\n\nMssqlConnectionFactory factory = new MssqlConnectionFactory(configuration);\n\nMono\u003cMssqlConnection\u003e connectionMono = factory.create();\n```\n\nMicrosoft SQL Server uses named parameters that are prefixed with `@`. The following SQL statement makes use of parameters:\n\n```sql\nINSERT INTO person (id, first_name, last_name) VALUES(@id, @firstname, @lastname)\n```\n\nParameters are referenced without the `@` prefix when binding these:\n\n```java\nconnection.createStatement(\"INSERT INTO person (id, first_name, last_name) VALUES(@id, @firstname, @lastname)\")\n            .bind(\"id\", 1)\n            .bind(\"firstname\", \"Walter\")\n            .bind(\"lastname\", \"White\")\n            .execute()\n``` \n\nBinding also allows positional index (zero-based) references. The parameter index is derived from the parameter discovery order when parsing the query.\n\n### Maven configuration\n\nArtifacts can be found on [Maven Central](https://search.maven.org/search?q=r2dbc-mssql).\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.r2dbc\u003c/groupId\u003e\n  \u003cartifactId\u003er2dbc-mssql\u003c/artifactId\u003e\n  \u003cversion\u003e${version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nIf you'd rather like the latest snapshots of the upcoming major version, use our Maven snapshot repository and declare the appropriate dependency version.\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.r2dbc\u003c/groupId\u003e\n  \u003cartifactId\u003er2dbc-mssql\u003c/artifactId\u003e\n  \u003cversion\u003e${version}.BUILD-SNAPSHOT\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003crepository\u003e\n\u003cid\u003esonatype-nexus-snapshots\u003c/id\u003e\n\u003cname\u003eSonatype OSS Snapshot Repository\u003c/name\u003e\n\u003curl\u003ehttps://oss.sonatype.org/content/repositories/snapshots\u003c/url\u003e\n\u003c/repository\u003e\n``` \n\n## Transaction Definitions\n\nSQL Server supports additional options when starting a transaction. In particular, the following options can be specified:\n\n* Isolation Level (`isolationLevel`) (reset after the transaction to previous value)\n* Transaction Name (`name`)\n* Transaction Log Mark (`mark`)\n* Lock Wait Timeout (`lockWaitTimeout`) (reset after the transaction to `-1`)\n\nThese options can be specified upon transaction begin to start the transaction and apply options in a single command roundtrip:\n\n```java\nMssqlConnection connection= …;\n\n        connection.beginTransaction(MssqlTransactionDefinition.from(IsolationLevel.READ_UNCOMMITTED)\n        .name(\"my-transaction\").mark(\"tx-log-mark\")\n        .lockTimeout(Duration.ofMinutes(1)));\n```\n\nSee also: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/begin-transaction-transact-sql\n\n### Data Type Mapping\n\nThis reference table shows the type mapping between [Microsoft SQL Server][m] and Java data types:\n\n| Microsoft SQL Server Type                 | Java Data Type                                                                                                                           | \n|:------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------|\n| [`bit`][sql-bit-ref]                      | [**`Boolean`**][java-boolean-ref], [`Byte`][java-byte-ref], [`Short`][java-short-ref], [`Integer`][java-integer-ref], [`Long`][java-long-ref], [`BigDecimal`][java-bigdecimal-ref], [`BigInteger`][java-biginteger-ref] |\n| [`tinyint`][sql-all-int-ref]              | [**`Byte`**][java-byte-ref], [`Boolean`][java-boolean-ref], [`Short`][java-short-ref], [`Integer`][java-integer-ref], [`Long`][java-long-ref], [`BigDecimal`][java-bigdecimal-ref], [`BigInteger`][java-biginteger-ref] |\n| [`smallint`][sql-all-int-ref]             | [**`Short`**][java-short-ref], [`Boolean`][java-boolean-ref], [`Byte`][java-byte-ref], [`Integer`][java-integer-ref], [`Long`][java-long-ref], [`BigDecimal`][java-bigdecimal-ref], [`BigInteger`][java-biginteger-ref] |\n| [`int`][sql-all-int-ref]                  | [**`Integer`**][java-integer-ref], [`Boolean`][java-boolean-ref], [`Byte`][java-byte-ref], [`Short`][java-short-ref], [`Long`][java-long-ref], [`BigDecimal`][java-bigdecimal-ref], [`BigInteger`][java-biginteger-ref] |\n| [`bigint`][sql-all-int-ref]               | [**`Long`**][java-long-ref], [`Boolean`][java-boolean-ref], [`Byte`][java-byte-ref], [`Short`][java-short-ref], [`Integer`][java-integer-ref], [`BigDecimal`][java-bigdecimal-ref], [`BigInteger`][java-biginteger-ref] |\n| [`real`][sql-float-real-ref]              | [**`Float`**][java-float-ref], [`Double`][java-double-ref]   \n| [`float`][sql-float-real-ref]             | [**`Double`**][java-double-ref], [`Float`][java-float-ref] \n| [`decimal`][sql-decimal-ref]              | [**`BigDecimal`**][java-bigdecimal-ref], [`BigInteger`][java-biginteger-ref] \n| [`numeric`][sql-decimal-ref]              | [**`BigDecimal`**][java-bigdecimal-ref], [`BigInteger`][java-biginteger-ref]\n| [`uniqueidentifier`][sql-uid-ref]         | [**`UUID`**][java-uuid-ref], [`String`][java-string-ref]   \n| [`smalldatetime`][sql-smalldatetime-ref]  | [`LocalDateTime`][java-ldt-ref] \n| [`datetime`][sql-datetime-ref]            | [`LocalDateTime`][java-ldt-ref] \n| [`datetime2`][sql-datetime2-ref]          | [`LocalDateTime`][java-ldt-ref] \n| [`date`][sql-date-ref]                    | [`LocalDate`][java-ld-ref] \n| [`time`][sql-time-ref]                    | [`LocalTime`][java-lt-ref] \n| [`datetimeoffset`][sql-dtof-ref]          | [**`OffsetDateTime`**][java-odt-ref], [`ZonedDateTime`][java-zdt-ref]  \n| [`timestamp`][sql-timestamp-ref]          | [`byte[]`][java-byte-ref]\n| [`smallmoney`][sql-money-ref]             | [`BigDecimal`][java-bigdecimal-ref]\n| [`money`][sql-money-ref]                  | [`BigDecimal`][java-bigdecimal-ref]\n| [`char`][sql-(var)char-ref]               | [`String`][java-string-ref], [`Clob`][r2dbc-clob-ref]\n| [`varchar`][sql-(var)char-ref]            | [`String`][java-string-ref], [`Clob`][r2dbc-clob-ref]\n| [`varcharmax`][sql-(var)char-ref]         | [`String`][java-string-ref], [`Clob`][r2dbc-clob-ref]\n| [`nchar`][sql-n(var)char-ref]             | [`String`][java-string-ref], [`Clob`][r2dbc-clob-ref]\n| [`nvarchar`][sql-n(var)char-ref]          | [`String`][java-string-ref], [`Clob`][r2dbc-clob-ref]\n| [`nvarcharmax`][sql-n(var)char-ref]       | [`String`][java-string-ref], [`Clob`][r2dbc-clob-ref]\n| [`text`][sql-(n)text-ref]                 | [`String`][java-string-ref], [`Clob`][r2dbc-clob-ref]\n| [`ntext`][sql-(n)text-ref]                | [`String`][java-string-ref], [`Clob`][r2dbc-clob-ref]\n| [`image`][sql-(n)text-ref]                | [**`ByteBuffer`**][java-ByteBuffer-ref], [`byte[]`][java-byte-ref], [`Blob`][r2dbc-blob-ref]\n| [`binary`][sql-binary-ref]                | [**`ByteBuffer`**][java-ByteBuffer-ref], [`byte[]`][java-byte-ref], [`Blob`][r2dbc-blob-ref]\n| [`varbinary`][sql-binary-ref]             | [**`ByteBuffer`**][java-ByteBuffer-ref], [`byte[]`][java-byte-ref], [`Blob`][r2dbc-blob-ref]\n| [`varbinarymax`][sql-binary-ref]          | [**`ByteBuffer`**][java-ByteBuffer-ref], [`byte[]`][java-byte-ref], [`Blob`][r2dbc-blob-ref]\n| [`sql_variant`][sql-sql-variant-ref]      | Not yet supported.\n| [`xml`][sql-xml-ref]                      | Not yet supported.\n| [`udt`][sql-udt-ref]                      | Not yet supported.\n| [`geometry`][sql-geometry-ref]            | Not yet supported.\n| [`geography`][sql-geography-ref]          | Not yet supported.\n\nTypes in **bold** indicate the native (default) Java type.\n\n**Note:** BLOB (`image`, `binary`, `varbinary` and `varbinary(max)`) and CLOB (`text`, `ntext`, `varchar(max)` and `nvarchar(max)`)\nvalues are fully materialized in the client before decoding. Make sure to account for proper memory sizing.\n\n\n[sql-bit-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/bit-transact-sql?view=sql-server-2017\n[sql-all-int-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/int-bigint-smallint-and-tinyint-transact-sql?view=sql-server-2017\n[sql-float-real-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/float-and-real-transact-sql?view=sql-server-2017\n[sql-decimal-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/decimal-and-numeric-transact-sql?view=sql-server-2017\n[sql-smalldatetime-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql?view=sql-server-2017\n[sql-datetime-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetime-transact-sql?view=sql-server-2017\n[sql-datetime2-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetime2-transact-sql?view=sql-server-2017\n[sql-date-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/date-transact-sql?view=sql-server-2017\n[sql-time-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/time-transact-sql?view=sql-server-2017\n[sql-timestamp-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/rowversion-transact-sql?view=sql-server-2017\n[sql-uid-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/uniqueidentifier-transact-sql?view=sql-server-2017\n[sql-dtof-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetimeoffset-transact-sql?view=sql-server-2017\n[sql-money-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/money-and-smallmoney-transact-sql?view=sql-server-2017\n[sql-(var)char-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/char-and-varchar-transact-sql?view=sql-server-2017\n\n[sql-n(var)char-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql?view=sql-server-2017\n\n[sql-(n)text-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql?view=sql-server-2017\n\n[sql-binary-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql?view=sql-server-2017\n\n[sql-sql-variant-ref]: https://docs.microsoft.com/en-us/sql/t-sql/data-types/sql-variant-transact-sql?view=sql-server-2017\n\n[sql-xml-ref]: https://docs.microsoft.com/en-us/sql/t-sql/xml/xml-transact-sql?view=sql-server-2017\n\n[sql-udt-ref]: https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration-database-objects-user-defined-types/clr-user-defined-types?view=sql-server-2017\n\n[sql-geometry-ref]: https://docs.microsoft.com/en-us/sql/t-sql/spatial-geometry/spatial-types-geometry-transact-sql?view=sql-server-2017\n\n[sql-geography-ref]: https://docs.microsoft.com/en-us/sql/t-sql/spatial-geography/spatial-types-geography?view=sql-server-2017\n\n[r2dbc-blob-ref]: https://r2dbc.io/spec/1.0.0.RELEASE/api/io/r2dbc/spi/Blob.html\n\n[r2dbc-clob-ref]: https://r2dbc.io/spec/1.0.0.RELEASE/api/io/r2dbc/spi/Clob.html\n\n[java-bigdecimal-ref]: https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html\n\n[java-biginteger-ref]: https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html\n\n[java-boolean-ref]: https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html\n\n[java-byte-ref]: https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html\n\n[java-ByteBuffer-ref]: https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html\n\n[java-double-ref]: https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html\n\n[java-float-ref]: https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html\n\n[java-integer-ref]: https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html\n\n[java-long-ref]: https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html\n[java-ldt-ref]: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html\n[java-ld-ref]: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html\n[java-lt-ref]: https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html\n[java-odt-ref]: https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html\n[java-short-ref]: https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html\n[java-string-ref]: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html\n[java-uuid-ref]: https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html\n[java-zdt-ref]: https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html\n\n## Logging\n\nIf SL4J is on the classpath, it will be used. Otherwise, there are two possible fallbacks: Console or `java.util.logging.Logger`). By default, the Console fallback is used. To use the JDK loggers, set the `reactor.logging.fallback` System property to `JDK`.\n\nLogging facilities:\n\n* Driver Logging (`io.r2dbc.mssql`)\n* Query Logging (`io.r2dbc.mssql.QUERY` on `DEBUG` level)\n* Transport Logging (`io.r2dbc.mssql.client`)\n    * `DEBUG` enables `Message` exchange logging\n    * `TRACE` enables traffic logging\n\n## Getting Help\n\nHaving trouble with R2DBC? We'd love to help!\n\n* Check the [spec documentation](https://r2dbc.io/spec/1.0.0.RELEASE/spec/html/), and [Javadoc](https://r2dbc.io/spec/1.0.0.RELEASE/api/).\n* If you are upgrading, check out the [changelog](https://r2dbc.io/spec/1.0.0.RELEASE/CHANGELOG.txt) for \"new and noteworthy\" features.\n* Ask a question - we monitor [stackoverflow.com](https://stackoverflow.com) for questions tagged with [`r2dbc`](https://stackoverflow.com/tags/r2dbc). You can also chat with the community\n  on [Gitter](https://gitter.im/r2dbc/r2dbc).\n* Report bugs with R2DBC MSSQL at [github.com/r2dbc/r2dbc-mssql/issues](https://github.com/r2dbc/r2dbc-mssql/issues).\n\n## Reporting Issues\n\nR2DBC uses GitHub as issue tracking system to record bugs and feature requests. \nIf you want to raise an issue, please follow the recommendations below:\n\n* Before you log a bug, please search the [issue tracker](https://github.com/r2dbc/r2dbc-mssql/issues) to see if someone has already reported the problem.\n* If the issue doesn't already exist, [create a new issue](https://github.com/r2dbc/r2dbc-mssql/issues/new).\n* Please provide as much information as possible with the issue report, we like to know the version of R2DBC MSSQL that you are using and JVM version.\n* If you need to paste code, or include a stack trace use Markdown ``` escapes before and after your text.\n* If possible try to create a test-case or project that replicates the issue. \nAttach a link to your code or a compressed file containing your code.\n\n## Building from Source\n\nYou don't need to build from source to use R2DBC MSSQL (binaries in Maven Central), but if you want to try out the latest and greatest, R2DBC MSSQL can be easily built with the\n[maven wrapper](https://github.com/takari/maven-wrapper). You also need JDK 1.8 and Docker to run integration tests.\n\n```bash\n $ ./mvnw clean install\n```\n\nIf you want to build with the regular `mvn` command, you will need [Maven v3.6.0 or above](https://maven.apache.org/run-maven/index.html).\n\n_Also see [CONTRIBUTING.adoc](https://github.com/r2dbc/.github/blob/main/CONTRIBUTING.adoc) if you wish to submit pull requests. Commits require `Signed-off-by` (`git commit -s`) to ensure [Developer Certificate of Origin](https://developercertificate.org/)._\n\n### Running JMH Benchmarks\n\nRunning the JMH benchmarks builds and runs the benchmarks without running tests.\n\n```bash\n $ ./mvnw clean install -Pjmh\n```\n\n## Staging to Maven Central\n\nTo stage a release to Maven Central, you need to create a release tag (release version) that contains the desired state and version numbers (`mvn versions:set versions:commit -q -o -DgenerateBackupPoms=false -DnewVersion=x.y.z.(RELEASE|Mnnn|RCnnn`) and force-push it to the `release-0.x` branch. This push will trigger a Maven staging build (see `build-and-deploy-to-maven-central.sh`).\n\n## License\n\nR2DBC MSSQL is Open Source software released under the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr2dbc%2Fr2dbc-mssql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr2dbc%2Fr2dbc-mssql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr2dbc%2Fr2dbc-mssql/lists"}