wengsibo 发表于 2013-2-3 14:13:22

java存取CLOB

1.插入
public boolean saveNotice(NoticeBean noticeBean) {Connection conn = null;Statement stm = null;ResultSet rs = null;try {conn = jdbcTemplate.getDataSource().getConnection();stm = conn.createStatement();conn.setAutoCommit(false); // 设置不自动提交String sql = "insert into t_notice values(seq_t_notice.nextval,'"+ noticeBean.getNtitle() + "',empty_clob(),'"+ noticeBean.getNauthor() + "',sysdate,'',1,'',to_date('"+ noticeBean.getNvaldate() + "','yyyy-MM-dd'))";stm.executeUpdate(sql);// 获取当前序列sql = "select seq_t_notice.currval from dual";rs = stm.executeQuery(sql);long seq_t_notice = 0;if (rs.next()) {seq_t_notice = rs.getLong(1);}// 上更新锁sql = "select ncontent from t_notice where noticeid="+ seq_t_notice + " for update";rs = stm.executeQuery(sql);Clob clob = null;if (rs.next()) {// 得到大字段对象clob = rs.getClob(1);}// 得到输出流Writer write = clob.setCharacterStream(0);BufferedWriter bwrite = new BufferedWriter(write);// 写流bwrite.write(noticeBean.getNcontent());bwrite.flush();bwrite.close();// 遍历保存附件if (noticeBean.getIsannex().equals("1")) {String annexs[] = noticeBean.getAnnexs();String annexranname[] = noticeBean.getAnnexranname();for (int i = 0; i < annexs.length; i++) {if (annexs != null && annexs.length() != 0 ) {sql = "insert into T_NOTICE_ANNEX values(SEQ_T_NOTICE_ANNEX.nextval,'"+ annexs+ "','"+ annexranname+ "',"+ seq_t_notice + ")";stm.executeUpdate(sql);}}}conn.commit();conn.setAutoCommit(true);} catch (SQLException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;} finally {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return true;}

2.读取
try {con = ConOracle.getCon();stmt = con.createStatement();String sql = "select e.emailid,title,content,senddate,isfile,sender,u.username,e.receiverfrom t_email e"+ " join t_user u on e.sender=u.username where e.emailid = '"+ emailid + "'";rs = stmt.executeQuery(sql);while (rs.next()) {emailBean.setEmailid(rs.getString("emailid"));emailBean.setSenddate(rs.getString("senddate"));emailBean.setSender(rs.getString("sender"));String[] receiver = {rs.getString("receiver")};emailBean.setReceiver(receiver);emailBean.setTitle(rs.getString("title"));Clob clob = rs.getClob("content");Reader reader = clob.getCharacterStream();BufferedReader bufferedReader = new BufferedReader(reader);StringBuffer bufferTemp = new StringBuffer();String line = "";while ((line = bufferedReader.readLine()) != null) {bufferTemp.append(line);}emailBean.setContent(bufferTemp.toString());bufferedReader.close();reader.close();}} catch (Exception e1) {e1.printStackTrace();}
页: [1]
查看完整版本: java存取CLOB