你可以先将这个类文件存进去,用的时候取出来存成文件,然后再Class.ForName()
不久行了

解决方案 »

  1.   

    怎么把类文件存进去?
    比如Class1 class1sql = "insert into table1 (class1_intable) values('" + class1 + "')";
    state.execute(sql);取的时候取class1_intable,再Class.ForName就成了?
      

  2.   


    File file=new File("yourclass.class"); 
    java.io.FileInputStream fileint=new FileInputStream(file); 
    PreparedStatement st1=conn.prepareStatement("update classtable set class=?");
    st1.setBinaryStream(1,fileint,2000);
    st1.executeUpdate();
    fileint.close();
    //
    别的还用我多说吗?
      

  3.   

    再问一句,数据库那个字段的类型是什么?是char还是blob?如果不让用文件流,还有什么方法。谢谢。
      

  4.   

    问题解决了,我把程序放上来,再留一天讨论时间,明日17:00前揭帖。import java.util.*;
    import java.io.*;
    import java.sql.*;public class Object2Blob {  public static void main(String[] args) {
        try{
        Class.forName("com.informix.jdbc.IfxDriver").newInstance();
        String url ="jdbc:informix-sqli://10.0.0.1:1234/itas:INFORMIXSERVER=link;user=link;password=test";
        Connection conn= DriverManager.getConnection(url);    Map map = new HashMap();
        map.put("1","a");    ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(bos);
        oos.writeObject(map);    ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());    //PreparedStatement pstate = conn.prepareStatement("insert into table2 (item1) values(?)");
        PreparedStatement pstate = conn.prepareStatement("update table2 set item1=?");    pstate.setBinaryStream(1,bis,bis.available());
        pstate.execute();    Statement state = conn.createStatement();
        ResultSet rs = state.executeQuery("select item1 from table2");
        rs.next();
        Map map2 = new HashMap();    Blob blob = rs.getBlob("item1");    ByteArrayInputStream bais = new ByteArrayInputStream(blob.getBytes(1,(int)blob.length()));
        ObjectInputStream obis = new ObjectInputStream(bais);
        map2 = (HashMap)obis.readObject();    System.out.println("^^^" + map2.containsKey("1"));
        System.out.println("***" + map2.get("1"));    conn.close();    }catch (Exception e){
          e.printStackTrace();
        }  }
    }