-
Notifications
You must be signed in to change notification settings - Fork 700
/
Copy pathexposed-modules.html
141 lines (141 loc) · 14 KB
/
exposed-modules.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="en-US" data-preset="contrast" data-primary-color="#307FFF"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="robots" content="noindex"><meta name="built-on" content="2025-01-15T14:46:39.786353718"><title>Modules | Exposed</title><script type="application/json" id="virtual-toc-data">[{"id":"dependencies","level":0,"title":"Dependencies","anchor":"#dependencies"},{"id":"base-modules","level":0,"title":"Base Modules","anchor":"#base-modules"},{"id":"exposed-0-18-1-and-higher","level":1,"title":"Exposed 0.18.1 and higher","anchor":"#exposed-0-18-1-and-higher"},{"id":"jdbc-driver-and-logging","level":1,"title":"JDBC driver and logging","anchor":"#jdbc-driver-and-logging"},{"id":"exposed-0-17-x-and-lower","level":1,"title":"Exposed 0.17.x and lower","anchor":"#exposed-0-17-x-and-lower"}]</script><script type="application/json" id="topic-shortcuts"></script><link href="https://resources.jetbrains.com/writerside/apidoc/6.10.0-b267/app.css" rel="stylesheet"><link rel="icon" type="image/svg" sizes="16x16" href="images/exposed-logo.svg"><meta name="image" content=""><!-- Open Graph --><meta property="og:title" content="Modules | Exposed"><meta property="og:description" content=""><meta property="og:image" content=""><meta property="og:site_name" content="Exposed Help"><meta property="og:type" content="website"><meta property="og:locale" content="en_US"><meta property="og:url" content="writerside-documentation/docs/0.58.0/exposed-modules.html"><!-- End Open Graph --><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content=""><meta name="twitter:title" content="Modules | Exposed"><meta name="twitter:description" content=""><meta name="twitter:creator" content=""><meta name="twitter:image:src" content=""><!-- End Twitter Card --><!-- Schema.org WebPage --><script type="application/ld+json">{
"@context": "http://schema.org",
"@type": "WebPage",
"@id": "writerside-documentation/docs/0.58.0/exposed-modules.html#webpage",
"url": "writerside-documentation/docs/0.58.0/exposed-modules.html",
"name": "Modules | Exposed",
"description": "",
"image": "",
"inLanguage":"en-US"
}</script><!-- End Schema.org --><!-- Schema.org WebSite --><script type="application/ld+json">{
"@type": "WebSite",
"@id": "writerside-documentation/docs/#website",
"url": "writerside-documentation/docs/",
"name": "Exposed Help"
}</script><!-- End Schema.org --></head><body data-id="Exposed-Modules" data-main-title="Modules" data-article-props="{"seeAlsoStyle":"links"}" data-template="article" data-breadcrumbs=""><div class="wrapper"><main class="panel _main"><header class="panel__header"><div class="container"><h3>Exposed 0.58.0 Help</h3><div class="panel-trigger"></div></div></header><section class="panel__content"><div class="container"><article class="article" data-shortcut-switcher="inactive"><h1 data-toc="Exposed-Modules" id="Exposed-Modules.md">Modules</h1><section class="chapter"><h2 id="dependencies" data-toc="dependencies">Dependencies</h2><p id="-16se8_3">Exposed modules are available from Maven Central repository. To use them you have to add appropriate dependency into your repositories mapping.</p><div class="tabs" id="-16se8_4" data-anchors="[-16se8_5,-16se8_7,-16se8_8]"><div class="tabs__content" data-gtm="tab" id="-16se8_5" data-title="Kotlin Gradle"><div class="code-block" data-lang="kotlin" data-title="Kotlin">
repositories {
mavenCentral()
}
</div></div><div class="tabs__content" data-gtm="tab" id="-16se8_7" data-title="Maven"><p>The Maven Central repository is enabled by default for Maven users.</p></div><div class="tabs__content" data-gtm="tab" id="-16se8_8" data-title="Groovy Gradle"><div class="code-block" data-lang="groovy" data-title="Groovy">
repositories {
mavenCentral()
}
</div></div></div></section><section class="chapter"><h2 id="base-modules" data-toc="base-modules">Base Modules</h2><section class="chapter"><h3 id="exposed-0-18-1-and-higher" data-toc="exposed-0-18-1-and-higher">Exposed 0.18.1 and higher</h3><p id="-16se8_10">To move forward and support such features as Java 8 Time, async drivers, and so on, it was decided to split Exposed into more specific modules. It will allow you to take the only modules you need and will add flexibility in the future.</p><p id="-16se8_11"><code class="code" id="-16se8_12">Exposed</code> consists of the following modules:</p><ul class="list _bullet" id="-16se8_13"><li class="list__item" id="-16se8_14"><p>exposed-core - base module, which contains both DSL api along with mapping</p></li><li class="list__item" id="-16se8_15"><p>exposed-crypt - provides additional column types to store encrypted data in DB and encode/decode it on client-side</p></li><li class="list__item" id="-16se8_16"><p>exposed-dao - DAO api</p></li><li class="list__item" id="-16se8_17"><p>exposed-java-time - date-time extensions based on Java8 Time API</p></li><li class="list__item" id="-16se8_18"><p>exposed-jdbc - transport level implementation based on Java JDBC API</p></li><li class="list__item" id="-16se8_19"><p>exposed-jodatime - date-time extensions based on JodaTime library</p></li><li class="list__item" id="-16se8_20"><p>exposed-json - JSON and JSONB data type extensions</p></li><li class="list__item" id="-16se8_21"><p>exposed-kotlin-datetime - date-time extensions based on kotlinx-datetime</p></li><li class="list__item" id="-16se8_22"><p>exposed-money - extensions to support MonetaryAmount from "javax.money:money-api"</p></li><li class="list__item" id="-16se8_23"><p>exposed-spring-boot-starter - a starter for <a href="https://spring.io/projects/spring-boot" id="-16se8_24" data-external="true" rel="noopener noreferrer">Spring Boot</a> to utilize Exposed as the ORM instead of <a href="https://hibernate.org/" id="-16se8_25" data-external="true" rel="noopener noreferrer">Hibernate</a></p></li></ul><p id="-16se8_26">Dependencies mapping listed below is similar (by functionality) to the previous versions:</p><div class="tabs" id="-16se8_27" data-anchors="[-16se8_28,-16se8_30,-16se8_32]"><div class="tabs__content" data-gtm="tab" id="-16se8_28" data-title="Kotlin Gradle"><div class="code-block" data-lang="kotlin" data-title="Kotlin">
val exposedVersion: String = "0.58.0"
dependencies {
implementation("org.jetbrains.exposed:exposed-core:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-crypt:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-dao:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-jdbc:$exposedVersion")
// optional jodatime
implementation("org.jetbrains.exposed:exposed-jodatime:$exposedVersion")
// optional java-time
implementation("org.jetbrains.exposed:exposed-java-time:$exposedVersion")
// optional kotlin-datetime
implementation("org.jetbrains.exposed:exposed-kotlin-datetime:$exposedVersion")
// optional json
implementation("org.jetbrains.exposed:exposed-json:$exposedVersion")
// optional money
implementation("org.jetbrains.exposed:exposed-money:$exposedVersion")
// optional spring-boot
implementation("org.jetbrains.exposed:exposed-spring-boot-starter:$exposedVersion")
}
</div></div><div class="tabs__content" data-gtm="tab" id="-16se8_30" data-title="Maven"><div class="code-block" data-lang="markup" data-title="XML">
<dependencies>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-core</artifactId>
<version>0.58.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-crypt</artifactId>
<version>0.58.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-dao</artifactId>
<version>0.58.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-java-time</artifactId>
<version>0.58.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-jdbc</artifactId>
<version>0.58.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-jodatime</artifactId>
<version>0.58.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-json</artifactId>
<version>0.58.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-kotlin-datetime</artifactId>
<version>0.58.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-money</artifactId>
<version>0.58.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-spring-boot-starter</artifactId>
<version>0.58.0</version>
</dependency>
</dependencies>
</div></div><div class="tabs__content" data-gtm="tab" id="-16se8_32" data-title="Groovy Gradle"><div class="code-block" data-lang="groovy" data-title="Groovy">
def exposedVersion = "0.58.0"
dependencies {
implementation "org.jetbrains.exposed:exposed-core:$exposedVersion"
implementation "org.jetbrains.exposed:exposed-crypt:$exposedVersion"
implementation "org.jetbrains.exposed:exposed-dao:$exposedVersion"
implementation "org.jetbrains.exposed:exposed-jdbc:$exposedVersion"
// optional jodatime
implementation "org.jetbrains.exposed:exposed-jodatime:$exposedVersion"
// optional java-time
implementation "org.jetbrains.exposed:exposed-java-time:$exposedVersion"
// optional kotlin-datetime
implementation "org.jetbrains.exposed:exposed-kotlin-datetime:$exposedVersion"
// optional json
implementation "org.jetbrains.exposed:exposed-json:$exposedVersion"
// optional money
implementation "org.jetbrains.exposed:exposed-money:$exposedVersion"
// optional spring-boot
implementation "org.jetbrains.exposed:exposed-spring-boot-starter:$exposedVersion"
}
</div></div></div></section><section class="chapter"><h3 id="jdbc-driver-and-logging" data-toc="jdbc-driver-and-logging">JDBC driver and logging</h3><p id="-16se8_34">You also need a JDBC driver for the database system you are using (see <a href="working-with-database.html" id="-16se8_35" data-tooltip="In Exposed, the Database class represents a database instance, and encapsulates the necessary connection details and configuration required to interact with a specific database.">Working with Databases</a>) and a logger for <code class="code" id="-16se8_36">addLogger(StdOutSqlLogger)</code>. Example (Gradle syntax):</p><div class="code-block" data-lang="kotlin">
dependencies {
// for H2
implementation("com.h2database:h2:2.1.214")
// for logging (StdOutSqlLogger), see
// http://www.slf4j.org/codes.html#StaticLoggerBinder
implementation("org.slf4j:slf4j-nop:1.7.30")
}
</div></section><section class="chapter"><h3 id="exposed-0-17-x-and-lower" data-toc="exposed-0-17-x-and-lower">Exposed 0.17.x and lower</h3><p id="-16se8_38">Prior Exposed 0.18.1 there was only one base module <code class="code" id="-16se8_39">exposed</code> which contains everything you may need including JodaTime as date-time library. To add <code class="code" id="-16se8_40">Exposed</code> framework of that version, you had to use:</p><div class="tabs" id="-16se8_41" data-anchors="[-16se8_42,-16se8_44,-16se8_46]"><div class="tabs__content" data-gtm="tab" id="-16se8_42" data-title="Kotlin Gradle"><div class="code-block" data-lang="kotlin" data-title="Kotlin">
dependencies {
implementation("org.jetbrains.exposed:exposed:0.17.7")
}
</div></div><div class="tabs__content" data-gtm="tab" id="-16se8_44" data-title="Maven"><div class="code-block" data-lang="markup" data-title="XML">
<dependencies>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed</artifactId>
<version>0.17.7</version>
</dependency>
</dependencies>
</div></div><div class="tabs__content" data-gtm="tab" id="-16se8_46" data-title="Groovy Gradle"><div class="code-block" data-lang="groovy" data-title="Groovy">
dependencies {
implementation("org.jetbrains.exposed:exposed:0.17.7")
}
</div></div></div></section></section><div class="last-modified">Last modified: 14 January 2025</div><div data-feedback-placeholder="true"></div><div class="navigation-links _bottom"><a href="getting-started-with-exposed.html" class="navigation-links__prev">Get started with Exposed, an ORM framework for Kotlin</a><a href="working-with-database.html" class="navigation-links__next">Working with Databases</a></div></article><div id="disqus_thread"></div></div></section></main></div><script src="https://resources.jetbrains.com/writerside/apidoc/6.10.0-b267/app.js"></script></body></html>