clob字段的读和取

clob字段读取时不能用数据源,所以必须用原始方法存储。
代码如下:
存储数据:
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:orcl","username","password");
}catch(ClassNotFoundException E){

}catch(SQLException e){

}
try {
conn.setAutoCommit(false);
ps = conn.prepareStatement(sql);
ps.setString(1,form.getPreTitle());
ps.setString(2,form.getTitle());
。。。。。。。。。。。。。。。。。
flag = ps.executeUpdate();
String sql_1 = "select news_content from t_news_temp where news_title='"+form.getTitle()+"' for update";
st = conn.createStatement();
rs = st.executeQuery(sql_1);
CLOB clob = null;
if(rs.next()){
clob = ((oracle.jdbc.OracleResultSet)rs).getCLOB("news_content");
java.io.Writer writer = clob.getCharacterOutputStream();

try {
writer.write(form.getContent());
writer.flush();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e);
}
}
conn.commit();
conn.setAutoCommit(true);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e);
return 0;
}
修改数据:
修改也不能直接用数据源。
conn = ConnectionHelper.getConnection();
conn.setAutoCommit(false);
ps = conn.prepareStatement(sql);
ps.setString(1,form.getPreTitle());
ps.setString(2,form.getTitle());
ps.executeUpdate();
String sql_1 = "select news_content from t_news where news_id="+form.getId();
st = conn.createStatement();
rs = st.executeQuery(sql_1);
CLOB clob = null;
while(rs.next()){
clob = ((oracle.jdbc.OracleResultSet) rs).getCLOB("news_content");
oracle.sql.CLOB my_clob = (oracle.sql.CLOB) clob;
java.io.Writer writer = my_clob.getCharacterOutputStream();
try {
writer.write(form.getContent());
writer.flush();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
conn.commit();
conn.setAutoCommit(true);

查询数据:
查询数据也可以直接用数据源。
clob = rs.getClob("news_content");
form.setContent(clob.getSubString((long)1,(int)clob.length()));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值