mybatis返回时间后面多了一个.0的源码解释

mybatis返回时间后面多了一个.0的源码解释

只想看解决方案的点此处:https://blog.csdn.net/wobuaizhi/article/details/88078551

1. mybatis

<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>

类org.apache.ibatis.type.StringTypeHandler

@Override
public String getNullableResult(ResultSet rs, int columnIndex)
    throws SQLException {
  return rs.getString(columnIndex);
}

2. mysql jdbc

<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>

类com.mysql.jdbc.ResultSetImpl

public String getString(int columnIndex) throws SQLException {
	String stringVal = getStringInternal(columnIndex, true);

    //省略...
}

protected String getStringInternal(int columnIndex, boolean checkDateTypes) throws SQLException {
	if (!this.isBinaryEncoded) {
		//省略...

		if (checkDateTypes && !this.connection.getNoDatetimeStringSync()) {
			switch (metadata.getSQLType()) {
				//省略...
				
				case Types.TIMESTAMP:
					Timestamp ts = getTimestampFromString(columnIndex, null, stringVal, this.getDefaultTimeZone(), false);

					if (ts == null) {
						this.wasNullFlag = true;

						return null;
					}

					this.wasNullFlag = false;

					return ts.toString();
				default:
					break;
			}
		}

		return stringVal;
	}

	return getNativeString(columnIndex);
}

3. jdk1.8

类java.sql.Timestamp

public String toString() {
    //省略...

	String var13;
	if (this.nanos == 0) {
		var13 = "0";
	} else {
		var13 = Integer.toString(this.nanos);
		var13 = var14.substring(0, 9 - var13.length()) + var13;
		char[] var17 = new char[var13.length()];
		var13.getChars(0, var13.length(), var17, 0);

		int var18;
		for (var18 = 8; var17[var18] == '0'; --var18) {
			;
		}

		var13 = new String(var17, 0, var18 + 1);
	}

	StringBuffer var16 = new StringBuffer(20 + var13.length());
	var16.append(var7);
	var16.append("-");
	var16.append(var8);
	var16.append("-");
	var16.append(var9);
	var16.append(" ");
	var16.append(var10);
	var16.append(":");
	var16.append(var11);
	var16.append(":");
	var16.append(var12);
	var16.append(".");
	var16.append(var13);
	return var16.toString();
}

版权声明:本文为weixin_40700486原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。