JOOQ MySQL TEXT数据类型

时间:2019-02-28 17:45:08

标签: mysql jooq

我正在尝试使用JOOQ生成此简单的SQL,由于某种原因,我无法完成它。

int cvtdigit(int sum, char c)
{
    sum=sum+(c-'0');
    return sum;
}

我希望它像

CREATE TABLE T (
    F TEXT
);

不幸的是,dsl.createTable(name("T")) .column("F", MySQLDataType.TEXT); 已过时(MySQLDataType)。所以我尝试了

Do not reference this type directly from client code. Referencing this type before the SQLDataType class has been initialised may lead to deadlocks!

但是我得到以下SQL,这是不合法的。

dsl.createTable(name("T"))
   .column(field("F TEXT"));

有任何提示吗?

1 个答案:

答案 0 :(得分:2)

documentation所说

  

请改用相应的SQLDataType

您可以将|用于MySQL >>> s = "function(): return foo + 3 == 42" >>> [s for s in re.split(r"(\W)", s) if s.strip()] ['function', '(', ')', ':', 'return', 'foo', '+', '3', '=', '=', '42'] >>> [s for s in re.split(r"(==|!=|<=|\W)", s) if s.strip()] ['function', '(', ')', ':', 'return', 'foo', '+', '3', '==', '42'] 数据类型。

从MySQL documentation

  

四种TEXT (CLOB)类型为TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT。这些仅在它们可以容纳的最大长度上有所不同。

如果您将 edt_value.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { if (TextUtils.isEmpty(edt_value.getText())){ edt_value.clearFocus(); txt_finalprice.setText(gl_price.toString()); }else { if(getCurrentFocus() == edt_value) { int value = Integer.parseInt(edt_value.getText().toString().trim()); int price = Integer.parseInt(txt_finalprice.getText().toString().trim()); txt_finalprice.setText(value * price + "$"); } } } }); 用于特定于供应商的长度,则会导致.column("ColumnName", SQLDataType.CLOB)TEXTSQLDataType.CLOB(LENGTH)

请注意,MySQL将TINYTEXT称为MEDIUMTEXT

用法示例

LONGTEXT