白季飞龙的个人主页

JOOQ大杂烩

JOOQ(Java Object Oriented Querying),Java面向对象查询,是一个类型安全的ORM框架

JOOQ使用APT技术,通过分析数据库,对每个数据表和试图生成对应的Bean和查询对象,实现类型安全的ORM操作

JOOQ的配置

1. 添加JOOQ的Maven依赖

SpringBootStarterParent管理了JOOQ依赖,可以不用设置版本号

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jooq</artifactId>
</dependency>

2. 配置APT插件

JOOQ需要通过APT动态生成需要的Java类,所以需要配置Maven插件

重要的配置项:

<build>
    <plugins>
        <plugin>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen-maven</artifactId>
            <version>${jooq.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>${mysql.version}</version>
                </dependency>
            </dependencies>
            <configuration>
                <jdbc>
                    <url>jdbc:mysql://localhost:3306/foo</url>
                    <user>root</user>
                    <password>root</password>
                </jdbc>
                <generator>
                    <database>
                        <includes>.*</includes>
                        <inputSchema>foo</inputSchema>
                    </database>

                    <target>
                        <packageName>jooq</packageName>
                        <directory>${basedir}/target/generated-sources/java</directory>
                    </target>
                </generator>
            </configuration>
        </plugin>
    </plugins>
</build>

执行APT

执行成功后,会在/target/generated-sources目录下生成所需的Class

JOOQ简单示例

package bj.mybatis;

import com.zaxxer.hikari.HikariDataSource;
import jooq.tables.records.UserRecord;
import org.jooq.*;
import org.jooq.conf.ParamType;
import org.jooq.impl.DSL;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.annotation.Resource;
import javax.sql.DataSource;
import javax.validation.constraints.NotNull;

import static jooq.tables.User.USER;

/**
 * Created by BaiJiFeiLong@gmail.com at 2018/12/11 上午9:57
 */
@SpringBootApplication(exclude = QuartzAutoConfiguration.class)
public class App implements ApplicationListener<ApplicationReadyEvent> {

    public static void main(String[] args) {
        new SpringApplication(App.class) {{
            setWebApplicationType(WebApplicationType.NONE);
        }}.run(args);
    }

    @Resource
    private JdbcTemplate jdbcTemplate;

    @Override
    public void onApplicationEvent(@NotNull ApplicationReadyEvent event) {
        initDatabase();
        DSLContext dslContext = DSL.using(dataSource, SQLDialect.MYSQL_8_0);

        // 插入方式1: 插入对象
        UserRecord userRecord = dslContext.newRecord(USER);
        userRecord.setUsername("sky");
        userRecord.setRealName("九天");
        userRecord.insert();
        System.out.println("Inserted user: ");
        System.out.println(userRecord);

        // 插入方式2: 动态插入
        dslContext.insertInto(USER).set(USER.USERNAME, "rain").set(USER.REAL_NAME, "暴雨").execute();

        // 查询方式1: 查询完整对象
        Result<UserRecord> userRecords = dslContext.selectFrom(USER).fetch();
        System.out.println("All records: ");
        System.out.println(userRecords);

        // SEEK分页查询
        System.out.println("SEEK:");
        dslContext.selectFrom(USER).orderBy(USER.USERNAME.asc(), USER.REAL_NAME.asc()).seek("rain", "暴雨").limit(10).forEach(System.out::println);

        // 查询方式2: 查询指定字段
        SelectConditionStep<Record1<String>> where = dslContext.select(USER.REAL_NAME).from(USER).where(USER.ID.eq(2));
        Record1<String> stringRecord1 = where.fetchOne();
        System.out.println("SQL:");
        // 打印SQL。在DSL.using()可以不传dataSource,此时JOOQ做纯SQLBuilder
        System.out.println(where.getSQL(ParamType.INLINED));
        System.out.println("realName: ");
        System.out.println(stringRecord1);
    }

    @Resource
    private DataSource dataSource;

    private void initDatabase() {
        jdbcTemplate.execute("DROP TABLE IF EXISTS user");
        jdbcTemplate.execute("CREATE TABLE user(id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(16) UNIQUE ,real_name VARCHAR(32) CHARSET 'utf8')");
    }

    @Bean
    public DataSource dataSource() {
        return new HikariDataSource() {{
            this.setJdbcUrl("jdbc:mysql://localhost/foo?characterEncoding=utf-8");
            this.setUsername("root");
            this.setPassword("root");
        }};
    }
}

示例输出:

.   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.0.RELEASE)

2018-12-11 15:04:05.021  INFO 18538 --- [           main] bj.mybatis.App                           : Starting App on MacBook-Air-2.local with PID 18538 (/Users/yuchao/temp/java/hellomaven/target/classes started by yuchao in /Users/yuchao/temp/java/hellomaven)
2018-12-11 15:04:05.027  INFO 18538 --- [           main] bj.mybatis.App                           : No active profile set, falling back to default profiles: default
2018-12-11 15:04:06.422  WARN 18538 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : No MyBatis mapper was found in '[bj.mybatis]' package. Please check your configuration.
2018-12-11 15:04:07.529  INFO 18538 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2018-12-11 15:04:07.709  INFO 18538 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2018-12-11 15:04:08.393  WARN 18538 --- [           main] reactor.netty.tcp.TcpResources           : [http] resources will use the default LoopResources: DefaultLoopResources {prefix=reactor-http, daemon=true, selectCount=4, workerCount=4}
2018-12-11 15:04:08.393  WARN 18538 --- [           main] reactor.netty.tcp.TcpResources           : [http] resources will use the default ConnectionProvider: PooledConnectionProvider {name=http, poolFactory=reactor.netty.resources.ConnectionProvider$$Lambda$282/589610983@112d1c8e}
2018-12-11 15:04:08.645  INFO 18538 --- [           main] bj.mybatis.App                           : Started App in 4.832 seconds (JVM running for 6.859)
2018-12-11 15:04:08.900  INFO 18538 --- [           main] org.jooq.Constants                       :

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@  @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@        @@@@@@@@@@
@@@@@@@@@@@@@@@@  @@  @@    @@@@@@@@@@
@@@@@@@@@@  @@@@  @@  @@    @@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@    @@  @@  @@@@  @@@@@@@@@@
@@@@@@@@@@    @@  @@  @@@@  @@@@@@@@@@
@@@@@@@@@@        @@  @  @  @@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  Thank you for using jOOQ 3.11.5

Inserted user:
+----+--------+---------+
|  id|username|real_name|
+----+--------+---------+
|   1|sky     |九天       |
+----+--------+---------+

All records:
+----+--------+---------+
|  id|username|real_name|
+----+--------+---------+
|   1|sky     |九天       |
|   2|rain    |暴雨       |
+----+--------+---------+

SEEK:
+----+--------+---------+
|  id|username|real_name|
+----+--------+---------+
|   1|sky     |九天       |
+----+--------+---------+

SQL:
select `foo`.`user`.`real_name` from `foo`.`user` where `foo`.`user`.`id` = 2
realName:
+---------+
|real_name|
+---------+
|暴雨       |
+---------+

2018-12-11 15:04:09.722  INFO 18538 --- [      Thread-16] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2018-12-11 15:04:09.738  INFO 18538 --- [      Thread-16] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.

关于SEEK分页

SEEK分页是指拿上次查询的最后一条结果去查询新一页的结果。为了保证分页数据不重复,一般会SEEK两个字段(排序字段+ID)

使用Java代码手动控制JOOQ代码生成器的执行

Java示例代码

package io.github.baijifeilong.jooq;

import com.google.common.base.CaseFormat;
import com.zaxxer.hikari.HikariDataSource;
import lombok.SneakyThrows;
import lombok.experimental.FieldNameConstants;
import lombok.extern.slf4j.Slf4j;
import org.jooq.codegen.DefaultGeneratorStrategy;
import org.jooq.codegen.GenerationTool;
import org.jooq.codegen.JavaGenerator;
import org.jooq.codegen.JavaWriter;
import org.jooq.meta.Definition;
import org.jooq.meta.TableDefinition;
import org.jooq.meta.TypedElementDefinition;
import org.jooq.meta.jaxb.*;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MyJooqGenerator {

    private static void initDatabase() {
        JdbcTemplate jdbcTemplate = new JdbcTemplate(new HikariDataSource() {{
            setJdbcUrl("jdbc:mysql://localhost");
            setUsername("root");
            setPassword("root");
        }});
        jdbcTemplate.execute("DROP SCHEMA IF EXISTS alpha");
        jdbcTemplate.execute("DROP SCHEMA IF EXISTS beta");
        jdbcTemplate.execute("CREATE SCHEMA alpha");
        jdbcTemplate.execute("CREATE SCHEMA beta");
        jdbcTemplate.execute("USE alpha");
        jdbcTemplate.execute("CREATE TABLE user(id INT AUTO_INCREMENT PRIMARY KEY, username TEXT, real_name TEXT)");
        jdbcTemplate.execute("USE beta");
        jdbcTemplate.execute("CREATE TABLE bj_animal(id INT AUTO_INCREMENT PRIMARY KEY, name TEXT)");
        jdbcTemplate.execute("CREATE TABLE fl_plant(id INT AUTO_INCREMENT PRIMARY KEY, name TEXT)");
    }

    @SneakyThrows
    public static void main(String[] args) {
        initDatabase();
        GenerationTool.generate(new Configuration()
                .withJdbc(new Jdbc()
                        .withUrl("jdbc:mysql://localhost")
                        .withUser("root")
                        .withPassword("root"))
                .withGenerator(new Generator()
                        .withName(MyJavaGenerator.class.getName())
                        .withDatabase(new Database()
                                .withSchemata(
                                        new Schema().withInputSchema("alpha"),
                                        new Schema().withInputSchema("information_schema"),
                                        new Schema().withInputSchema("beta"))
                                .withExcludes(".*\\d+"))
                        .withStrategy(new Strategy()
                                .withName(MyStrategy.class.getName()))
                        .withTarget(new Target()
                                .withPackageName("io.github.baijifeilong.generated.jooq")
                                .withDirectory("src/main/java"))));

    }

    @Slf4j
    public static class MyStrategy extends DefaultGeneratorStrategy {
        private String[] prefixes = new String[]{"bj", "fl"};
        private Pattern pattern = Pattern.compile(String.format("(%s)_(.+)", String.join("|", prefixes)));

        @Override
        public String getJavaIdentifier(Definition definition) {
            if (definition instanceof TableDefinition) {
                Matcher matcher = pattern.matcher(definition.getName());
                if (matcher.matches()) {
                    log.info("[JAVA_IDENTIFIER] {} => {}", definition.getName(), matcher.group(2));
                    return matcher.group(2).toUpperCase();
                }
            }
            return super.getJavaIdentifier(definition);
        }

        @Override
        public String getJavaClassName(Definition definition, Mode mode) {
            String name = super.getJavaClassName(definition, mode);
            String snakeCaseName = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, name);
            Matcher matcher = pattern.matcher(snakeCaseName);
            if (!matcher.matches()) {
                return name;
            }
            String newSnakeCaseName = matcher.group(2);
            String newName = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, newSnakeCaseName);
            log.info("[CLASS_NAME] {} => {}", name, newName);
            return newName;
        }
    }

    public static class MyJavaGenerator extends JavaGenerator {
        @Override
        protected void generateRecordGetter(TypedElementDefinition<?> column, int index, JavaWriter out) {
            super.generateRecordGetter(column, index, out);
            String camelCase = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, column.getName());
            out.print("\n    /**\n     * Generated by baijifeilong@gmail.com\n     */\n    private %s %s;\n",
                    out.ref(getJavaType(column.getType())), camelCase);
        }

        @Override
        protected void generateRecordClassJavadoc(TableDefinition table, JavaWriter out) {
            super.generateRecordClassJavadoc(table, out);
            out.println("@" + FieldNameConstants.class.getName());
        }
    }
}

要点

生成文件的目录结构

.
└── bj
    ├── generated
    │   └── jooq
    │       ├── DefaultCatalog.java
    │       ├── alpha
    │       │   ├── Alpha.java
    │       │   ├── Indexes.java
    │       │   ├── Keys.java
    │       │   ├── Tables.java
    │       │   └── tables
    │       │       ├── User.java
    │       │       └── records
    │       │           └── UserRecord.java
    │       └── beta
    │           ├── Beta.java
    │           ├── Indexes.java
    │           ├── Keys.java
    │           ├── Tables.java
    │           └── tables
    │               ├── Animal.java
    │               ├── Plant.java
    │               └── records
    │                   ├── AnimalRecord.java
    │                   └── PlantRecord.java

控制台输出

