`

用JDBC访问大段文本数据

阅读更多

JDBC操作大的文本数据是通过IO字符流操作

 

public class ClobTest {

 

    public static void main(String[] args) throws SQLException, IOException {

       // create();

       read();

    }

    查询:

    static void read() throws SQLException, IOException {

       Connection conn = null;

       Statement st = null;

       ResultSet rs = null;

       try {

           // 2.建立连接

           conn = JdbcUtils.getConnection();

           // conn = JdbcUtilsSing.getInstance().getConnection();

           // 3.创建语句

           st = conn.createStatement();

           // 4.执行语句

           rs = st.executeQuery("select big_text  from clob_test");

           // 5.处理结果

           while (rs.next()) {

              Clob clob = rs.getClob(1);

              Reader reader = clob.getCharacterStream();

              // 或者用这种方式

              // reader = rs.getCharacterStream(1);

              // String s = rs.getString(1);

              File file = new File("JdbUtils_bak.java");

              Writer writer = new BufferedWriter(new FileWriter(file));

              char[] buff = new char[1024];

              for (int i = 0; (i = reader.read(buff)) > 0;) {

                  writer.write(buff, 0, i);

              }

              writer.close();

              reader.close();

           }

       } finally {

           JdbcUtils.free(rs, st, conn);

       }

    }

    添加:

    static void create() throws SQLException, IOException {

       Connection conn = null;

       PreparedStatement ps = null;

       ResultSet rs = null;

       try {

           // 2.建立连接

           conn = JdbcUtils.getConnection();

           // conn = JdbcUtilsSing.getInstance().getConnection();

           // 3.创建语句

           String sql = "insert into clob_test(big_text) values (?) ";

           ps = conn.prepareStatement(sql);

           File file = new File("src/cn/itcast/jdbc/JdbcUtils.java");

           Reader reader = new BufferedReader(new FileReader(file));

           ps.setCharacterStream(1, reader, (int) file.length());

           // ps.setString(1, x);//若文本很大这种试可能会造成内存溢出

           // 4.执行语句

           int i = ps.executeUpdate();

           reader.close();

           System.out.println("i=" + i);

       } finally {

           JdbcUtils.free(rs, ps, conn);

       }

    }

 

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics