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版权协议,转载请附上原文出处链接和本声明。