对ADO不清楚没关系吧,我不是示例了吗?

解决方案 »

  1.   

    jdbc 1.0和jdbc 2.0里面是没有的,用jdbc插入数据时一定要指定数据类型的,其实ADO并不是不管数据库里的字段的类型,只是IDE帮你做了,简单化了,所以你可以不指定,如果你故意在ADO里插入一类型不匹配的数据,肯定会报错的。在jdbc中你可以自己写一个方法,通过调用ResultSetMataData这个类中的方法getColumnType()来得到一个字段的类型后,再对传入的值做一次转换就可以实现你想要的功能了。
      

  2.   

    首先得到表中各个字段的个数,用int getColumnCount()可以得到结果集中的字段的个数,然后用一个循环来得到每一个字段的名字,用String getColumnName(int ColumnIndex),它返回一个字段的名字,接着调用int getColumnType(int ColumnIndex),这个方法返回的是一个整数,这个整数就表示这一列在SQL中的数据类型,具体对应那种结构,你打开ResultSetMataData.java这个文件就可以看清(在你的java安装目录下面有一个src.zip这个文件,你把它解压开,打开里面的java\sql这个文件夹就可以找到ResultSetMataData.java这个文件),此时你就可以用switch来匹配每一个SQL数据类型,做相应的数据处理。同时也可以根据字段的名字找到对应的列,因为你在ADO里面传递的是列的名称,用字符串的比较可以得到正确的结果。
    现在即然知道某一列的名称,也知道它的列的数据类型,你说可不可以将传入的值进行强制转换呢?基本过程就是这样,只是在用switch的时候要对所有的类型进行处理,这点比较麻烦,也是个关键点,否则传入的参数可能出错。