[JAVA] J'ai essayé d'utiliser JOOQ avec Gradle

J'ai essayé d'utiliser JOOQ avec Gradle

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.

Ajouter jooq à la bibliothèque externe

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'
}

Configurer le plug-in JOOQ

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

Génération de code JOOQ

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.

Programmons avec OJOQ!

Résumé de l'utilisation de jOOQ

Recommended Posts

J'ai essayé d'utiliser JOOQ avec Gradle
J'ai essayé d'utiliser Realm avec Swift UI
J'ai essayé d'utiliser Scalar DL avec Docker
J'ai essayé d'utiliser OnlineConverter avec SpringBoot + JODConverter
J'ai essayé d'utiliser OpenCV avec Java + Tomcat
J'ai essayé d'utiliser Gson
J'ai essayé d'utiliser TestNG
J'ai essayé d'utiliser Galasa
J'ai fait un blackjack avec Ruby (j'ai essayé d'utiliser minitest)
J'ai essayé de démarrer avec Gradle sur Heroku
J'ai essayé DI avec Ruby
J'ai essayé d'utiliser azure cloud-init
J'ai essayé d'utiliser Apache Wicket
J'ai essayé d'utiliser Java REPL
J'ai essayé UPSERT avec PostgreSQL.
J'ai essayé BIND avec Docker
J'ai essayé d'utiliser Spring + Mybatis + DbUnit
J'ai essayé l'analyse morphologique avec MeCab
Je ne peux pas installer lombok avec Gradle.
J'ai essayé d'interagir avec Java
J'ai essayé la communication UDP avec Java
J'ai essayé d'utiliser l'API Java8 Stream
J'ai essayé d'utiliser JWT en Java
J'ai essayé GraphQL avec Spring Boot
[Android] J'ai essayé d'utiliser la disposition du coordinateur.
J'ai essayé Flyway avec Spring Boot
J'ai essayé d'utiliser le conteneur Pari gp
J'ai essayé d'utiliser WebAssembly Stadio (version 2018/4/17)
J'ai essayé de démarrer avec Swagger en utilisant Spring Boot
J'ai essayé de personnaliser Slim avec Scaffold
J'ai essayé d'utiliser la bibliothèque CameraX avec Android Java Fragment
J'ai essayé d'utiliser le mémo Java LocalDate
J'ai essayé d'utiliser Google HttpClient de Java
J'ai essayé de me connecter à MySQL en utilisant le modèle JDBC avec Spring MVC
J'ai essayé d'utiliser l'API Elasticsearch en Java
J'ai essayé d'utiliser l'outil de diagnostic Java Arthas
J'ai essayé d'utiliser UICollectionViewListCell ajouté à partir de Xcode12.
J'ai essayé de démarrer avec Web Assembly
J'ai essayé l'apprentissage de la gestion qui fait gagner du temps avec Studyplus.
C'est nouveau, mais j'ai essayé d'utiliser Groonga
J'ai essayé de jouer un peu avec BottomNavigationView ①
J'ai essayé l'initialisation paresseuse avec Spring Boot 2.2.0
J'ai créé et défini mon propre dialecte avec Thymeleaf et j'ai essayé de l'utiliser
J'ai essayé Spring.
J'ai essayé de mettre Tomcat
J'ai essayé youtubeDataApi.
J'ai essayé de refactoriser ①
J'ai essayé FizzBuzz.
J'ai essayé JHipster 5.1
J'ai essayé d'utiliser Junit avec Mac VScode Maven
[Pour les débutants] J'ai essayé d'utiliser DBUnit avec Eclipse
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
J'ai essayé de faire une authentification de base avec Java
J'ai essayé de gérer la configuration des jambes de force avec Coggle
[Pour les débutants] J'ai essayé d'utiliser JUnit 5 avec Eclipse
J'ai essayé de gérer les informations de connexion avec JMX
[Android] J'ai quitté SQLite et essayé d'utiliser Realm