Skip to content

Commit

Permalink
docs: Split up the "Deep dive into DSL" topic into several new topics (
Browse files Browse the repository at this point in the history
…#2217)

* split up the Deep dive into DSL topic intro subtopics, improve structure and formatting

* Add an "About" topic and improve the table types and definition topics

* Update the "Sequence" topic

* Improve structure in the DSL related sub-topics and add descriptions to boolean operators

* update table definition topics to highlight the core class and mention EntityID wrapper
  • Loading branch information
vnikolova authored Aug 29, 2024
1 parent 11948d5 commit 886f071
Show file tree
Hide file tree
Showing 19 changed files with 2,467 additions and 1,964 deletions.
4 changes: 3 additions & 1 deletion documentation-website/Writerside/c.list
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@
SYSTEM "https://helpserver.labs.jb.gg/help/schemas/mvp/categories.dtd">
<categories>
<category id="wrs" name="Writerside documentation" order="1"/>
</categories>
<category id="related" name="Related topics" order="2"/>
<category id="learn-more" name="Learn more" order="3"/>
</categories>
13 changes: 10 additions & 3 deletions documentation-website/Writerside/hi.tree
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
start-page="Home.topic">

<toc-element topic="Home.topic" toc-title="Home"/>
<toc-element topic="About.topic" toc-title="About"/>
<toc-element topic="Getting-Started-with-Exposed.topic" toc-title="Get started with Exposed"/>
<toc-element topic="Exposed-Modules.md"/>
<toc-element toc-title="Databases">
Expand All @@ -15,11 +16,17 @@
<toc-element topic="Transactions.md"/>
</toc-element>
<toc-element toc-title="Schemas">
<toc-element topic="Table-Definition.md"/>
<toc-element topic="Data-Types.md"/>
<toc-element topic="Table-Definition.topic"/>
<toc-element topic="Data-Types.topic"/>
<toc-element topic="SQL-Functions.md"/>
<toc-element topic="Working-with-Schema.topic"/>
</toc-element>
<toc-element toc-title="Deep Dive into DSL">
<toc-element topic="DSL-Table-Types.topic"/>
<toc-element topic="DSL-CRUD-operations.topic"/>
<toc-element topic="Working-with-Sequence.topic"/>
<toc-element topic="DSL-Querying-data.topic"/>
</toc-element>
<toc-element topic="Deep-Dive-into-DSL.md"/>
<toc-element topic="Deep-Dive-into-DAO.md"/>
<toc-element toc-title="Releases">
<toc-element topic="Breaking-Changes.md"/>
Expand Down
64 changes: 64 additions & 0 deletions documentation-website/Writerside/topics/About.topic
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
SYSTEM "https://resources.jetbrains.com/writerside/1.0/xhtml-entities.dtd">
<topic xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://resources.jetbrains.com/writerside/1.0/topic.v2.xsd"
title="Exposed, an ORM framework for Kotlin" id="About">
<p>
Exposed is a lightweight SQL library on top of a JDBC driver for the Kotlin programming language. It offers
two approaches for database access: the Domain-Specific Language (DSL) API and the Data Access Object (DAO) API.
</p>
<p>
The Domain-Specific Language (DSL) API of Exposed provides a Kotlin-based abstraction for interacting with databases
. It closely <a href="DSL-CRUD-operations.topic">mirrors actual SQL statements</a>, allowing you to work
with familiar SQL concepts while benefiting from the type safety that Kotlin offers.
</p>
<p>
<a href="Deep-Dive-into-DAO.md">The Data Access Object (DAO) API</a> of Exposed provides an object-oriented approach for interacting with a database,
similar to traditional Object-Relational Mapping (ORM) frameworks like Hibernate.
This API is less verbose and provides a more intuitive and Kotlin-centric way to interact with your database.
</p>
<p>
Exposed's flexibility allows you to choose the approach that best suits your project's needs, whether you
prefer the direct control of SQL with the DSL API or the higher-level abstraction of the DAO API.
</p>
<p>
The official mascot of Exposed is the cuttlefish, which is well-known for its outstanding mimicry ability that enables it
to blend seamlessly into any environment. Similar to its mascot, Exposed can be used to mimic a variety of
database engines, which helps you to build applications without dependencies on any specific database engine
and to switch between them with very little or no changes.
</p>
<chapter title="Supported databases" id="supported-databases">
Exposed currently supports the following databases:
<list>
<li>
<a href="https://www.h2database.com/html/main.html">H2</a> (versions 2.x)
</li>
<li>
<a href="https://github.com/mariadb-corporation/mariadb-connector-j">MariaDB</a>
</li>
<li>
<a href="https://github.com/mysql/mysql-connector-j">MySQL</a>
</li>
<li>
<a href="https://www.oracle.com/ca-en/database/technologies/appdev/jdbc-downloads.html">Oracle</a>
</li>
<li>
<a href="https://jdbc.postgresql.org/">PostgreSQL</a> (as well as PostgreSQL using the
<a href="https://impossibl.github.io/pgjdbc-ng/">pgjdbc-ng</a> JDBC driver)
</li>
<li>
<a href="https://github.com/microsoft/mssql-jdbc">Microsoft SQL Server</a>
</li>
<li>
<a href="https://github.com/xerial/sqlite-jdbc">SQLite</a>
</li>
</list>
</chapter>
<seealso style="cards">
<category ref="learn-more">
<a href="Exposed-Modules.md"/>
<a href="Getting-Started-with-Exposed.topic"/>
</category>
</seealso>
</topic>
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ integer("number").check { (it greaterEq 0) and (it lessEq Int.MAX_VALUE) }
This applies to the specific `DateColumnType` in all 3 date/time modules and means `LocalDate` comparisons can now be done directly without conversions.
* __H2, PostgreSQL__ Using `replace()` now throws an exception as the REPLACE command is not supported by these databases.
If `replace()` was being used to perform an insert or update operation, all usages should instead be switched to `upsert()`.
[See documentation for UPSERT details](Deep-Dive-into-DSL.md#insert-or-update)
[See documentation for UPSERT details](DSL-CRUD-operations.topic#insert-or-update)
* Operator classes `exists` and `notExists` have been renamed to `Exists` and `NotExists`.
The functions `exists()` and `notExists()` have been introduced to return an instance of their respectively-named classes and to avoid unresolved reference issues.
Any usages of these classes should be renamed to their capitalized forms.
Expand Down
Loading

0 comments on commit 886f071

Please sign in to comment.