RS.getblod(2).toString() 的错误信息:java.lang.UnsupportedOperationException at sun.jdbc.odbc.JdbcOdbcResultSet.getBlob(JdbcOdbcResultSet.java:4168) at p_identity.mainApp.CreateInsertSQL.generate(CreateInsertSQL.java:120) at p_identity.mainApp.mainApp.main(mainApp.java:18)Exception in thread "main"
RS.getObject(2).toString() 的错误信息: java.lang.NullPointerException at p_identity.mainApp.CreateInsertSQL.generate(CreateInsertSQL.java:120) at p_identity.mainApp.mainApp.main(mainApp.java:18)Exception in thread "main" 注:1. “CreateInsertSQL”即当前类 注:2. 把这句去掉就不报错 注:3. 前面有RS.getLong(), 不报错
long i = 100; String str = Long(i).toString(); Method Long(long) not found in ……
toString()都是可以的,
java.lang.NullPointerException at p_identity.mainApp.CreateInsertSQL.generate(CreateInsertSQL.java:120) at p_identity.mainApp.mainApp.main(mainApp.java:18)Exception in thread "main" 注:1. “CreateInsertSQL”即当前类
注:2. 把这句去掉就不报错
注:3. 前面有RS.getLong(), 不报错
String str = Long(i).toString();
Method Long(long) not found in ……
当RS.getblod(2)等于null 时你调用tostring()当然包错了。
如下
String a=(RS.getblod(2)==null ? "":RS.getblod(2).toString());
建议你,对于一些特殊类型的数据,你要查一下api,侃侃具体的转换成string类型的特殊方法,因为有些类型你虽然用tostring能转化,但是转化后得到的不是你想要的。
String str = new Long(i).toString();RS.getblod(2)
RS.getObject(2)
???
你的数据库中是什么类型,既然你想转换,干脆把数据库中的字段类型写成varchar(1000),然后用RS.getString(2);
是Decimal或Datetime时就报错!
Double 怎么转换为 String?datetime 怎么转换为 String?long 怎么转换为 int?
2.String.valueof()括号里边可以是:int/Integer,long/Long,double/Double,
char...........
应该可以看出J2SDK的JDBC ODBC驱动不支持RS.getblod()和RS.getObject()方法,就算是有些大型数据库厂商提供Type4 JDBC驱动也不一定支持这两个,MS SQL SERVER2000的JDBC好象也不支持getblod()方法。
兄弟,好象得另想办法了^_^
----------可以使用String 类直接调用valueOf方法将形如123,1232.98等数值转化为字符串,如:String.valueOf(12313.9876);
数字:"" + rs.getBigDecimal()
可以啊!
另外,其它的类型,比如double,datetime,Decimal等基本上都可以直接使用rs.getString()方法来读取,getString方法本身就使用了toString转换的,绝对可以读取出来。