import java.io.*;
import java.sql.*;
import java.nio.charset.Charset;
public class OrclInsert{
Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
String str1;
public String str = "jdbc:oracle:thin:@localhost:1521:webgis"; public OrclInsert(){
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException ce){
System.out.println(ce.getMessage());
}
} public ResultSet executeQuery(String sql){
try {
conn=DriverManager.getConnection(str,"scott","triger");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
} catch (Exception ex1) {
System.out.println("操作数据库出错,请仔细检查");
System.err.println(ex1.getMessage());
}
return rs;
}
/*读取文件-------------------------*/
public static String selfReadFile(String strFileName) {
        StringBuffer buf = null;
        BufferedReader breader = null;
        try {
            breader = new BufferedReader(new InputStreamReader(new FileInputStream((strFileName)), Charset.forName("gb2312")));
            buf = new StringBuffer();
            while (breader.ready()) 
{
                buf.append((char) breader.read());
            }
            breader.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return buf.toString();
    }/*插入操作---------------------------------*/
public void executeUpdate(String sql){
try {
conn=DriverManager.getConnection(str,"scott","tiger");
        conn.setAutoCommit(false);      
      
 PreparedStatement prest = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);     
  String dir = "d:/xml/";
   File directory = new File("d:/xml/");
   File[] files = directory.listFiles();
           InputStream ins=null;
  for(int x = 0; x <files.length; x++)
 {      
            
                         File file=new File(dir + files[x].getName());
 ins=new FileInputStream(file);
                         long filelength=file.length();
                         Reader fileReader=(Reader) new BufferedReader(new FileReader(file));
 str1=readFile.selfReadFile(dir + files[x].getName());  
//prest.setString(1, str1);
 //prest.setCharacterStream(1, fileReader,filelength); 
prest.setBinaryStream(1,ins,filelength);

 prest.addBatch();      
  }      
  prest.executeBatch();      
  conn.commit();   
  prest.close();
  conn.close();      

catch (Exception ex2) {
System.out.println("操作数据库出错,请仔细检查");
System.err.println(ex2.getMessage());
}
}public static void main(String args[]){
String sql = "INSERT into gis(xml_data) VALUES(?)";
OrclInsert db = new OrclInsert();
db.executeUpdate(sql); }
}编译时没问题,运行时提示:
Exception in thread "main" java.lang.AbstractMethodError: oracle.jdbc.driver.T4C
PreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V
        at OrclInsert.executeUpdate(OrclInsert.java:70)
        at OrclInsert.main(OrclInsert.java:88)换了个Oracle的驱动后运行时又提示 ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值哪们大吓能帮我解决下,在线等,谢谢!