引用来自“JFinal”的评论
publicvoidtestTypes()throwsSQLException{
Stringsql=DbKit.config.getDialect().forTableBuilderDoBuild("jfinal");
Statementstm=DbKit.config.getConnection().createStatement();
ResultSetrs=stm.executeQuery(sql);
ResultSetMetaDatarsmd=rs.getMetaData();
for(inti=1;i<=rsmd.getColumnCount();i++){
StringcolName=rsmd.getColumnName(i);
StringcolClassName=rsmd.getColumnClassName(i);
print(rsmd,i);
}
}
publicvoidprint(ResultSetMetaDatarsmd,inti)throwsSQLException{
inttype=rsmd.getColumnType(i);
if(type==Types.BLOB)
System.out.println(rsmd.getColumnLabel(i)+"--->BLOB--->"+rsmd.getColumnClassName(i));
elseif(type==Types.VARCHAR)
System.out.println(rsmd.getColumnLabel(i)+"--->VARCHAR--->"+rsmd.getColumnClassName(i));
elseif(type==Types.INTEGER)
System.out.println(rsmd.getColumnLabel(i)+"--->INTEGER--->"+rsmd.getColumnClassName(i));
elseif(type==Types.BINARY)
System.out.println(rsmd.getColumnLabel(i)+"--->BINARY--->"+rsmd.getColumnClassName(i));
elseif(type==Types.SMALLINT)
System.out.println(rsmd.getColumnLabel(i)+"--->SMAILLINT--->"+rsmd.getColumnClassName(i));
elseif(type==Types.DATE)
System.out.println(rsmd.getColumnLabel(i)+"--->DATE--->"+rsmd.getColumnClassName(i));
elseif(type==Types.TIME)
System.out.println(rsmd.getColumnLabel(i)+"--->TIME--->"+rsmd.getColumnClassName(i));
elseif(type==Types.TIMESTAMP)
System.out.println(rsmd.getColumnLabel(i)+"--->TIMESTAMP--->"+rsmd.getColumnClassName(i));
elseif(type==Types.BIGINT)
System.out.println(rsmd.getColumnLabel(i)+"--->BIGINT--->"+rsmd.getColumnClassName(i));
elseif(type==Types.TINYINT)
System.out.println(rsmd.getColumnLabel(i)+"--->TINYINT--->"+rsmd.getColumnClassName(i));
elseif(type==Types.BIT)
System.out.println(rsmd.getColumnLabel(i)+"--->BIT--->"+rsmd.getColumnClassName(i));
elseif(type==Types.DOUBLE)
System.out.println(rsmd.getColumnLabel(i)+"--->DOUBLE--->"+rsmd.getColumnClassName(i));
elseif(type==Types.DECIMAL)
System.out.println(rsmd.getColumnLabel(i)+"--->DECIMAL--->"+rsmd.getColumnClassName(i));
elseif(type==Types.CHAR)
System.out.println(rsmd.getColumnLabel(i)+"--->CHAR--->"+rsmd.getColumnClassName(i));
elseif(type==Types.REAL)
System.out.println(rsmd.getColumnLabel(i)+"--->REAL--->"+rsmd.getColumnClassName(i));
elseif(type==Types.VARBINARY)
System.out.println(rsmd.getColumnLabel(i)+"--->VARBINARY--->"+rsmd.getColumnClassName(i));
elseif(type==Types.LONGVARBINARY)
System.out.println(rsmd.getColumnLabel(i)+"--->LONGVARBINARY--->"+rsmd.getColumnClassName(i));
elseif(type==Types.LONGVARCHAR)
System.out.println(rsmd.getColumnLabel(i)+"--->LONGVARCHAR--->"+rsmd.getColumnClassName(i));
else
System.out.println("没找到类型:type--->"+type+rsmd.getColumnClassName(i));
}
刚刚我在本地测试了一下,mysql的smallint映射为了java的Integer类型,并且在Model.getInt(String)方法的注释中也有过说明,如下:
调试一下,类型错误是在哪个环节发生的
引用来自“JFinal”的评论
刚刚我在本地测试了一下,mysql的smallint映射为了java的Integer类型,并且在Model.getInt(String)方法的注释中也有过说明,如下:
调试一下,类型错误是在哪个环节发生的
sqlserver的话,去群里找个有环境的人测试一下,程序我在下面给出,我本地没有sqlserver环境publicvoidtestTypes()throwsSQLException{
Stringsql=DbKit.config.getDialect().forTableBuilderDoBuild("jfinal");
Statementstm=DbKit.config.getConnection().createStatement();
ResultSetrs=stm.executeQuery(sql);
ResultSetMetaDatarsmd=rs.getMetaData();
for(inti=1;i<=rsmd.getColumnCount();i++){
StringcolName=rsmd.getColumnName(i);
StringcolClassName=rsmd.getColumnClassName(i);
print(rsmd,i);
}
}
publicvoidprint(ResultSetMetaDatarsmd,inti)throwsSQLException{
inttype=rsmd.getColumnType(i);
if(type==Types.BLOB)
System.out.println(rsmd.getColumnLabel(i)+"--->BLOB--->"+rsmd.getColumnClassName(i));
elseif(type==Types.VARCHAR)
System.out.println(rsmd.getColumnLabel(i)+"--->VARCHAR--->"+rsmd.getColumnClassName(i));
elseif(type==Types.INTEGER)
System.out.println(rsmd.getColumnLabel(i)+"--->INTEGER--->"+rsmd.getColumnClassName(i));
elseif(type==Types.BINARY)
System.out.println(rsmd.getColumnLabel(i)+"--->BINARY--->"+rsmd.getColumnClassName(i));
elseif(type==Types.SMALLINT)
System.out.println(rsmd.getColumnLabel(i)+"--->SMAILLINT--->"+rsmd.getColumnClassName(i));
elseif(type==Types.DATE)
System.out.println(rsmd.getColumnLabel(i)+"--->DATE--->"+rsmd.getColumnClassName(i));
elseif(type==Types.TIME)
System.out.println(rsmd.getColumnLabel(i)+"--->TIME--->"+rsmd.getColumnClassName(i));
elseif(type==Types.TIMESTAMP)
System.out.println(rsmd.getColumnLabel(i)+"--->TIMESTAMP--->"+rsmd.getColumnClassName(i));
elseif(type==Types.BIGINT)
System.out.println(rsmd.getColumnLabel(i)+"--->BIGINT--->"+rsmd.getColumnClassName(i));
elseif(type==Types.TINYINT)
System.out.println(rsmd.getColumnLabel(i)+"--->TINYINT--->"+rsmd.getColumnClassName(i));
elseif(type==Types.BIT)
System.out.println(rsmd.getColumnLabel(i)+"--->BIT--->"+rsmd.getColumnClassName(i));
elseif(type==Types.DOUBLE)
System.out.println(rsmd.getColumnLabel(i)+"--->DOUBLE--->"+rsmd.getColumnClassName(i));
elseif(type==Types.DECIMAL)
System.out.println(rsmd.getColumnLabel(i)+"--->DECIMAL--->"+rsmd.getColumnClassName(i));
elseif(type==Types.CHAR)
System.out.println(rsmd.getColumnLabel(i)+"--->CHAR--->"+rsmd.getColumnClassName(i));
elseif(type==Types.REAL)
System.out.println(rsmd.getColumnLabel(i)+"--->REAL--->"+rsmd.getColumnClassName(i));
elseif(type==Types.VARBINARY)
System.out.println(rsmd.getColumnLabel(i)+"--->VARBINARY--->"+rsmd.getColumnClassName(i));
elseif(type==Types.LONGVARBINARY)
System.out.println(rsmd.getColumnLabel(i)+"--->LONGVARBINARY--->"+rsmd.getColumnClassName(i));
elseif(type==Types.LONGVARCHAR)
System.out.println(rsmd.getColumnLabel(i)+"--->LONGVARCHAR--->"+rsmd.getColumnClassName(i));
else
System.out.println("没找到类型:type--->"+type+rsmd.getColumnClassName(i));
}