0

MyBatis ジェネレーターはコードを生成したくありません。そのためにEclipse IDEを使用します。最初はtargetProjectプロパティを疑いましたが、そのために現在のフォルダーを指定しましたが、実際には結果もありません。

コマンドラインから同じxml confで問題なく動作します。

Java コードに何らかの方法でoutputFolderを提供する必要があると思いますしかし、うまくいきません。

ですから、どんな提案でも大歓迎です。

これが生成用の私のJavaコードです

public class GeneratorMyBatis {

    public static void main(String args[]) {
        try {
            generate();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void generate() throws Exception {
        System.out.println("Working Directory = " + System.getProperty("user.dir"));
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("src//main//resources//mybatis//generator//config//generatorConfig.xml");
        Properties prop = new Properties();
        prop.setProperty("generated.source.dir", System.getProperty("user.dir"));
        ConfigurationParser cp = new ConfigurationParser(prop, warnings);
        Configuration config = cp.parseConfiguration(configFile);
        config.validate();
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        ProgressCallback progress = new VerboseProgressCallback();
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(progress);
    }
}

私の構成xmlファイル

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <!--
    <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />
    -->

    <context id="MyTables" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/my_db"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <javaModelGenerator targetPackage="model" targetProject="\">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="xml"  targetProject="\">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER" targetPackage="dao"  targetProject="\">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <table schema="my_db" tableName="assignment" domainObjectName="Assignment" >
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="id" sqlStatement="MySql" identity="true" />
        </table>
    </context>
</generatorConfiguration>

このログメッセージを受け取りました

Introspecting table my_db.assignment
Generating Example class for table assignment
Generating Record class for table assignment
Generating Mapper Interface for table assignment
Generating SQL Map for table assignment
Saving file AssignmentMapper.xml
Saving file AssignmentExample.java
Saving file Assignment.java
Saving file AssignmentMapper.java
4

1 に答える 1

1

全体として、問題を修正する方法を見つけました。

MyBatis は必要なすべての譜表を生成しますが、たとえば D:\ のようなディスク ルートに配置します。

Java targetProjectおよびtargetPackageを設定するには、それらを Configuration オブジェクトに設定する必要があります。このようなもの:

Configuration config = cp.parseConfiguration(configFile);
config.getContexts().get(0).getJavaModelGeneratorConfiguration().setTargetProject(TARGET_PROJECT_PATH);
config.getContexts().get(0).getJavaModelGeneratorConfiguration().setTargetPackage(MODEL_TARGET_PACKAGE);
config.getContexts().get(0).getSqlMapGeneratorConfiguration().setTargetProject(TARGET_PROJECT_PATH);
config.getContexts().get(0).getSqlMapGeneratorConfiguration().setTargetPackage(XML_MAPPER_TARGET_PACKAGE);
于 2015-02-05T10:06:54.860 に答える