Hinweis: Dieser Artikel erinnert an die Verwendung von JOOQ in Tomcat (JavaEE) der IntelliJ Community (kostenlose Version). Unter dem folgenden Link wird erläutert, wie Sie mit Gradle mit IntelliJ eine Tomcat-Umgebung erstellen. Vorbereiten der Ausführungsumgebung von Tomcat in der IntelliJ Community Es scheint, dass ON DUPLICATE KEY UPDATE nicht mit iciql verwendet werden kann (auch die Codegenerierung ist fehlgeschlagen), daher habe ich migriert.
Außerdem wird angenommen, dass die Umgebung Windows 10 ist.
Fügen Sie den Abhängigkeiten von build.gradle Folgendes hinzu.
dependencies {
//Datenbank-Connector hinzufügen
//(Wenn Sie im Fall von MySQL eine Version von 6 oder höher angeben, tritt ein zeitzonenbezogener Fehler auf)
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.47'
//Joooq verwandtes Glas hinzugefügt
compile group: 'org.jooq', name: 'jooq', version: '3.11.2'
compile group: 'org.jooq', name: 'jooq-parent', version: '3.11.2'/*, ext: 'pom'*/
compile group: 'org.jooq', name: 'jooq-meta', version: '3.11.2'
compile group: 'org.jooq', name: 'jooq-meta-extensions', version: '3.11.2'
compile group: 'org.jooq', name: 'jooq-codegen', version: '3.11.2'
compile group: 'org.jooq', name: 'jooq-codegen-maven', version: '3.11.2'
}
Es ist erforderlich, den Datenbankconnector zusammenzufügen. Wenn Sie jedoch MySQL verwenden und Version 6.0 oder höher angeben, tritt zur Laufzeit der folgende Fehler auf.
The server time zone value '???? (?W????)' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specific time zone value if you want to utilize time zone support.
## Fügen Sie ein praktisches Plug-In ein, um Code mit JOOQ zu generieren
Fügen Sie Plugins in build.gradle hinzu, um [JOOQ Plugins] zu installieren (https://plugins.gradle.org/plugin/nu.studer.jooq).
```groovy
plugins {
id 'nu.studer.jooq' version '3.0.2'
}
Sie können das JOOQ-Plug-In konfigurieren, indem Sie jooq {} in build.gradle deklarieren und darin schreiben.
dependencies {
jooqRuntime group: 'mysql', name: 'mysql-connector-java', version: '5.1.47'
}
jooq {
//Geben Sie die Version von jooq an
version = '3.11.2'
edition = 'OSS'
tables(sourceSets.main) {
jdbc {
//Vollqualifizierter Klassenname des Datenbanktreibers
driver = 'com.mysql.jdbc.Driver'
//URL, um eine Verbindung zu SQL herzustellen
url = 'jdbc:mysql://localhost:3306/Hoge?serverTimezone=JST'
//Benutzername, um sich bei der Datenbank anzumelden
user = 'user'
//Passwort zum Anmelden bei der Datenbank
password = 'password'
}
generator {
name = 'org.jooq.codegen.DefaultGenerator'
database {
//Klassenname, der die Zieldatenbank darstellt(Siehe unten)
name = 'org.jooq.meta.mysql.MySQLDatabase'
inputSchema = ''
includes = '.*'
excludes = ''
}
target {
//Paketname des generierten Codes
packageName = 'jooq'
//Verzeichnis zum Platzieren des generierten Codes
directory = 'src/main/java'
}
}
}
}
Wenn Sie eine andere Datenbank als MySQL verwenden möchten, geben Sie den Namen wie in der folgenden Tabelle angegeben an. Der Name der jooq-Klasse, mit der eine Verbindung zur Datenbank hergestellt wird.
Datenbank | name |
---|---|
ase | org.jooq.util.ase.ASEDatabase |
cubrid | org.jooq.util.cubrid.CUBRIDDatabase |
db2 | org.jooq.util.db2.DB2Database |
derby | org.jooq.util.derby.DerbyDatabase |
h2 | org.jooq.util.h2.H2Database |
hsqldb | org.jooq.util.hsqldb.HSQLDBDatabase |
ingres | org.jooq.util.ingres.IngresDatabase |
mysql | org.jooq.util.mysql.MySQLDatabase |
oracle | org.jooq.util.oracle.OracleDatabase |
postgres | org.jooq.util.postgres.PostgresDatabase |
sqlite | org.jooq.util.sqlite.SQLiteDatabase |
sqlserver | org.jooq.util.sqlserver.SQLServerDatabase |
sybe | org.jooq.util.sybase.SybaseDatabase |
・ Jooq-Codegenerierung | Java-Entwicklung
Im Gradle-Fenster befindet sich eine Aufgabe namens jooq → generateTablesJooqSchemaSource, sodass Sie die entsprechende Klasse automatisch aus der Datenbank generieren können, indem Sie sie ausführen.
・ Zusammenfassung der Verwendung von jOOQ
Recommended Posts