📄 field.java
字号:
return null; // we don't have this information } if (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 long getLength() { return length; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isMultipleKey() { return ((colFlag & 8) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public int getMysqlType() { return mysqlType; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getName() { if (this.name == null) { this.name = getStringFromBytes(this.nameStart, this.nameLength); } return 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 ((colFlag & 2) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public int getSQLType() { return sqlType; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getTable() { return getTableName(); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String getTableName() { if (tableName == null) { tableName = getStringFromBytes(tableNameStart, tableNameLength); } return tableName; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isUniqueKey() { return ((colFlag & 4) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isUnsigned() { return ((colFlag & 32) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isZeroFill() { return ((colFlag & 64) > 0); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String toString() { return this.getDatabaseName() + " . " + this.getTableName() + "(" + this.getOriginalTableName() + ") . " + this.getName() + "(" + this.getOriginalName() + ")"; } int getDecimals() { return colDecimals; } boolean isNotNull() { return ((colFlag & 1) > 0); } /** * 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.getIO().versionMeetsMinimum(4, 1, 0)) { String orgColumnName = getOriginalName(); String orgTableName = getOriginalTableName(); return !(orgColumnName != null && orgColumnName.length() > 0 && orgTableName != null && orgTableName.length() > 0); } else { return false; } } /** * 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 (connection != null) { if (connection.useUnicode()) { 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(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++] = buffer[i]; } try { stringVal = new String(stringBytes, encoding); } catch (UnsupportedEncodingException ue) { throw new RuntimeException( "Unsupported character encoding '" + encoding + "'"); } } } else { // we have no encoding, use JVM standard charset stringVal = StringUtils.toAsciiString(buffer, stringStart, stringLength); } } else { // we are not using unicode, so use JVM standard charset stringVal = StringUtils.toAsciiString(buffer, stringStart, stringLength); } } else { // we don't have a connection, so punt stringVal = StringUtils.toAsciiString(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 + -