Class MyBatisGenerator

java.lang.Object
org.mybatis.generator.api.MyBatisGenerator

public class MyBatisGenerator extends Object
This class is the main interface to MyBatis generator. A typical execution of the tool involves these steps:
  1. Create a Configuration object. The Configuration can be the result of a parsing the XML configuration file, or it can be created solely in Java.
  2. Create a MyBatisGenerator object
  3. Call one of the generate() methods
See Also:
  • Field Details

  • Constructor Details

    • MyBatisGenerator

      public MyBatisGenerator(Configuration configuration, ShellCallback shellCallback, List<String> warnings) throws InvalidConfigurationException
      Constructs a MyBatisGenerator object.
      Parameters:
      configuration - The configuration for this invocation
      shellCallback - an instance of a ShellCallback interface. You may specify null in which case the DefaultShellCallback will be used.
      warnings - Any warnings generated during execution will be added to this list. Warnings do not affect the running of the tool, but they may affect the results. A typical warning is an unsupported data type. In that case, the column will be ignored and generation will continue. You may specify null if you do not want warnings returned.
      Throws:
      InvalidConfigurationException - if the specified configuration is invalid
  • Method Details

    • generate

      public void generate(ProgressCallback callback) throws SQLException, IOException, InterruptedException
      This is the main method for generating code. This method is long running, but progress can be provided and the method can be canceled through the ProgressCallback interface. This version of the method runs all configured contexts.
      Parameters:
      callback - an instance of the ProgressCallback interface, or null if you do not require progress information
      Throws:
      SQLException - the SQL exception
      IOException - Signals that an I/O exception has occurred.
      InterruptedException - if the method is canceled through the ProgressCallback
    • generate

      public void generate(ProgressCallback callback, Set<String> contextIds) throws SQLException, IOException, InterruptedException
      This is the main method for generating code. This method is long running, but progress can be provided and the method can be canceled through the ProgressCallback interface.
      Parameters:
      callback - an instance of the ProgressCallback interface, or null if you do not require progress information
      contextIds - a set of Strings containing context ids to run. Only the contexts with an id specified in this list will be run. If the list is null or empty, than all contexts are run.
      Throws:
      SQLException - the SQL exception
      IOException - Signals that an I/O exception has occurred.
      InterruptedException - if the method is canceled through the ProgressCallback
    • generate

      public void generate(ProgressCallback callback, Set<String> contextIds, Set<String> fullyQualifiedTableNames) throws SQLException, IOException, InterruptedException
      This is the main method for generating code. This method is long running, but progress can be provided and the method can be cancelled through the ProgressCallback interface.
      Parameters:
      callback - an instance of the ProgressCallback interface, or null if you do not require progress information
      contextIds - a set of Strings containing context ids to run. Only the contexts with an id specified in this list will be run. If the list is null or empty, than all contexts are run.
      fullyQualifiedTableNames - a set of table names to generate. The elements of the set must be Strings that exactly match what's specified in the configuration. For example, if table name = "foo" and schema = "bar", then the fully qualified table name is "foo.bar". If the Set is null or empty, then all tables in the configuration will be used for code generation.
      Throws:
      SQLException - the SQL exception
      IOException - Signals that an I/O exception has occurred.
      InterruptedException - if the method is canceled through the ProgressCallback
    • generate

      public void generate(ProgressCallback callback, Set<String> contextIds, Set<String> fullyQualifiedTableNames, boolean writeFiles) throws SQLException, IOException, InterruptedException
      This is the main method for generating code. This method is long running, but progress can be provided and the method can be cancelled through the ProgressCallback interface.
      Parameters:
      callback - an instance of the ProgressCallback interface, or null if you do not require progress information
      contextIds - a set of Strings containing context ids to run. Only the contexts with an id specified in this list will be run. If the list is null or empty, than all contexts are run.
      fullyQualifiedTableNames - a set of table names to generate. The elements of the set must be Strings that exactly match what's specified in the configuration. For example, if table name = "foo" and schema = "bar", then the fully qualified table name is "foo.bar". If the Set is null or empty, then all tables in the configuration will be used for code generation.
      writeFiles - if true, then the generated files will be written to disk. If false, then the generator runs but nothing is written
      Throws:
      SQLException - the SQL exception
      IOException - Signals that an I/O exception has occurred.
      InterruptedException - if the method is canceled through the ProgressCallback
    • writeGeneratedJavaFile

      private void writeGeneratedJavaFile(GeneratedJavaFile gjf, ProgressCallback callback) throws InterruptedException, IOException
      Throws:
      InterruptedException
      IOException
    • writeGeneratedFile

      private void writeGeneratedFile(GeneratedFile gf, ProgressCallback callback) throws InterruptedException, IOException
      Throws:
      InterruptedException
      IOException
    • writeGeneratedXmlFile

      private void writeGeneratedXmlFile(GeneratedXmlFile gxf, ProgressCallback callback) throws InterruptedException, IOException
      Throws:
      InterruptedException
      IOException
    • writeFile

      private void writeFile(File file, String content, String fileEncoding) throws IOException
      Writes, or overwrites, the contents of the specified file.
      Parameters:
      file - the file
      content - the content
      fileEncoding - the file encoding
      Throws:
      IOException - Signals that an I/O exception has occurred.
    • getUniqueFileName

      private File getUniqueFileName(File directory, String fileName)
      Gets the unique file name.
      Parameters:
      directory - the directory
      fileName - the file name
      Returns:
      the unique file name
    • getGeneratedJavaFiles

      public List<GeneratedJavaFile> getGeneratedJavaFiles()
      Returns the list of generated Java files after a call to one of the generate methods. This is useful if you prefer to process the generated files yourself and do not want the generator to write them to disk.
      Returns:
      the list of generated Java files
    • getGeneratedKotlinFiles

      public List<GeneratedKotlinFile> getGeneratedKotlinFiles()
      Returns the list of generated Kotlin files after a call to one of the generate methods. This is useful if you prefer to process the generated files yourself and do not want the generator to write them to disk.
      Returns:
      the list of generated Kotlin files
    • getGeneratedXmlFiles

      public List<GeneratedXmlFile> getGeneratedXmlFiles()
      Returns the list of generated XML files after a call to one of the generate methods. This is useful if you prefer to process the generated files yourself and do not want the generator to write them to disk.
      Returns:
      the list of generated XML files