主题:我生成的mapper代码怎么是空白的,求解惑

tiddller 2018年12月01日 61

代码如下:

public class BeetlSqlGenerator {
    private static final String DRIVER_CLASS="com.mysql.cj.jdbc.Driver";
    private static final String URL="jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
    private static final String USER_NAME="root";
    private static final String PASSWORD="123456";

    public static void main(String[] args) {
        try {
            sqlGenerator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void sqlGenerator() throws Exception {
        ConnectionSource source = ConnectionSourceHelper.getSimple(DRIVER_CLASS, URL, USER_NAME, PASSWORD);
        SQLLoader loader = new ClasspathLoader("/sql");
        UnderlinedNameConversion nc = new UnderlinedNameConversion();
        SQLManager sqlManager = new SQLManager(new MySqlStyle(), loader, source, nc, new Interceptor[]{new DebugInterceptor()});
        GenConfig config = new GenConfig();
//        config.setDisplay(true);        MapperCodeGen mapper = new MapperCodeGen("com.springboot.start.dao");
        config.codeGens.add(mapper);

        //生成所有的数据库pojo实体和sql文件        sqlManager.genALL("com.springboot.start.entity", config, null);
//////        sqlManager.genPojoCode("article","com.springboot.start.entity");//单独生成pojo实体类  注:article是数据库表名//        sqlManager.genSQLFile("article",config);//单独生成生成sql文件    }
}

生成的POJO和sql文件正常,mapper是空白文件,如下图:

image.png

image.png

tiddller 2018年12月01日

我解决了!!!!!!!!!!!!!!!哈哈哈!!!!允许我自嗨一会儿[捂脸]

现在给出方法,如下:

重点是MapperCodeGen类,这个类经过我查看源码,有两个构造函数【注:我记得以前不是这样的,可能是版本更新了吧,不清楚】。两个构造函数如下:

public MapperCodeGen() {
    this.mapperTemplate = (new GenConfig()).getTemplate("/org/beetl/sql/ext/gen/mapper.btl");
}

public MapperCodeGen(String pkg) {
    this.pkg = pkg;
}

如果初始化传递了pkg参数的话,那么久没有设置生成mapper的beetl模板,所以是空白的。

解决方法,我依旧传入了pkg参数,然后调用MapperCodeGen的setMapperTemplate()方法,代码如下:

MapperCodeGen mapper = new MapperCodeGen("com.springboot.start.dao");
mapper.setMapperTemplate((new GenConfig()).getTemplate("/org/beetl/sql/ext/gen/mapper.btl"));

我吧第一个构造函数的模板直接用了,这样生成的mapper代码就不是空白了

闲大赋 2018年12月03日

好的,谢谢。

这个bug下个版本修复

https://gitee.com/xiandafu/beetlsql/issues/IPADV