public class MetaBuilder extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
protected Set<String> |
blacklist |
protected Connection |
conn |
protected DataSource |
dataSource |
protected DatabaseMetaData |
dbMeta |
protected Dialect |
dialect |
protected boolean |
fetchFieldAutoIncrement |
protected boolean |
generateRemarks |
protected boolean |
generateView |
protected String[] |
removedTableNamePrefixes |
protected java.util.function.Predicate<String> |
tableSkip |
protected TypeMapping |
typeMapping |
protected Set<String> |
whitelist |
| 构造器和说明 |
|---|
MetaBuilder(DataSource dataSource) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addBlacklist(String... tableNames)
添加要排除的 tableName 到黑名单
|
void |
addExcludedTable(String... excludedTables) |
void |
addWhitelist(String... tableNames)
添加要生成的 tableName 到白名单
|
List<TableMeta> |
build() |
protected String |
buildAttrName(String colName)
构造 colName 所对应的 attrName,mysql 数据库建议使用小写字段名或者驼峰字段名
Oralce 反射将得到大写字段名,所以不建议使用驼峰命名,建议使用下划线分隔单词命名法
|
protected String |
buildBaseModelName(String modelName)
使用 modelName 构建 baseModelName
|
protected void |
buildColumnMetas(TableMeta tableMeta)
文档参考:
http://dev.mysql.com/doc/connector-j/en/connector-j-reference-type-conversions.html
JDBC 与时间有关类型转换规则,mysql 类型到 java 类型如下对应关系:
DATE java.sql.Date
DATETIME java.sql.Timestamp
TIMESTAMP[(M)] java.sql.Timestamp
TIME java.sql.Time
对数据库的 DATE、DATETIME、TIMESTAMP、TIME 四种类型注入 new java.util.Date()对象保存到库以后可以达到“秒精度”
为了便捷性,getter、setter 方法中对上述四种字段类型采用 java.util.Date,可通过定制 TypeMapping 改变此映射规则
|
protected String |
buildModelName(String tableName)
构造 modelName,mysql 的 tableName 建议使用小写字母,多单词表名使用下划线分隔,不建议使用驼峰命名
oracle 之下的 tableName 建议使用下划线分隔多单词名,无论 mysql还是 oralce,tableName 都不建议使用驼峰命名
|
protected void |
buildPrimaryKey(TableMeta tableMeta) |
protected void |
buildTableNames(List<TableMeta> ret) |
protected ResultSet |
getTablesResultSet()
不同数据库 dbMeta.getTables(...)
|
protected String |
handleJavaType(String typeStr,
ResultSetMetaData rsmd,
int column)
handleJavaType(...)
|
protected boolean |
isSkipTable(String tableName)
通过继承并覆盖此方法,跳过一些不希望处理的 table,定制更加灵活的 table 过滤规则
|
void |
removeBlacklist(String tableName) |
protected void |
removeNoPrimaryKeyTable(List<TableMeta> ret) |
void |
removeWhitelist(String tableName) |
void |
setDialect(Dialect dialect) |
void |
setFetchFieldAutoIncrement(boolean fetchFieldAutoIncrement)
配置是否取出字段的自增属性
|
void |
setGenerateRemarks(boolean generateRemarks) |
void |
setGenerateView(boolean generateView) |
void |
setRemovedTableNamePrefixes(String... removedTableNamePrefixes)
设置需要被移除的表名前缀,仅用于生成 modelName 与 baseModelName
例如表名 "osc_account",移除前缀 "osc_" 后变为 "account"
|
void |
setTypeMapping(TypeMapping typeMapping) |
MetaBuilder |
skip(java.util.function.Predicate<String> tableSkip)
跳过不需要生成器处理的 table
由于 setMetaBuilder 将置换掉 MetaBuilder,所以 Generator.addExcludedTable(...)
|
protected DataSource dataSource
protected Dialect dialect
protected java.util.function.Predicate<String> tableSkip
protected Connection conn
protected DatabaseMetaData dbMeta
protected String[] removedTableNamePrefixes
protected TypeMapping typeMapping
protected boolean generateRemarks
protected boolean generateView
protected boolean fetchFieldAutoIncrement
public MetaBuilder(DataSource dataSource)
public void setGenerateRemarks(boolean generateRemarks)
public void setGenerateView(boolean generateView)
public void setFetchFieldAutoIncrement(boolean fetchFieldAutoIncrement)
public void setDialect(Dialect dialect)
public void addWhitelist(String... tableNames)
public void removeWhitelist(String tableName)
public void addBlacklist(String... tableNames)
public void removeBlacklist(String tableName)
public void addExcludedTable(String... excludedTables)
public void setRemovedTableNamePrefixes(String... removedTableNamePrefixes)
public void setTypeMapping(TypeMapping typeMapping)
protected boolean isSkipTable(String tableName)
public MetaBuilder skip(java.util.function.Predicate<String> tableSkip)
protected String buildModelName(String tableName)
protected String buildBaseModelName(String modelName)
protected ResultSet getTablesResultSet() throws SQLException
SQLExceptionprotected void buildTableNames(List<TableMeta> ret) throws SQLException
SQLExceptionprotected void buildPrimaryKey(TableMeta tableMeta) throws SQLException
SQLExceptionprotected void buildColumnMetas(TableMeta tableMeta) throws SQLException
SQLExceptionprotected String handleJavaType(String typeStr, ResultSetMetaData rsmd, int column) throws SQLException
SQLExceptionCopyright © 2025. All rights reserved.