想实现这样的功能:改变某个数据表中的一部分字段的数据类型,要改变哪些字段、改变为哪种数据类型是在程序运行当中,由用户来任意指定的。
我现在的做法是根据客户的选择,来建立一个新表,其中各字段的数据类型根据客户的选择来确定,然后从原表中逐条读取记录,将相应字段的数据经过类型转换后,写入新表。
现在的问题是,读取数据时无所谓了,因为原表都是字符型的数据,直接用ResultSet的getString()方法来读就可以了。但在写入数据时,由于事先不知道用户要指定哪种数据类型,如何选择相应的方法(setString()、setInt()、setFloat()等等)?
当然,可以判断用户的选择,根据判断结果,选择相应的方法,例如:
if(0 == userChoice.compareTo("int"))
rs.setInt(1, newValue);
但对每种数据类型都作判断是不是太麻烦了,我想知道有没有简单一些的办法。谢谢
我现在的做法是根据客户的选择,来建立一个新表,其中各字段的数据类型根据客户的选择来确定,然后从原表中逐条读取记录,将相应字段的数据经过类型转换后,写入新表。
现在的问题是,读取数据时无所谓了,因为原表都是字符型的数据,直接用ResultSet的getString()方法来读就可以了。但在写入数据时,由于事先不知道用户要指定哪种数据类型,如何选择相应的方法(setString()、setInt()、setFloat()等等)?
当然,可以判断用户的选择,根据判断结果,选择相应的方法,例如:
if(0 == userChoice.compareTo("int"))
rs.setInt(1, newValue);
但对每种数据类型都作判断是不是太麻烦了,我想知道有没有简单一些的办法。谢谢
大家帮我想个方法,先对每个字段进行判断,选择相应的方法(setString()、setInt()、setFloat()等等),然后在对每条记录进行处理时,就不再反复判断了,都用选好的方法就行了。
谢谢
然后再读数据,insert数据,就不用再做判断了。
楼上帮忙解释一下,上面这句话(主要是后半句)是怎么实现的?我还是用代码来说话吧。
PreparedStatement pstmt = connect.prepareStatement("UPDATE MYTABLE SET FNAME = ? WHERE CUSTID = ?");pstmt.setString(1, "James Bond");
pstmt.setInt(2, 007);
pstmt.executeUpdate(0;上面代码是在程序员知道表结构的情况,可以直接用setString()和setInt()。可现在的情况是事先(在编程时)不知道表结构,如何确定使用哪种方法?
Object x,
int targetSqlType)
throws SQLException
Sets the value of the designated