提交 5b9228e9 编写于 作者: S serge-rider

MySQL: year data type edit support

上级 8941bdb4
......@@ -196,6 +196,7 @@ public class MySQLConstants {
public static final String TYPE_VARCHAR = "varchar";
public static final String TYPE_JSON = "json";
public static final String TYPE_GEOMETRY = "geometry";
public static final String TYPE_YEAR = "year";
public static final String BIN_FOLDER = "bin";
public static final String ENV_VARIABLE_MYSQL_PWD = "MYSQL_PWD";
......
......@@ -18,6 +18,7 @@ package org.jkiss.dbeaver.ext.mysql.data;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.ext.mysql.MySQLConstants;
import org.jkiss.dbeaver.model.data.DBDDataFormatterProfile;
import org.jkiss.dbeaver.model.data.DBDDisplayFormat;
import org.jkiss.dbeaver.model.exec.DBCException;
......@@ -31,6 +32,7 @@ import org.jkiss.dbeaver.model.struct.DBSTypedObject;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Calendar;
import java.util.Date;
/**
......@@ -69,6 +71,20 @@ public class MySQLDateTimeValueHandler extends JDBCDateTimeValueHandler {
catch (SQLException e) {
throw new DBCException(ModelMessages.model_jdbc_exception_could_not_bind_statement_parameter, e);
}
} else if (MySQLConstants.TYPE_YEAR.equals(type.getTypeName())) {
try {
JDBCPreparedStatement dbStat = (JDBCPreparedStatement)statement;
if (value instanceof Number) {
dbStat.setInt(index + 1, ((Number) value).intValue());
} else if (value instanceof Date) {
Calendar cal = Calendar.getInstance();
cal.setTime((Date) value);
dbStat.setInt(index + 1, cal.get(Calendar.YEAR));
}
}
catch (SQLException e) {
throw new DBCException(ModelMessages.model_jdbc_exception_could_not_bind_statement_parameter, e);
}
} else {
super.bindValueObject(session, statement, type, index, value);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册