想实现这样的功能:改变某个数据表中的一部分字段的数据类型,要改变哪些字段、改变为哪种数据类型是在程序运行当中,由用户来任意指定的。
我现在的做法是根据客户的选择,来建立一个新表,其中各字段的数据类型根据客户的选择来确定,然后从原表中逐条读取记录,将相应字段的数据经过类型转换后,写入新表。
现在的问题是,读取数据时无所谓了,因为原表都是字符型的数据,直接用ResultSet的getString()方法来读就可以了。但在写入数据时,由于事先不知道用户要指定哪种数据类型,如何选择相应的方法(setString()、setInt()、setFloat()等等)?
当然,可以判断用户的选择,根据判断结果,选择相应的方法,例如:
if(0 == userChoice.compareTo("int"))
  rs.setInt(1, newValue);
但对每种数据类型都作判断是不是太麻烦了,我想知道有没有简单一些的办法。谢谢

解决方案 »

  1.   

    setObject也是要知道数据类型才行吧,否则写入的不都还是字符型数据了吗?
    我上面说的方法主要的问题是执行效率太低,对每条记录的每个字段都要判断数据类型。
    大家帮我想个方法,先对每个字段进行判断,选择相应的方法(setString()、setInt()、setFloat()等等),然后在对每条记录进行处理时,就不再反复判断了,都用选好的方法就行了。
    谢谢