Remarque: Cet article rappelle l'utilisation de JOOQ dans Tomcat (JavaEE) de la communauté IntelliJ (version gratuite). Le lien suivant explique comment créer un environnement tomcat à l'aide de Gradle avec IntelliJ. Préparation de l'environnement d'exécution de Tomcat dans IntelliJ Community Il semble que ON DUPLICATE KEY UPDATE ne peut pas être utilisé avec iciql (la génération de code a également échoué), j'ai donc migré.
De plus, l'environnement est supposé être Windows 10.
Ajoutez ce qui suit aux dépendances de build.gradle.
dependencies {
//Ajouter un connecteur de base de données
//(Dans le cas de mysql, si vous spécifiez une version 6 ou supérieure, une erreur liée au fuseau horaire se produira.)
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.47'
//Ajout du jar lié à jooq
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'
}
Il est nécessaire d'ajouter le connecteur de base de données ensemble, mais si vous utilisez MySQL, si vous spécifiez la version 6.0 ou supérieure, l'erreur suivante se produira au moment de l'exécution.
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.
## Installez un plug-in pratique pour générer du code avec JOOQ
Ajoutez des plugins dans build.gradle pour installer [JOOQ Plugins](https://plugins.gradle.org/plugin/nu.studer.jooq).
```groovy
plugins {
id 'nu.studer.jooq' version '3.0.2'
}
Vous pouvez configurer le plug-in JOOQ en déclarant jooq {} dans build.gradle et en l'écrivant à l'intérieur.
dependencies {
jooqRuntime group: 'mysql', name: 'mysql-connector-java', version: '5.1.47'
}
jooq {
//Spécifiez la version de jooq
version = '3.11.2'
edition = 'OSS'
tables(sourceSets.main) {
jdbc {
//Nom de classe complet du pilote de base de données
driver = 'com.mysql.jdbc.Driver'
//URL pour se connecter à SQL
url = 'jdbc:mysql://localhost:3306/Hoge?serverTimezone=JST'
//Nom d'utilisateur pour se connecter à la base de données
user = 'user'
//Mot de passe pour se connecter à la base de données
password = 'password'
}
generator {
name = 'org.jooq.codegen.DefaultGenerator'
database {
//Nom de classe représentant la base de données cible(Voir ci-dessous)
name = 'org.jooq.meta.mysql.MySQLDatabase'
inputSchema = ''
includes = '.*'
excludes = ''
}
target {
//Nom du package du code généré
packageName = 'jooq'
//Répertoire pour placer le code généré
directory = 'src/main/java'
}
}
}
}
Si vous souhaitez utiliser une base de données autre que MySQL, spécifiez le nom comme indiqué dans le tableau ci-dessous. Le nom de la classe jooq utilisée pour se connecter à la base de données.
Base de données | 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 |
・ Génération de code Jooq | Développement Java
Il existe une tâche appelée jooq → generateTablesJooqSchemaSource dans la fenêtre Gradle, vous pouvez donc générer automatiquement la classe correspondante à partir de la base de données en l'exécutant.
・ Résumé de l'utilisation de jOOQ
Recommended Posts