📄 field.java
字号:
this.databaseName = getStringFromBytes(this.databaseNameStart, this.databaseNameLength); } return this.databaseName; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getFullName() { if (this.fullName == null) { StringBuffer fullNameBuf = new StringBuffer(getTableName().length() + 1 + getName().length()); fullNameBuf.append(this.tableName); // much faster to append a char than a String fullNameBuf.append('.'); fullNameBuf.append(this.name); this.fullName = fullNameBuf.toString(); fullNameBuf = null; } return this.fullName; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getFullOriginalName() { getOriginalName(); if (this.originalColumnName == null) { return null; // we don't have this information } if (this.fullName == null) { StringBuffer fullOriginalNameBuf = new StringBuffer(getOriginalTableName() .length() + 1 + getOriginalName().length()); fullOriginalNameBuf.append(this.originalTableName); // much faster to append a char than a String fullOriginalNameBuf.append('.'); fullOriginalNameBuf.append(this.originalColumnName); this.fullOriginalName = fullOriginalNameBuf.toString(); fullOriginalNameBuf = null; } return this.fullOriginalName; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public int getLength() { return this.length; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isMultipleKey() { return ((this.colFlag & 8) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public int getMysqlType() { return this.mysqlType; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getName() { if (this.name == null) { this.name = getStringFromBytes(this.nameStart, this.nameLength); } return this.name; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getOriginalName() { if ((this.originalColumnName == null) && (this.originalColumnNameStart != -1) && (this.originalColumnNameLength != -1)) { this.originalColumnName = getStringFromBytes(this.originalColumnNameStart, this.originalColumnNameLength); } return this.originalColumnName; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getOriginalTableName() { if ((this.originalTableName == null) && (this.originalTableNameStart != -1) && (this.originalTableNameLength != -1)) { this.originalTableName = getStringFromBytes(this.originalTableNameStart, this.originalTableNameLength); } return this.originalTableName; } /** * Returns amount of correction that * should be applied to the precision value. * * Different versions of MySQL report different * precision values. * * @return the amount to adjust precision value by. */ public int getPrecisionAdjustFactor() { return this.precisionAdjustFactor; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isPrimaryKey() { return ((this.colFlag & 2) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public int getSQLType() { return this.sqlType; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getTable() { return getTableName(); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getTableName() { if (this.tableName == null) { this.tableName = getStringFromBytes(this.tableNameStart, this.tableNameLength); } return this.tableName; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isUniqueKey() { return ((this.colFlag & 4) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isUnsigned() { return ((this.colFlag & 32) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isZeroFill() { return ((this.colFlag & 64) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String toString() { return this.getDatabaseName() + " . " + this.getTableName() + "(" + this.getOriginalTableName() + ") . " + this.getName() + "(" + this.getOriginalName() + ")" + ", Mysql type: " + getMysqlType(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ } int getDecimals() { return this.colDecimals; } boolean isNotNull() { return ((this.colFlag & 1) > 0); } boolean isOpaqueBinary() throws SQLException { if (this.charsetIndex == 63 && isBinary()) { return true; } return (this.connection.versionMeetsMinimum(4, 1, 0) && "binary".equalsIgnoreCase(getCharacterSet())); } /** * Is this field _definitely_ not writable? * * @return true if this field can not be written to in an INSERT/UPDATE * statement. */ boolean isReadOnly() throws SQLException { if (this.connection.versionMeetsMinimum(4, 1, 0)) { String orgColumnName = getOriginalName(); String orgTableName = getOriginalTableName(); return !(orgColumnName != null && orgColumnName.length() > 0 && orgTableName != null && orgTableName.length() > 0); } return false; // we can't tell definitively in this case. } void setMysqlType(int type) { this.mysqlType = type; this.sqlType = MysqlDefs.mysqlToJavaType(this.mysqlType); } /** * Create a string with the correct charset encoding from the * byte-buffer that contains the data for this field */ private String getStringFromBytes(int stringStart, int stringLength) { if ((stringStart == -1) || (stringLength == -1)) { return null; } String stringVal = null; if (this.connection != null) { if (this.connection.getUseUnicode()) { String encoding = this.connection.getCharacterSetMetadata(); if (encoding == null) { encoding = connection.getEncoding(); } if (encoding != null) { SingleByteCharsetConverter converter = null; if (this.connection != null) { converter = this.connection.getCharsetConverter(encoding); } if (converter != null) { // we have a converter stringVal = converter.toString(this.buffer, stringStart, stringLength); } else { // we have no converter, use JVM converter byte[] stringBytes = new byte[stringLength]; int endIndex = stringStart + stringLength; int pos = 0; for (int i = stringStart; i < endIndex; i++) { stringBytes[pos++] = this.buffer[i]; } try { stringVal = new String(stringBytes, encoding); } catch (UnsupportedEncodingException ue) { throw new RuntimeException( Messages.getString("Field.12") + encoding //$NON-NLS-1$ + Messages.getString("Field.13")); //$NON-NLS-1$ } } } else { // we have no encoding, use JVM standard charset stringVal = StringUtils.toAsciiString(this.buffer, stringStart, stringLength); } } else { // we are not using unicode, so use JVM standard charset stringVal = StringUtils.toAsciiString(this.buffer, stringStart, stringLength); } } else { // we don't have a connection, so punt stringVal = StringUtils.toAsciiString(this.buffer, stringStart, stringLength); } return stringVal; } // // MySQL only has one protocol-level BLOB type that it exposes // which is FIELD_TYPE_BLOB, although we can divine what the // actual type is by the length reported ... // private void setBlobTypeBasedOnLength() { if (this.length == MysqlDefs.LENGTH_TINYBLOB) { this.mysqlType = MysqlDefs.FIELD_TYPE_TINY_BLOB; } else if (this.length == MysqlDefs.LENGTH_BLOB) { this.mysqlType = MysqlDefs.FIELD_TYPE_BLOB; } else if (this.length == MysqlDefs.LENGTH_MEDIUMBLOB) { this.mysqlType = MysqlDefs.FIELD_TYPE_MEDIUM_BLOB; } else if (this.length == MysqlDefs.LENGTH_LONGBLOB) { this.mysqlType = MysqlDefs.FIELD_TYPE_LONG_BLOB; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -