Generator能否设置生成指定表名

系统自带下面方法

// 添加不需要生成的表名
//generator.addExcludedTable("act_");

每次新建一张表的时候,都需要把所有表再生成一边,能否我设置一个表,那么只增量生成这一张表呢。


评论区

JFinal

2018-06-18 23:30

继承一下 MetaBuilder 覆盖掉其中的 isSkipTable(String talbeName) 方法,可以随心所欲去定制要跳过哪些表,或者要生成哪些表

可以用正则,也可以用一个 HashSet 来配置指定的表名

isSkipTable 方法返回 true 表示跳过,否则表示生成

扩展好以后,再配置一下:
Generator.setMetaBuilder(new MyMetaBuilder());

foam103

2018-06-19 13:52

@JFinal 谢谢波总,重写isSkipTable已经可以生成指定的表了,但是在_MappingKit里面也就只剩下指定表的,不是增量的,是不是还需要设置哪里?

部分代码:
public class MyMetaBuilder extends MetaBuilder {

public MyMetaBuilder(DataSource dataSource) {
super(dataSource);
}

protected boolean isSkipTable(String tableName) {
if(tableName.equals("blog")) //需要生成的表
return false;
else
return true;
}
}

//配置重写的
generator.setMetaBuilder(new MyMetaBuilder(getDataSource()));

这个就只剩下最后指定的,如何增量这个表内容
public class _MappingKit {

public static void mapping(ActiveRecordPlugin arp) {
arp.addMapping("blog", "id", Blog.class);
}
}

JFinal

2018-06-19 13:55

@foam103 _MappingKit 是让生成器来维护的,每次都会重新生成。

如果你希望是增量,那就没有必要这样扩展,每次生成全部的 base model 就可以了

foam103

2018-06-19 14:30

@JFinal 好的,就是感觉表多了,每次生成都比较费时间。

JFinal

2018-06-19 16:22

@foam103 我的项目 300 多张表,每次生成 0.5 秒左右,从来没有费时这一说

热门反馈

扫码入社