java中创建了一个对象,例如BookModel ;数据库中有一个表,例如: MYTABLE ;MYTABLE中有一个clob类型的大字段book,我用流的方式将整个BookModel存入了该book字段中。但是读取这个字段的时候,我不知道怎么将这个clob类型的book字段,转换成我的BookModel了。请各位帮帮忙,给我想想办法,指点指点。急!

解决方案 »

  1.   

    到JAVA区吧,可能回答的人要多一点
      

  2.   

    java中创建了一个对象,例如BookModel ; 数据库中有一个表,例如: MYTABLE ; MYTABLE中有一个clob类型的大字段book,我用流的方式将整个BookModel存入了该book字段中。 但是读取这个字段的时候,我不知道怎么将这个clob类型的book字段,转换成我的BookModel了。 请各位帮帮忙,给我想想办法,指点指点。 你把整个对象都写入数据库中??是不是搞错了哟你!你应该是把该对象的各个属性的值写入数据库中,而不是把该对象写入数据库中。
    下面给你给关于数据库存取clob的例子:import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.Reader;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Properties;import oracle.jdbc.driver.OracleDriver;
    import oracle.jdbc.driver.OraclePreparedStatement;/**
     * @author ibm
     * 
     */
    public class TestClob { /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
    String url = "jdbc:oracle:thin:@localhost:1521:orclu";
    String username = "xxx_name";
    String passwd = "xxxxx_passwd";
    // -----------------------------------ORCLU_TEST_TBS
    Properties props = new Properties();
    props.put("user", username);
    props.put("password", passwd);
    props.put("setBigStringTryClob", "true");
    DriverManager.registerDriver(new OracleDriver());
    Connection conn = DriverManager.getConnection(url, props); // PreparedStatement pstmt =
    // conn.prepareStatement("insert into clob_tab values(?)");
    String str = readFile("c:\\sqltest.sql"); OraclePreparedStatement opstmt = (OraclePreparedStatement) conn
    .prepareStatement("insert into clob_tab values(?)");
    opstmt.setStringForClob(1, str);
    opstmt.executeUpdate();

    ResultSet rset = null;
    opstmt = (OraclePreparedStatement) conn.prepareStatement("select clob_col from clob_tab");
    rset = opstmt.executeQuery();
    String clobVal=null;
    while (rset.next()){
    clobVal = rset.getString(1);
    System.out.println("CLOB LENGTH: "+clobVal.length());
    }
    } public static String readFile(String path) throws Exception {
    BufferedReader reader = new BufferedReader(new FileReader(path));
    String tt = "";
    String content;
    content = reader.readLine();
    while (null != content) {
    tt += content;
    content = reader.readLine();
    }
    return tt; }
    }
      

  3.   


    我就是要把整个对象存在一个clob字段中,
    这个问题我已经解决了。谢谢