13:54:01.113 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - Executing SQL statement [DROP SCHEMA IF EXISTS alpha]
13:54:01.177 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
13:54:01.178 [main] DEBUG com.zaxxer.hikari.HikariConfig - HikariPool-1 - configuration:
13:54:01.201 [main] DEBUG com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false
13:54:01.201 [main] DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................true
13:54:01.202 [main] DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................none
13:54:01.203 [main] DEBUG com.zaxxer.hikari.HikariConfig - connectionInitSql...............none
13:54:01.203 [main] DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery.............none
13:54:01.203 [main] DEBUG com.zaxxer.hikari.HikariConfig - connectionTimeout...............30000
13:54:01.203 [main] DEBUG com.zaxxer.hikari.HikariConfig - dataSource......................none
13:54:01.204 [main] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceClassName.............none
13:54:01.204 [main] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................none
13:54:01.347 [main] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=<masked>}
13:54:01.347 [main] DEBUG com.zaxxer.hikari.HikariConfig - driverClassName.................none
13:54:01.347 [main] DEBUG com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{}
13:54:01.348 [main] DEBUG com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............none
13:54:01.348 [main] DEBUG com.zaxxer.hikari.HikariConfig - idleTimeout.....................600000
13:54:01.349 [main] DEBUG com.zaxxer.hikari.HikariConfig - initializationFailTimeout.......1
13:54:01.350 [main] DEBUG com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false
13:54:01.350 [main] DEBUG com.zaxxer.hikari.HikariConfig - jdbcUrl.........................jdbc:mysql://localhost
13:54:01.350 [main] DEBUG com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........0
13:54:01.351 [main] DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000
13:54:01.351 [main] DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................10
13:54:01.351 [main] DEBUG com.zaxxer.hikari.HikariConfig - metricRegistry..................none
13:54:01.351 [main] DEBUG com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........none
13:54:01.351 [main] DEBUG com.zaxxer.hikari.HikariConfig - minimumIdle.....................10
13:54:01.352 [main] DEBUG com.zaxxer.hikari.HikariConfig - password........................<masked>
13:54:01.352 [main] DEBUG com.zaxxer.hikari.HikariConfig - poolName........................"HikariPool-1"
13:54:01.352 [main] DEBUG com.zaxxer.hikari.HikariConfig - readOnly........................false
13:54:01.352 [main] DEBUG com.zaxxer.hikari.HikariConfig - registerMbeans..................false
13:54:01.353 [main] DEBUG com.zaxxer.hikari.HikariConfig - scheduledExecutor...............none
13:54:01.353 [main] DEBUG com.zaxxer.hikari.HikariConfig - schema..........................none
13:54:01.353 [main] DEBUG com.zaxxer.hikari.HikariConfig - threadFactory...................internal
13:54:01.353 [main] DEBUG com.zaxxer.hikari.HikariConfig - transactionIsolation............default
13:54:01.353 [main] DEBUG com.zaxxer.hikari.HikariConfig - username........................"root"
13:54:01.353 [main] DEBUG com.zaxxer.hikari.HikariConfig - validationTimeout...............5000
13:54:01.353 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
13:54:01.419 [main] DEBUG com.zaxxer.hikari.util.DriverDataSource - Loaded driver with class name com.mysql.cj.jdbc.Driver for jdbcUrl=jdbc:mysql://localhost
13:54:02.055 [main] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@1a052a00
13:54:02.058 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
13:54:02.100 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - SQLWarning ignored: SQL state 'HY000', error code '1008', message [Can't drop database 'alpha'; database doesn't exist]
13:54:02.106 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
13:54:02.133 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - Executing SQL statement [DROP SCHEMA IF EXISTS beta]
13:54:02.135 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
13:54:02.138 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - SQLWarning ignored: SQL state 'HY000', error code '1008', message [Can't drop database 'beta'; database doesn't exist]
13:54:02.139 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
13:54:02.139 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - Executing SQL statement [CREATE SCHEMA alpha]
13:54:02.139 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
13:54:02.144 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
13:54:02.145 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - Executing SQL statement [CREATE SCHEMA beta]
13:54:02.145 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
13:54:02.148 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
13:54:02.148 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - Executing SQL statement [USE alpha]
13:54:02.148 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
13:54:02.150 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
13:54:02.150 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - Executing SQL statement [CREATE TABLE user(id INT AUTO_INCREMENT PRIMARY KEY, username TEXT, real_name TEXT)]
13:54:02.150 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
13:54:02.161 [HikariPool-1 housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Pool stats (total=1, active=1, idle=0, waiting=0)
13:54:02.168 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@17db162
13:54:02.174 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@4040bb59
13:54:02.196 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@714adcab
13:54:02.205 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@206f4416
13:54:02.216 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@1ee8f252
13:54:02.221 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
13:54:02.221 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - Executing SQL statement [USE beta]
13:54:02.221 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
13:54:02.223 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
13:54:02.223 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - Executing SQL statement [CREATE TABLE bj_animal(id INT AUTO_INCREMENT PRIMARY KEY, name TEXT)]
13:54:02.223 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
13:54:02.223 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@242198d0
13:54:02.234 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@356cf843
13:54:02.240 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@74d41db7
13:54:02.249 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@232fad77
13:54:02.249 [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - After adding stats (total=10, active=1, idle=9, waiting=0)
13:54:02.261 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
13:54:02.262 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate - Executing SQL statement [CREATE TABLE fl_plant(id INT AUTO_INCREMENT PRIMARY KEY, name TEXT)]
13:54:02.278 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
13:54:02.332 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
13:54:02.366 [main] DEBUG org.jooq.codegen.GenerationTool - Input configuration      : <jdbc><url>jdbc:mysql://localhost</url><user>root</user><password>root</password></jdbc><generator><name>org.jooq.codegen.DefaultGenerator</name><strategy><name>bj.jooq.MyJooqGenerator$MyStrategy</name></strategy><database><includes>.*</includes><excludes>.*\d+</excludes><includeExcludeColumns>false</includeExcludeColumns><includeTables>true</includeTables><includeRoutines>true</includeRoutines><includeTriggerRoutines>false</includeTriggerRoutines><includePackages>true</includePackages><includePackageRoutines>true</includePackageRoutines><includePackageUDTs>true</includePackageUDTs><includePackageConstants>true</includePackageConstants><includeUDTs>true</includeUDTs><includeSequences>true</includeSequences><includeIndexes>true</includeIndexes><includePrimaryKeys>true</includePrimaryKeys><includeUniqueKeys>true</includeUniqueKeys><includeForeignKeys>true</includeForeignKeys><recordVersionFields></recordVersionFields><recordTimestampFields></recordTimestampFields><syntheticIdentities></syntheticIdentities><syntheticPrimaryKeys></syntheticPrimaryKeys><overridePrimaryKeys></overridePrimaryKeys><dateAsTimestamp>false</dateAsTimestamp><ignoreProcedureReturnValues>false</ignoreProcedureReturnValues><unsignedTypes>true</unsignedTypes><inputCatalog></inputCatalog><outputCatalogToDefault>false</outputCatalogToDefault><inputSchema></inputSchema><outputSchemaToDefault>false</outputSchemaToDefault><schemaVersionProvider></schemaVersionProvider><catalogVersionProvider></catalogVersionProvider><orderProvider></orderProvider><forceIntegerTypesOnZeroScaleDecimals>true</forceIntegerTypesOnZeroScaleDecimals><logSlowQueriesAfterSeconds>5</logSlowQueriesAfterSeconds><schemata><schema><inputSchema>alpha</inputSchema><outputSchemaToDefault>false</outputSchemaToDefault></schema><schema><inputSchema>beta</inputSchema><outputSchemaToDefault>false</outputSchemaToDefault></schema></schemata></database><target><packageName>bj.generated.jooq</packageName><directory>src/main/java</directory><encoding>UTF-8</encoding><clean>true</clean></target></generator>
13:54:02.370 [main] INFO org.jooq.codegen.GenerationTool - Database                 : Inferring driver com.mysql.jdbc.Driver from URL jdbc:mysql://localhost
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
13:54:02.621 [main] INFO org.jooq.codegen.GenerationTool - Database                 : Inferring database org.jooq.meta.mysql.MySQLDatabase from URL jdbc:mysql://localhost
13:54:02.644 [main] INFO org.jooq.codegen.GenerationTool - No <inputCatalog/> was provided. Generating ALL available catalogs instead.
13:54:02.665 [main] INFO org.jooq.codegen.AbstractGenerator - License parameters
13:54:02.665 [main] INFO org.jooq.codegen.AbstractGenerator - ----------------------------------------------------------
13:54:02.669 [main] INFO org.jooq.codegen.AbstractGenerator -   Thank you for using jOOQ and jOOQ's code generator
13:54:02.669 [main] INFO org.jooq.codegen.AbstractGenerator -
13:54:02.669 [main] INFO org.jooq.codegen.AbstractGenerator - Database parameters
13:54:02.669 [main] INFO org.jooq.codegen.AbstractGenerator - ----------------------------------------------------------
13:54:03.207 [main] INFO org.jooq.codegen.AbstractGenerator -   dialect                : MYSQL
13:54:03.207 [main] INFO org.jooq.codegen.AbstractGenerator -   URL                    : jdbc:mysql://localhost
13:54:03.207 [main] INFO org.jooq.codegen.AbstractGenerator -   target dir             : src/main/java
13:54:03.207 [main] INFO org.jooq.codegen.AbstractGenerator -   target package         : bj.generated.jooq
13:54:03.207 [main] INFO org.jooq.codegen.AbstractGenerator -   includes               : [.*]
13:54:03.207 [main] INFO org.jooq.codegen.AbstractGenerator -   excludes               : [.*\d+]
13:54:03.207 [main] INFO org.jooq.codegen.AbstractGenerator -   includeExcludeColumns  : false
13:54:03.207 [main] INFO org.jooq.codegen.AbstractGenerator - ----------------------------------------------------------
13:54:03.207 [main] INFO org.jooq.codegen.JavaGenerator -
13:54:03.207 [main] INFO org.jooq.codegen.JavaGenerator - JavaGenerator parameters
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator - ----------------------------------------------------------
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   annotations (generated): true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   annotations (JPA: any) : false
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   annotations (JPA: version):
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   annotations (validation): false
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments               : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on attributes : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on catalogs   : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on columns    : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on keys       : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on links      : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on packages   : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on parameters : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on queues     : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on routines   : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on schemas    : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on sequences  : true
13:54:03.208 [main] INFO org.jooq.codegen.JavaGenerator -   comments on tables     : true
13:54:03.209 [main] INFO org.jooq.codegen.JavaGenerator -   comments on udts       : true
13:54:03.209 [main] INFO org.jooq.codegen.JavaGenerator -   daos                   : false
13:54:03.209 [main] INFO org.jooq.codegen.JavaGenerator -   deprecated code        : true
13:54:03.209 [main] INFO org.jooq.codegen.JavaGenerator -   global references (any): true
13:54:03.209 [main] INFO org.jooq.codegen.JavaGenerator -   global references (catalogs): true
13:54:03.209 [main] INFO org.jooq.codegen.JavaGenerator -   global references (keys): true
13:54:03.209 [main] INFO org.jooq.codegen.JavaGenerator -   global references (links): true
13:54:03.209 [main] INFO org.jooq.codegen.JavaGenerator -   global references (queues): true
13:54:03.210 [main] INFO org.jooq.codegen.JavaGenerator -   global references (routines): true
13:54:03.210 [main] INFO org.jooq.codegen.JavaGenerator -   global references (schemas): true
13:54:03.210 [main] INFO org.jooq.codegen.JavaGenerator -   global references (sequences): true
13:54:03.210 [main] INFO org.jooq.codegen.JavaGenerator -   global references (tables): true
13:54:03.211 [main] INFO org.jooq.codegen.JavaGenerator -   global references (udts): true
13:54:03.211 [main] INFO org.jooq.codegen.JavaGenerator -   indexes                : true
13:54:03.211 [main] INFO org.jooq.codegen.JavaGenerator -   instance fields        : true
13:54:03.212 [main] INFO org.jooq.codegen.JavaGenerator -   interfaces             : false
13:54:03.212 [main] INFO org.jooq.codegen.JavaGenerator -   interfaces (immutable) : false
13:54:03.212 [main] INFO org.jooq.codegen.JavaGenerator -   javadoc                : true
13:54:03.214 [main] INFO org.jooq.codegen.JavaGenerator -   keys                   : true
13:54:03.215 [main] INFO org.jooq.codegen.JavaGenerator -   links                  : true
13:54:03.215 [main] INFO org.jooq.codegen.JavaGenerator -   pojos                  : false
13:54:03.215 [main] INFO org.jooq.codegen.JavaGenerator -   pojos (immutable)      : false
13:54:03.216 [main] INFO org.jooq.codegen.JavaGenerator -   queues                 : true
13:54:03.216 [main] INFO org.jooq.codegen.JavaGenerator -   records                : true
13:54:03.216 [main] INFO org.jooq.codegen.JavaGenerator -   routines               : true
13:54:03.216 [main] INFO org.jooq.codegen.JavaGenerator -   sequences              : true
13:54:03.216 [main] INFO org.jooq.codegen.JavaGenerator -   table-valued functions : true
13:54:03.216 [main] INFO org.jooq.codegen.JavaGenerator -   tables                 : true
13:54:03.217 [main] INFO org.jooq.codegen.JavaGenerator -   udts                   : true
13:54:03.217 [main] INFO org.jooq.codegen.JavaGenerator -   relations              : true
13:54:03.217 [main] INFO org.jooq.codegen.JavaGenerator - ----------------------------------------------------------
13:54:03.217 [main] INFO org.jooq.codegen.JavaGenerator -
13:54:03.217 [main] INFO org.jooq.codegen.AbstractGenerator - Generation remarks
13:54:03.217 [main] INFO org.jooq.codegen.AbstractGenerator - ----------------------------------------------------------
13:54:03.217 [main] INFO org.jooq.codegen.JavaGenerator -
13:54:03.217 [main] INFO org.jooq.codegen.JavaGenerator - ----------------------------------------------------------
13:54:03.221 [main] INFO org.jooq.codegen.JavaGenerator - Generating catalogs      : Total: 1
13:54:03.836 [main] INFO org.jooq.Constants -

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@  @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@        @@@@@@@@@@
@@@@@@@@@@@@@@@@  @@  @@    @@@@@@@@@@
@@@@@@@@@@  @@@@  @@  @@    @@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@    @@  @@  @@@@  @@@@@@@@@@
@@@@@@@@@@    @@  @@  @@@@  @@@@@@@@@@
@@@@@@@@@@        @@  @  @  @@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  Thank you for using jOOQ 3.11.5

13:54:03.947 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select 1 as `one` from dual
13:54:04.059 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +----+
13:54:04.059 [main] DEBUG org.jooq.tools.LoggerListener -                          : | one|
13:54:04.059 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----+
13:54:04.059 [main] DEBUG org.jooq.tools.LoggerListener -                          : |   1|
13:54:04.059 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----+
13:54:04.059 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 1
13:54:04.067 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`SCHEMATA`.`SCHEMA_NAME` from `information_schema`.`SCHEMATA`
13:54:04.069 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +------------------+
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener -                          : |SCHEMA_NAME       |
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------------+
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener -                          : |information_schema|
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener -                          : |alpha             |
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener -                          : |base              |
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener -                          : |beta              |
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener -                          : |bootSeed-cms      |
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------------+
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener -                          : |...record(s) truncated...
13:54:04.070 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 15
13:54:04.070 [main] INFO org.jooq.meta.AbstractDatabase - ARRAYs fetched           : 0 (0 included, 0 excluded)
13:54:04.080 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`COLUMNS`.`TABLE_SCHEMA`, `information_schema`.`COLUMNS`.`COLUMN_COMMENT`, `information_schema`.`COLUMNS`.`TABLE_NAME`, `information_schema`.`COLUMNS`.`COLUMN_NAME`, `information_schema`.`COLUMNS`.`COLUMN_TYPE` from `information_schema`.`COLUMNS` where (`information_schema`.`COLUMNS`.`COLUMN_TYPE` like ? and (`information_schema`.`COLUMNS`.`TABLE_SCHEMA` in (?, ?) or 1 = 0)) order by `information_schema`.`COLUMNS`.`TABLE_SCHEMA` asc, `information_schema`.`COLUMNS`.`TABLE_NAME` asc, `information_schema`.`COLUMNS`.`COLUMN_NAME` asc
13:54:04.082 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `information_schema`.`COLUMNS`.`TABLE_SCHEMA`, `information_schema`.`COLUMNS`.`COLUMN_COMMENT`, `information_schema`.`COLUMNS`.`TABLE_NAME`, `information_schema`.`COLUMNS`.`COLUMN_NAME`, `information_schema`.`COLUMNS`.`COLUMN_TYPE` from `information_schema`.`COLUMNS` where (`information_schema`.`COLUMNS`.`COLUMN_TYPE` like 'enum(%)' and (`information_schema`.`COLUMNS`.`TABLE_SCHEMA` in ('alpha', 'beta') or 1 = 0)) order by `information_schema`.`COLUMNS`.`TABLE_SCHEMA` asc, `information_schema`.`COLUMNS`.`TABLE_NAME` asc, `information_schema`.`COLUMNS`.`COLUMN_NAME` asc
13:54:04.101 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +------------+--------------+----------+-----------+-----------+
13:54:04.101 [main] DEBUG org.jooq.tools.LoggerListener -                          : |TABLE_SCHEMA|COLUMN_COMMENT|TABLE_NAME|COLUMN_NAME|COLUMN_TYPE|
13:54:04.101 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------+--------------+----------+-----------+-----------+
13:54:04.102 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 0
13:54:04.102 [main] INFO org.jooq.meta.AbstractDatabase - Enums fetched            : 0 (0 included, 0 excluded)
13:54:04.103 [main] INFO org.jooq.meta.AbstractDatabase - Packages fetched         : 0 (0 included, 0 excluded)
13:54:04.115 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select 1 as `one` from dual where exists (select 1 as `one` from `mysql`.`proc`)
13:54:04.118 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +----+
13:54:04.118 [main] DEBUG org.jooq.tools.LoggerListener -                          : | one|
13:54:04.118 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----+
13:54:04.118 [main] DEBUG org.jooq.tools.LoggerListener -                          : |   1|
13:54:04.118 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----+
13:54:04.118 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 1
13:54:04.119 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `mysql`.`proc`.`db` as `ROUTINE_SCHEMA`, `mysql`.`proc`.`name` as `ROUTINE_NAME`, `mysql`.`proc`.`comment` as `ROUTINE_COMMENT`, `mysql`.`proc`.`param_list`, `mysql`.`proc`.`returns`, `mysql`.`proc`.`type` as `ROUTINE_TYPE` from `mysql`.`proc` where `mysql`.`proc`.`db` in (?, ?) order by 1, 2, 6
13:54:04.121 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `mysql`.`proc`.`db` as `ROUTINE_SCHEMA`, `mysql`.`proc`.`name` as `ROUTINE_NAME`, `mysql`.`proc`.`comment` as `ROUTINE_COMMENT`, `mysql`.`proc`.`param_list`, `mysql`.`proc`.`returns`, `mysql`.`proc`.`type` as `ROUTINE_TYPE` from `mysql`.`proc` where `mysql`.`proc`.`db` in ('alpha', 'beta') order by 1, 2, 6
13:54:04.123 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +--------------+------------+---------------+----------+-------+------------+
13:54:04.123 [main] DEBUG org.jooq.tools.LoggerListener -                          : |ROUTINE_SCHEMA|ROUTINE_NAME|ROUTINE_COMMENT|param_list|returns|ROUTINE_TYPE|
13:54:04.123 [main] DEBUG org.jooq.tools.LoggerListener -                          : +--------------+------------+---------------+----------+-------+------------+
13:54:04.123 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 0
13:54:04.123 [main] INFO org.jooq.meta.AbstractDatabase - Routines fetched         : 0 (0 included, 0 excluded)
13:54:04.124 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`TABLES`.`TABLE_SCHEMA`, `information_schema`.`TABLES`.`TABLE_NAME`, `information_schema`.`TABLES`.`TABLE_COMMENT` from `information_schema`.`TABLES` where (`information_schema`.`TABLES`.`TABLE_SCHEMA` in (?, ?) or 1 = 0) order by `information_schema`.`TABLES`.`TABLE_SCHEMA`, `information_schema`.`TABLES`.`TABLE_NAME`
13:54:04.125 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `information_schema`.`TABLES`.`TABLE_SCHEMA`, `information_schema`.`TABLES`.`TABLE_NAME`, `information_schema`.`TABLES`.`TABLE_COMMENT` from `information_schema`.`TABLES` where (`information_schema`.`TABLES`.`TABLE_SCHEMA` in ('alpha', 'beta') or 1 = 0) order by `information_schema`.`TABLES`.`TABLE_SCHEMA`, `information_schema`.`TABLES`.`TABLE_NAME`
13:54:04.129 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +------------+----------+-------------+
13:54:04.130 [main] DEBUG org.jooq.tools.LoggerListener -                          : |TABLE_SCHEMA|TABLE_NAME|TABLE_COMMENT|
13:54:04.130 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------+----------+-------------+
13:54:04.130 [main] DEBUG org.jooq.tools.LoggerListener -                          : |alpha       |user      |             |
13:54:04.130 [main] DEBUG org.jooq.tools.LoggerListener -                          : |beta        |bj_animal |             |
13:54:04.130 [main] DEBUG org.jooq.tools.LoggerListener -                          : |beta        |fl_plant  |             |
13:54:04.130 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------+----------+-------------+
13:54:04.130 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 3
13:54:04.159 [main] DEBUG org.jooq.meta.AbstractDatabase - Include                  : Including alpha.user because of pattern .*
13:54:04.159 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.159 [main] DEBUG org.jooq.meta.AbstractDatabase - Include                  : Including beta.bj_animal because of pattern .*
13:54:04.159 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.159 [main] DEBUG org.jooq.meta.AbstractDatabase - Include                  : Including beta.fl_plant because of pattern .*
13:54:04.159 [main] INFO org.jooq.meta.AbstractDatabase - Tables fetched           : 3 (3 included, 0 excluded)
13:54:04.159 [main] INFO org.jooq.codegen.JavaGenerator - No schema version is applied for catalog . Regenerating.
13:54:04.161 [main] INFO org.jooq.codegen.JavaGenerator -
13:54:04.161 [main] INFO org.jooq.codegen.JavaGenerator - Generating catalog       : DefaultCatalog.java
13:54:04.161 [main] INFO org.jooq.codegen.JavaGenerator - ==========================================================
13:54:04.178 [main] INFO org.jooq.codegen.JavaGenerator - Generating schemata      : Total: 2
13:54:04.178 [main] INFO org.jooq.codegen.JavaGenerator - No schema version is applied for schema alpha. Regenerating.
13:54:04.178 [main] INFO org.jooq.codegen.JavaGenerator - Generating schema        : Alpha.java
13:54:04.178 [main] INFO org.jooq.codegen.JavaGenerator - ----------------------------------------------------------
13:54:04.180 [main] INFO org.jooq.meta.AbstractDatabase - Sequences fetched        : 0 (0 included, 0 excluded)
13:54:04.182 [main] INFO org.jooq.meta.AbstractDatabase - UDTs fetched             : 0 (0 included, 0 excluded)
13:54:04.185 [main] INFO org.jooq.codegen.JavaGenerator - Generating tables
13:54:04.189 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`COLUMNS`.`ORDINAL_POSITION`, `information_schema`.`COLUMNS`.`COLUMN_NAME`, `information_schema`.`COLUMNS`.`COLUMN_COMMENT`, `information_schema`.`COLUMNS`.`COLUMN_TYPE`, `information_schema`.`COLUMNS`.`DATA_TYPE`, `information_schema`.`COLUMNS`.`IS_NULLABLE`, `information_schema`.`COLUMNS`.`COLUMN_DEFAULT`, `information_schema`.`COLUMNS`.`CHARACTER_MAXIMUM_LENGTH`, `information_schema`.`COLUMNS`.`NUMERIC_PRECISION`, `information_schema`.`COLUMNS`.`NUMERIC_SCALE`, `information_schema`.`COLUMNS`.`EXTRA` from `information_schema`.`COLUMNS` where (`information_schema`.`COLUMNS`.`TABLE_SCHEMA` in (?, ?) and `information_schema`.`COLUMNS`.`TABLE_NAME` = ?) order by `information_schema`.`COLUMNS`.`ORDINAL_POSITION`
13:54:04.190 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `information_schema`.`COLUMNS`.`ORDINAL_POSITION`, `information_schema`.`COLUMNS`.`COLUMN_NAME`, `information_schema`.`COLUMNS`.`COLUMN_COMMENT`, `information_schema`.`COLUMNS`.`COLUMN_TYPE`, `information_schema`.`COLUMNS`.`DATA_TYPE`, `information_schema`.`COLUMNS`.`IS_NULLABLE`, `information_schema`.`COLUMNS`.`COLUMN_DEFAULT`, `information_schema`.`COLUMNS`.`CHARACTER_MAXIMUM_LENGTH`, `information_schema`.`COLUMNS`.`NUMERIC_PRECISION`, `information_schema`.`COLUMNS`.`NUMERIC_SCALE`, `information_schema`.`COLUMNS`.`EXTRA` from `information_schema`.`COLUMNS` where (`information_schema`.`COLUMNS`.`TABLE_SCHEMA` in ('alpha', 'alpha') and `information_schema`.`COLUMNS`.`TABLE_NAME` = 'user') order by `information_schema`.`COLUMNS`.`ORDINAL_POSITION`
13:54:04.203 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +----------------+-----------+--------------+-----------+---------+-----------+--------------+------------------------+-----------------+-------------+--------------+
13:54:04.203 [main] DEBUG org.jooq.tools.LoggerListener -                          : |ORDINAL_POSITION|COLUMN_NAME|COLUMN_COMMENT|COLUMN_TYPE|DATA_TYPE|IS_NULLABLE|COLUMN_DEFAULT|CHARACTER_MAXIMUM_LENGTH|NUMERIC_PRECISION|NUMERIC_SCALE|EXTRA         |
13:54:04.203 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----------------+-----------+--------------+-----------+---------+-----------+--------------+------------------------+-----------------+-------------+--------------+
13:54:04.203 [main] DEBUG org.jooq.tools.LoggerListener -                          : |               1|id         |              |int(11)    |int      |NO         |{null}        |                  {null}|               10|            0|auto_increment|
13:54:04.203 [main] DEBUG org.jooq.tools.LoggerListener -                          : |               2|username   |              |text       |text     |YES        |{null}        |                   65535|           {null}|       {null}|              |
13:54:04.203 [main] DEBUG org.jooq.tools.LoggerListener -                          : |               3|real_name  |              |text       |text     |YES        |{null}        |                   65535|           {null}|       {null}|              |
13:54:04.203 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----------------+-----------+--------------+-----------+---------+-----------+--------------+------------------------+-----------------+-------------+--------------+
13:54:04.203 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 3
13:54:04.211 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`COLUMN_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME` from `information_schema`.`STATISTICS` where ((`information_schema`.`STATISTICS`.`TABLE_SCHEMA` in (?, ?) or 1 = 0) and `information_schema`.`STATISTICS`.`INDEX_NAME` = 'PRIMARY') order by `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME`, `information_schema`.`STATISTICS`.`SEQ_IN_INDEX`
13:54:04.212 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`COLUMN_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME` from `information_schema`.`STATISTICS` where ((`information_schema`.`STATISTICS`.`TABLE_SCHEMA` in ('alpha', 'beta') or 1 = 0) and `information_schema`.`STATISTICS`.`INDEX_NAME` = 'PRIMARY') order by `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME`, `information_schema`.`STATISTICS`.`SEQ_IN_INDEX`
13:54:04.216 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +------------+----------+-----------+----------+
13:54:04.216 [main] DEBUG org.jooq.tools.LoggerListener -                          : |TABLE_SCHEMA|TABLE_NAME|COLUMN_NAME|INDEX_NAME|
13:54:04.216 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------+----------+-----------+----------+
13:54:04.216 [main] DEBUG org.jooq.tools.LoggerListener -                          : |alpha       |user      |id         |PRIMARY   |
13:54:04.216 [main] DEBUG org.jooq.tools.LoggerListener -                          : |beta        |bj_animal |id         |PRIMARY   |
13:54:04.216 [main] DEBUG org.jooq.tools.LoggerListener -                          : |beta        |fl_plant  |id         |PRIMARY   |
13:54:04.216 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------+----------+-----------+----------+
13:54:04.216 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 3
13:54:04.216 [main] DEBUG org.jooq.meta.DefaultRelations - Adding primary key       : KEY_user_PRIMARY (alpha.user.id)
13:54:04.219 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`COLUMNS`.`ORDINAL_POSITION`, `information_schema`.`COLUMNS`.`COLUMN_NAME`, `information_schema`.`COLUMNS`.`COLUMN_COMMENT`, `information_schema`.`COLUMNS`.`COLUMN_TYPE`, `information_schema`.`COLUMNS`.`DATA_TYPE`, `information_schema`.`COLUMNS`.`IS_NULLABLE`, `information_schema`.`COLUMNS`.`COLUMN_DEFAULT`, `information_schema`.`COLUMNS`.`CHARACTER_MAXIMUM_LENGTH`, `information_schema`.`COLUMNS`.`NUMERIC_PRECISION`, `information_schema`.`COLUMNS`.`NUMERIC_SCALE`, `information_schema`.`COLUMNS`.`EXTRA` from `information_schema`.`COLUMNS` where (`information_schema`.`COLUMNS`.`TABLE_SCHEMA` in (?, ?) and `information_schema`.`COLUMNS`.`TABLE_NAME` = ?) order by `information_schema`.`COLUMNS`.`ORDINAL_POSITION`
13:54:04.220 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `information_schema`.`COLUMNS`.`ORDINAL_POSITION`, `information_schema`.`COLUMNS`.`COLUMN_NAME`, `information_schema`.`COLUMNS`.`COLUMN_COMMENT`, `information_schema`.`COLUMNS`.`COLUMN_TYPE`, `information_schema`.`COLUMNS`.`DATA_TYPE`, `information_schema`.`COLUMNS`.`IS_NULLABLE`, `information_schema`.`COLUMNS`.`COLUMN_DEFAULT`, `information_schema`.`COLUMNS`.`CHARACTER_MAXIMUM_LENGTH`, `information_schema`.`COLUMNS`.`NUMERIC_PRECISION`, `information_schema`.`COLUMNS`.`NUMERIC_SCALE`, `information_schema`.`COLUMNS`.`EXTRA` from `information_schema`.`COLUMNS` where (`information_schema`.`COLUMNS`.`TABLE_SCHEMA` in ('beta', 'beta') and `information_schema`.`COLUMNS`.`TABLE_NAME` = 'bj_animal') order by `information_schema`.`COLUMNS`.`ORDINAL_POSITION`
13:54:04.224 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +----------------+-----------+--------------+-----------+---------+-----------+--------------+------------------------+-----------------+-------------+--------------+
13:54:04.224 [main] DEBUG org.jooq.tools.LoggerListener -                          : |ORDINAL_POSITION|COLUMN_NAME|COLUMN_COMMENT|COLUMN_TYPE|DATA_TYPE|IS_NULLABLE|COLUMN_DEFAULT|CHARACTER_MAXIMUM_LENGTH|NUMERIC_PRECISION|NUMERIC_SCALE|EXTRA         |
13:54:04.224 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----------------+-----------+--------------+-----------+---------+-----------+--------------+------------------------+-----------------+-------------+--------------+
13:54:04.224 [main] DEBUG org.jooq.tools.LoggerListener -                          : |               1|id         |              |int(11)    |int      |NO         |{null}        |                  {null}|               10|            0|auto_increment|
13:54:04.224 [main] DEBUG org.jooq.tools.LoggerListener -                          : |               2|name       |              |text       |text     |YES        |{null}        |                   65535|           {null}|       {null}|              |
13:54:04.224 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----------------+-----------+--------------+-----------+---------+-----------+--------------+------------------------+-----------------+-------------+--------------+
13:54:04.224 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 2
13:54:04.224 [main] DEBUG org.jooq.meta.DefaultRelations - Adding primary key       : KEY_bj_animal_PRIMARY (beta.bj_animal.id)
13:54:04.225 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`COLUMNS`.`ORDINAL_POSITION`, `information_schema`.`COLUMNS`.`COLUMN_NAME`, `information_schema`.`COLUMNS`.`COLUMN_COMMENT`, `information_schema`.`COLUMNS`.`COLUMN_TYPE`, `information_schema`.`COLUMNS`.`DATA_TYPE`, `information_schema`.`COLUMNS`.`IS_NULLABLE`, `information_schema`.`COLUMNS`.`COLUMN_DEFAULT`, `information_schema`.`COLUMNS`.`CHARACTER_MAXIMUM_LENGTH`, `information_schema`.`COLUMNS`.`NUMERIC_PRECISION`, `information_schema`.`COLUMNS`.`NUMERIC_SCALE`, `information_schema`.`COLUMNS`.`EXTRA` from `information_schema`.`COLUMNS` where (`information_schema`.`COLUMNS`.`TABLE_SCHEMA` in (?, ?) and `information_schema`.`COLUMNS`.`TABLE_NAME` = ?) order by `information_schema`.`COLUMNS`.`ORDINAL_POSITION`
13:54:04.226 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `information_schema`.`COLUMNS`.`ORDINAL_POSITION`, `information_schema`.`COLUMNS`.`COLUMN_NAME`, `information_schema`.`COLUMNS`.`COLUMN_COMMENT`, `information_schema`.`COLUMNS`.`COLUMN_TYPE`, `information_schema`.`COLUMNS`.`DATA_TYPE`, `information_schema`.`COLUMNS`.`IS_NULLABLE`, `information_schema`.`COLUMNS`.`COLUMN_DEFAULT`, `information_schema`.`COLUMNS`.`CHARACTER_MAXIMUM_LENGTH`, `information_schema`.`COLUMNS`.`NUMERIC_PRECISION`, `information_schema`.`COLUMNS`.`NUMERIC_SCALE`, `information_schema`.`COLUMNS`.`EXTRA` from `information_schema`.`COLUMNS` where (`information_schema`.`COLUMNS`.`TABLE_SCHEMA` in ('beta', 'beta') and `information_schema`.`COLUMNS`.`TABLE_NAME` = 'fl_plant') order by `information_schema`.`COLUMNS`.`ORDINAL_POSITION`
13:54:04.229 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +----------------+-----------+--------------+-----------+---------+-----------+--------------+------------------------+-----------------+-------------+--------------+
13:54:04.229 [main] DEBUG org.jooq.tools.LoggerListener -                          : |ORDINAL_POSITION|COLUMN_NAME|COLUMN_COMMENT|COLUMN_TYPE|DATA_TYPE|IS_NULLABLE|COLUMN_DEFAULT|CHARACTER_MAXIMUM_LENGTH|NUMERIC_PRECISION|NUMERIC_SCALE|EXTRA         |
13:54:04.229 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----------------+-----------+--------------+-----------+---------+-----------+--------------+------------------------+-----------------+-------------+--------------+
13:54:04.229 [main] DEBUG org.jooq.tools.LoggerListener -                          : |               1|id         |              |int(11)    |int      |NO         |{null}        |                  {null}|               10|            0|auto_increment|
13:54:04.229 [main] DEBUG org.jooq.tools.LoggerListener -                          : |               2|name       |              |text       |text     |YES        |{null}        |                   65535|           {null}|       {null}|              |
13:54:04.229 [main] DEBUG org.jooq.tools.LoggerListener -                          : +----------------+-----------+--------------+-----------+---------+-----------+--------------+------------------------+-----------------+-------------+--------------+
13:54:04.229 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 2
13:54:04.230 [main] DEBUG org.jooq.meta.DefaultRelations - Adding primary key       : KEY_fl_plant_PRIMARY (beta.fl_plant.id)
13:54:04.230 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`COLUMN_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME` from `information_schema`.`STATISTICS` where ((`information_schema`.`STATISTICS`.`TABLE_SCHEMA` in (?, ?) or 1 = 0) and `information_schema`.`STATISTICS`.`INDEX_NAME` <> 'PRIMARY' and `information_schema`.`STATISTICS`.`NON_UNIQUE` = '0') order by `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME`, `information_schema`.`STATISTICS`.`SEQ_IN_INDEX`
13:54:04.231 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`COLUMN_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME` from `information_schema`.`STATISTICS` where ((`information_schema`.`STATISTICS`.`TABLE_SCHEMA` in ('alpha', 'beta') or 1 = 0) and `information_schema`.`STATISTICS`.`INDEX_NAME` <> 'PRIMARY' and `information_schema`.`STATISTICS`.`NON_UNIQUE` = '0') order by `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME`, `information_schema`.`STATISTICS`.`SEQ_IN_INDEX`
13:54:04.235 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +------------+----------+-----------+----------+
13:54:04.235 [main] DEBUG org.jooq.tools.LoggerListener -                          : |TABLE_SCHEMA|TABLE_NAME|COLUMN_NAME|INDEX_NAME|
13:54:04.235 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------+----------+-----------+----------+
13:54:04.235 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 0
13:54:04.239 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_SCHEMA`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_NAME`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`TABLE_NAME`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`REFERENCED_TABLE_NAME`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`UNIQUE_CONSTRAINT_NAME`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`UNIQUE_CONSTRAINT_SCHEMA`, `information_schema`.`KEY_COLUMN_USAGE`.`COLUMN_NAME` from `information_schema`.`REFERENTIAL_CONSTRAINTS` join `information_schema`.`KEY_COLUMN_USAGE` on (`information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_SCHEMA` = `information_schema`.`KEY_COLUMN_USAGE`.`CONSTRAINT_SCHEMA` and `information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_NAME` = `information_schema`.`KEY_COLUMN_USAGE`.`CONSTRAINT_NAME`) where (`information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_SCHEMA` in (?, ?) or 1 = 0) order by `information_schema`.`KEY_COLUMN_USAGE`.`CONSTRAINT_SCHEMA` asc, `information_schema`.`KEY_COLUMN_USAGE`.`CONSTRAINT_NAME` asc, `information_schema`.`KEY_COLUMN_USAGE`.`ORDINAL_POSITION` asc
13:54:04.240 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_SCHEMA`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_NAME`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`TABLE_NAME`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`REFERENCED_TABLE_NAME`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`UNIQUE_CONSTRAINT_NAME`, `information_schema`.`REFERENTIAL_CONSTRAINTS`.`UNIQUE_CONSTRAINT_SCHEMA`, `information_schema`.`KEY_COLUMN_USAGE`.`COLUMN_NAME` from `information_schema`.`REFERENTIAL_CONSTRAINTS` join `information_schema`.`KEY_COLUMN_USAGE` on (`information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_SCHEMA` = `information_schema`.`KEY_COLUMN_USAGE`.`CONSTRAINT_SCHEMA` and `information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_NAME` = `information_schema`.`KEY_COLUMN_USAGE`.`CONSTRAINT_NAME`) where (`information_schema`.`REFERENTIAL_CONSTRAINTS`.`CONSTRAINT_SCHEMA` in ('alpha', 'beta') or 1 = 0) order by `information_schema`.`KEY_COLUMN_USAGE`.`CONSTRAINT_SCHEMA` asc, `information_schema`.`KEY_COLUMN_USAGE`.`CONSTRAINT_NAME` asc, `information_schema`.`KEY_COLUMN_USAGE`.`ORDINAL_POSITION` asc
13:54:04.327 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +-----------------+---------------+----------+---------------------+----------------------+------------------------+-----------+
13:54:04.327 [main] DEBUG org.jooq.tools.LoggerListener -                          : |CONSTRAINT_SCHEMA|CONSTRAINT_NAME|TABLE_NAME|REFERENCED_TABLE_NAME|UNIQUE_CONSTRAINT_NAME|UNIQUE_CONSTRAINT_SCHEMA|COLUMN_NAME|
13:54:04.327 [main] DEBUG org.jooq.tools.LoggerListener -                          : +-----------------+---------------+----------+---------------------+----------------------+------------------------+-----------+
13:54:04.327 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 0
13:54:04.328 [main] INFO org.jooq.meta.AbstractDatabase - Synthetic primary keys   : 0 (0 included, 0 excluded)
13:54:04.328 [main] INFO org.jooq.meta.AbstractDatabase - Overriding primary keys  : 3 (0 included, 3 excluded)
13:54:04.329 [main] INFO org.jooq.codegen.JavaGenerator - Generating table         : User.java [input=user, output=user, pk=KEY_user_PRIMARY]
13:54:04.332 [main] DEBUG org.jooq.meta.AbstractTypedElementDefinition - Type mapping             : alpha.user.id with type int
13:54:04.336 [main] DEBUG org.jooq.meta.AbstractTypedElementDefinition - Type mapping             : alpha.user.username with type text
13:54:04.337 [main] DEBUG org.jooq.meta.AbstractTypedElementDefinition - Type mapping             : alpha.user.real_name with type text
13:54:04.345 [main] DEBUG org.jooq.tools.LoggerListener - Executing query          : select `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME`, `information_schema`.`STATISTICS`.`NON_UNIQUE`, `information_schema`.`STATISTICS`.`COLUMN_NAME`, `information_schema`.`STATISTICS`.`SEQ_IN_INDEX` from `information_schema`.`STATISTICS` where (`information_schema`.`STATISTICS`.`TABLE_SCHEMA` in (?, ?) or 1 = 0) order by `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME`, `information_schema`.`STATISTICS`.`SEQ_IN_INDEX`
13:54:04.346 [main] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : select `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME`, `information_schema`.`STATISTICS`.`NON_UNIQUE`, `information_schema`.`STATISTICS`.`COLUMN_NAME`, `information_schema`.`STATISTICS`.`SEQ_IN_INDEX` from `information_schema`.`STATISTICS` where (`information_schema`.`STATISTICS`.`TABLE_SCHEMA` in ('alpha', 'beta') or 1 = 0) order by `information_schema`.`STATISTICS`.`TABLE_SCHEMA`, `information_schema`.`STATISTICS`.`TABLE_NAME`, `information_schema`.`STATISTICS`.`INDEX_NAME`, `information_schema`.`STATISTICS`.`SEQ_IN_INDEX`
13:54:04.355 [main] DEBUG org.jooq.tools.LoggerListener - Fetched result           : +------------+----------+----------+----------+-----------+------------+
13:54:04.355 [main] DEBUG org.jooq.tools.LoggerListener -                          : |TABLE_SCHEMA|TABLE_NAME|INDEX_NAME|NON_UNIQUE|COLUMN_NAME|SEQ_IN_INDEX|
13:54:04.355 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------+----------+----------+----------+-----------+------------+
13:54:04.355 [main] DEBUG org.jooq.tools.LoggerListener -                          : |alpha       |user      |PRIMARY   |0         |id         |           1|
13:54:04.355 [main] DEBUG org.jooq.tools.LoggerListener -                          : |beta        |bj_animal |PRIMARY   |0         |id         |           1|
13:54:04.355 [main] DEBUG org.jooq.tools.LoggerListener -                          : |beta        |fl_plant  |PRIMARY   |0         |id         |           1|
13:54:04.355 [main] DEBUG org.jooq.tools.LoggerListener -                          : +------------+----------+----------+----------+-----------+------------+
13:54:04.355 [main] DEBUG org.jooq.tools.LoggerListener - Fetched row(s)           : 3
13:54:04.358 [main] INFO org.jooq.meta.AbstractDatabase - Indexes fetched          : 3 (3 included, 0 excluded)
13:54:04.368 [main] INFO org.jooq.tools.StopWatch - Tables generated         : Total: 1.821s
13:54:04.368 [main] INFO org.jooq.codegen.JavaGenerator - Generating table references
13:54:04.371 [main] INFO org.jooq.tools.StopWatch - Table refs generated     : Total: 1.824s, +2.872ms
13:54:04.371 [main] INFO org.jooq.codegen.JavaGenerator - Generating Keys
13:54:04.380 [main] INFO org.jooq.tools.StopWatch - Keys generated           : Total: 1.833s, +9.053ms
13:54:04.380 [main] INFO org.jooq.codegen.JavaGenerator - Generating Indexes
13:54:04.384 [main] INFO org.jooq.tools.StopWatch - Indexes generated        : Total: 1.837s, +4.461ms
13:54:04.385 [main] INFO org.jooq.codegen.JavaGenerator - Generating table records
13:54:04.385 [main] INFO org.jooq.codegen.JavaGenerator - Generating record        : UserRecord.java
13:54:04.407 [main] INFO org.jooq.tools.StopWatch - Table records generated  : Total: 1.86s, +22.878ms
13:54:04.408 [main] INFO org.jooq.meta.AbstractDatabase - Domains fetched          : 0 (0 included, 0 excluded)
13:54:04.408 [main] INFO org.jooq.tools.StopWatch - Generation finished: alpha: Total: 1.861s, +0.246ms
13:54:04.408 [main] INFO org.jooq.codegen.JavaGenerator -
13:54:04.408 [main] INFO org.jooq.codegen.JavaGenerator - No schema version is applied for schema beta. Regenerating.
13:54:04.408 [main] INFO org.jooq.codegen.JavaGenerator - Generating schema        : Beta.java
13:54:04.408 [main] INFO org.jooq.codegen.JavaGenerator - ----------------------------------------------------------
13:54:04.409 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.409 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.409 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.409 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.410 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.410 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.413 [main] INFO org.jooq.codegen.JavaGenerator - Generating tables
13:54:04.413 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.414 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.414 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.414 [main] INFO org.jooq.codegen.JavaGenerator - Generating table         : Animal.java [input=bj_animal, output=bj_animal, pk=KEY_bj_animal_PRIMARY]
13:54:04.415 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.415 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.416 [main] DEBUG org.jooq.meta.AbstractTypedElementDefinition - Type mapping             : beta.bj_animal.id with type int
13:54:04.416 [main] DEBUG org.jooq.meta.AbstractTypedElementDefinition - Type mapping             : beta.bj_animal.name with type text
13:54:04.424 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.424 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.425 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.426 [main] INFO org.jooq.codegen.JavaGenerator - Generating table         : Plant.java [input=fl_plant, output=fl_plant, pk=KEY_fl_plant_PRIMARY]
13:54:04.427 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.427 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.428 [main] DEBUG org.jooq.meta.AbstractTypedElementDefinition - Type mapping             : beta.fl_plant.id with type int
13:54:04.428 [main] DEBUG org.jooq.meta.AbstractTypedElementDefinition - Type mapping             : beta.fl_plant.name with type text
13:54:04.438 [main] INFO org.jooq.tools.StopWatch - Tables generated         : Total: 1.891s, +30.409ms
13:54:04.438 [main] INFO org.jooq.codegen.JavaGenerator - Generating table references
13:54:04.439 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.439 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.439 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.440 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.440 [main] INFO org.jooq.tools.StopWatch - Table refs generated     : Total: 1.893s, +2.179ms
13:54:04.440 [main] INFO org.jooq.codegen.JavaGenerator - Generating Keys
13:54:04.441 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.441 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.441 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.442 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.443 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.444 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.444 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.444 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.445 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.445 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.445 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.445 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.445 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.445 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.446 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.446 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.448 [main] INFO org.jooq.tools.StopWatch - Keys generated           : Total: 1.901s, +7.947ms
13:54:04.448 [main] INFO org.jooq.codegen.JavaGenerator - Generating Indexes
13:54:04.450 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.450 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.451 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.451 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.453 [main] INFO org.jooq.tools.StopWatch - Indexes generated        : Total: 1.906s, +4.457ms
13:54:04.453 [main] INFO org.jooq.codegen.JavaGenerator - Generating table records
13:54:04.453 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.453 [main] INFO org.jooq.codegen.JavaGenerator - Generating record        : AnimalRecord.java
13:54:04.453 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.454 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.455 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.457 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimalRecord => AnimalRecord
13:54:04.458 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.459 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - BjAnimal => Animal
13:54:04.463 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.463 [main] INFO org.jooq.codegen.JavaGenerator - Generating record        : PlantRecord.java
13:54:04.463 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.464 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.465 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.466 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlantRecord => PlantRecord
13:54:04.468 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.468 [main] INFO bj.jooq.MyJooqGenerator$MyStrategy - FlPlant => Plant
13:54:04.471 [main] INFO org.jooq.tools.StopWatch - Table records generated  : Total: 1.924s, +18.631ms
13:54:04.471 [main] INFO org.jooq.tools.StopWatch - Generation finished: beta: Total: 1.924s, +0.202ms
13:54:04.472 [main] INFO org.jooq.codegen.JavaGenerator -
13:54:04.472 [main] INFO org.jooq.codegen.JavaGenerator - Removing excess files

文章首发: https://baijifeilong.github.io


漫漫路,莫论逍遥;潜心修,只为悟道