org.test4j.module.database.script.script.SqliteScript Maven / Gradle / Ivy
package org.test4j.module.database.script.script;
import cn.org.atool.fluent.mybatis.metadata.DbType;
import org.test4j.module.database.script.EntityScriptParser;
import static org.test4j.tools.commons.StringHelper.isBlank;
/**
* 生产Sqlite数据库脚本
*
* @author wudarui
*/
@SuppressWarnings("rawtypes")
public class SqliteScript extends EntityScriptParser {
public SqliteScript(DbTypeConvert typeConvert, Class klass) {
super(typeConvert, klass);
}
@Override
protected String parseColumn(ColumnDefine column) {
StringBuilder buff = new StringBuilder();
buff.append(dbType().wrap(column.name)).append(" ")
.append(column.autoIncrease ? "INTEGER" : this.convertColumnType(column.type)).append(" ")
.append(column.notNull ? "NOT NULL " : "NULL ");
if (!isBlank(column.defaultValue)) {
buff.append("DEFAULT ").append(super.getDefaultValue(column)).append(" ");
}
if (column.primary) {
buff.append("PRIMARY KEY ");
}
if (column.autoIncrease) {
buff.append("AUTOINCREMENT ");
}
return buff.toString().trim();
}
@Override
public DbType dbType() {
return DbType.SQLITE;
}
}