diff --git a/README.md b/README.md index fb7a00c..fcf0edf 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ The next generation of `clojure.java.jdbc`: a new low-level Clojure wrapper for [![Clojars Project](https://clojars.org/seancorfield/next.jdbc/latest-version.svg)](https://clojars.org/seancorfield/next.jdbc) [![cljdoc badge](https://cljdoc.org/badge/seancorfield/next.jdbc)](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT) -* [Getting Started](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started) -* [Migrating from `clojure.java.jdbc`](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/migration-from-clojure-java-jdbc) +* [Getting Started](/doc/getting-started.md) +* [Migrating from `clojure.java.jdbc`](/doc/migration-from-clojure-java-jdbc.md) * Feedback via [issues](https://github.com/seancorfield/next-jdbc/issues) or in the [`#sql` channel on the Clojurians Slack](https://clojurians.slack.com/messages/C1Q164V29/details/) or the [`#sql` stream on the Clojurians Zulip](https://clojurians.zulipchat.com/#narrow/stream/152063-sql). ## Motivation @@ -61,13 +61,13 @@ In addition, convenience functions -- "syntactic sugar" -- are provided to inser ## More Detailed Documentation -* [Getting Started](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started) -* [Friendly SQL Functions](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/friendly-sql-functions) -* [Result Set Builders](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/result-set-builders) -* [Prepared Statements](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/prepared-statements) -* [Transactions](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/transactions) -* [All The Options](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/all-the-options) -* [Migration from `clojure.java.jdbc`](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/migration-from-clojure-java-jdbc) +* [Getting Started](/doc/getting-started.md) +* [Friendly SQL Functions](/doc/friendly-sql-functions.md) +* [Result Set Builders](/doc/result-set-builders.md) +* [Prepared Statements](/doc/prepared-statements.md) +* [Transactions](/doc/transactions.md) +* [All The Options](/doc/all-the-options.md) +* [Migration from `clojure.java.jdbc`](/doc/migration-from-clojure-java-jdbc.md) ## License diff --git a/doc/all-the-options.md b/doc/all-the-options.md index e4cc06a..2cebae7 100644 --- a/doc/all-the-options.md +++ b/doc/all-the-options.md @@ -60,4 +60,4 @@ The `transact` function and `with-transaction` macro accept the following option * `:read-only` -- a `Boolean` that indicates whether the transaction should be read-only or not (the default), * `:rollback-only` -- a `Boolean` that indicates whether the transaction should commit on success (the default) or rollback. -[<: Transactions](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/transactions) | [Migration from `clojure.java.jdbc` :>](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/migration-from-clojure-java-jdbc) +[<: Transactions](/doc/transactions.md) | [Migration from `clojure.java.jdbc` :>](/doc/migration-from-clojure-java-jdbc.md) diff --git a/doc/cljdoc.edn b/doc/cljdoc.edn index 90f91b8..c10462a 100644 --- a/doc/cljdoc.edn +++ b/doc/cljdoc.edn @@ -1,4 +1,5 @@ {:cljdoc.doc/tree [["Readme" {:file "README.md"}] + ["Changes" {:file "CHANGELOG.md"}] ["Getting Started" {:file "doc/getting-started.md"} ["Friendly SQL Functions" {:file "doc/friendly-sql-functions.md"}] ["Result Set Builders" {:file "doc/result-set-builders.md"}] diff --git a/doc/friendly-sql-functions.md b/doc/friendly-sql-functions.md index 5e2fa25..b34a8eb 100644 --- a/doc/friendly-sql-functions.md +++ b/doc/friendly-sql-functions.md @@ -1,6 +1,6 @@ # Friendly SQL Functions -In [Getting Started](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started), we used `execute!` and `execute-one!` for all our SQL operations, except when we were reducing a result set. These functions (and `reducible!`) all expect a "connectable" and a vector containing a SQL string followed by any parameter values required. +In [Getting Started](/doc/getting-started.md), we used `execute!` and `execute-one!` for all our SQL operations, except when we were reducing a result set. These functions (and `reducible!`) all expect a "connectable" and a vector containing a SQL string followed by any parameter values required. A "connectable" can be a `javax.sql.DataSource`, a `java.sql.Connection`, or something that can produce a datasource (when `get-datasource` is called on it). It can also be a `java.sql.PreparedStatement` but we'll cover that a bit later... @@ -152,4 +152,4 @@ These quoting functions can be provided to any of the friendly SQL functions abo Note that the entity naming function is passed a string, the result of calling `name` on the keyword passed in. Also note that the default quoting functions do not handle schema-qualified names, such as `dbo.table_name` -- `sql-server` would produce `[dbo.table_name]` from that. Use the `schema` function to wrap the quoting function if you need that behavior, e.g,. `{:table-fn (schema sql-server)}` which would produce `[dbo].[table_name]`. -[<: Getting Started](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started) | [Result Set Builders :>](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/result-set-builders) +[<: Getting Started](/doc/getting-started.md) | [Result Set Builders :>](/doc/result-set-builders.md) diff --git a/doc/getting-started.md b/doc/getting-started.md index e9714d6..b2f1c88 100644 --- a/doc/getting-started.md +++ b/doc/getting-started.md @@ -136,4 +136,4 @@ If `with-transaction` is given a datasource, it will create and close the connec (jdbc/execute! con ...)) ; committed ``` -[Friendly SQL Functions :>](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/friendly-sql-functions) +[Friendly SQL Functions :>](/doc/friendly-sql-functions.md) diff --git a/doc/migration-from-clojure-java-jdbc.md b/doc/migration-from-clojure-java-jdbc.md index 801de05..fd3e602 100644 --- a/doc/migration-from-clojure-java-jdbc.md +++ b/doc/migration-from-clojure-java-jdbc.md @@ -56,4 +56,4 @@ These are mostly drawn from Issue #5 although most of the bullets in that issue * `with-transaction` can take a `:rollback-only` option, but there is no way to change a transaction to rollback _dynamically_; throw an exception instead (all transactions roll back on an exception) * The extension points for setting parameters and reading columns are now `SettableParameter` and `ReadableColumn` protocols. -[<: All The Options](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/all-the-options) +[<: All The Options](/doc/all-the-options.md) diff --git a/doc/prepared-statements.md b/doc/prepared-statements.md index aa801c0..c8736ab 100644 --- a/doc/prepared-statements.md +++ b/doc/prepared-statements.md @@ -30,4 +30,4 @@ This can be extended to any Clojure data type, to provide a customized way to ad If you need more specialized parameter handling than the protocol can provide, then you can create prepared statements explicitly, instead of letting `next.jdbc` do it for you, and then calling your own variant of `set-parameters` to install those parameters. -[<: Result Set Builders](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/result-set-builders) | [Transactions :>](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/transactions) +[<: Result Set Builders](/doc/result-set-builders.md) | [Transactions :>](/doc/transactions.md) diff --git a/doc/result-set-builders.md b/doc/result-set-builders.md index eeba13c..a677f8b 100644 --- a/doc/result-set-builders.md +++ b/doc/result-set-builders.md @@ -1,6 +1,6 @@ # RowBuilder and ResultSetBuilder -In [Getting Started](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started), it was noted that, by default, `execute!` and `execute-one!` return result sets as (vectors of) hash maps with namespace-qualified keys as-is. If your database naturally produces uppercase column names from the JDBC driver, that's what you'll get. If it produces mixed-case names, that's what you'll get. +In [Getting Started](/doc/getting-started.md), it was noted that, by default, `execute!` and `execute-one!` return result sets as (vectors of) hash maps with namespace-qualified keys as-is. If your database naturally produces uppercase column names from the JDBC driver, that's what you'll get. If it produces mixed-case names, that's what you'll get. The default builder for rows and result sets creates qualified keywords that match whatever case the JDBC driver produces. That builder is `next.jdbc.result-set/as-maps` but there are several options available: @@ -50,4 +50,4 @@ Common extensions here could include converting `java.sql.Timestamp` to `java.ti Note that the converse, converting Clojure values to database-specific types is handled by the `SettableParameters`, discussed in the next section (Prepared Statements). -[<: Friendly SQL Functions](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/friendly-sql-functions) | [Prepared Statements :>](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/prepared-statements) +[<: Friendly SQL Functions](/doc/friendly-sql-functions.md) | [Prepared Statements :>](/doc/prepared-statements.md) diff --git a/doc/transactions.md b/doc/transactions.md index 5beb615..c4da9a4 100644 --- a/doc/transactions.md +++ b/doc/transactions.md @@ -1,6 +1,6 @@ # Transactions -The `transact` function and `with-transaction` macro were briefly mentioned in the [Getting Started](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started) section but we'll go into more detail here. +The `transact` function and `with-transaction` macro were briefly mentioned in the [Getting Started](/doc/getting-started.md) section but we'll go into more detail here. Although `(transact connectable thunk)` is available, it is expected that you will mostly use `(with-transaction [tx connectable] body...)` when you want to execute multiple SQL operations in the context of a single transaction so that is what this section focuses on. @@ -18,10 +18,10 @@ It is possible to tell `next.jdbc` to create connections that do not automatical You can also provide an options map as the third element of the binding vector (or the third argument to the `transact` function). The following options are supported: -* `:isolation` -- the isolation level for this transaction (see [All The Options](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/all-the-options) for specifics), +* `:isolation` -- the isolation level for this transaction (see [All The Options](/doc/all-the-options.md) for specifics), * `:read-only` -- set the transaction into read-only mode (if `true`), * `:rollback-only` -- set the transaction to always rollback, even on success (if `true`). The latter can be particularly useful in tests, to run a series of SQL operations during a test and then roll them all back at the end. -[<: Prepared Statements](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/getting-started/prepared-statements) | [All The Options :>](https://cljdoc.org/d/seancorfield/next.jdbc/CURRENT/doc/all-the-options) +[<: Prepared Statements](/doc/prepared-statements.md) | [All The Options :>](/doc/all-the-options.md)