我用反射管理了数据库的取出,每个表都要有一个对应的vo。。现在遇到了一个很奇怪的问题。。从数据库里,用ResultSet.getObject()取值,如果数据库是非字符串类型的数据
无论是1还是2或是一百亿。在反射那边用Object.getClass()得到的都是Long类型。。请问有什么办法能让数据是1,2 是int类型,数据是一百亿是long 类型么?不然写起VO时连存一个布尔值都要用Long 觉得怪怪的,貌似也挺占内存。。
无论是1还是2或是一百亿。在反射那边用Object.getClass()得到的都是Long类型。。请问有什么办法能让数据是1,2 是int类型,数据是一百亿是long 类型么?不然写起VO时连存一个布尔值都要用Long 觉得怪怪的,貌似也挺占内存。。
我用 的mysql可以正常获取到数据的类型,这应该跟数据库驱动的实现有关
但得到的结果也是Long
ResultSetMetaData rsmd = rs.getMetaData();
rs.next();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
System.out.println(rs.getObject(rsmd.getColumnLabel(i)).getClass());
}// 打印出来的class是正常的,integer,date..都能获取到
我的数据库版本是5.1.7.驱动也是.应该没关系呀