试一下:
Writer out = clob.getCharacterOutputStream();
Writer out = clob.getCharacterOutputStream();
解决方案 »
- J2EE spring中:“将request请求对象绑定到线程”,这句话是什么意思啊?
- 求高手解释一段代码!!!
- 为什么好多Web应用程序都有静态页面?
- 怎样打开下载文件对话框?
- jsp 读取远程excel的问题
- out.println( meta.getColumnType( i ) )都正确,为什么out.println( typeToString( meta.getColumnType( i ) ) )就错了!
- sqlserver中datetime定义的字段,读出来有误!
- 中文问题:如何判断字符串是否需要进行中文转换!
- 请教
- tomcat不支持中文路径吗?
- help!!!(javax.servlet.ServletException: Exception creating bean of class cn.test.forms.loginForm: {1})
- 一个很基础但不太好回答的问题,谢谢基础知识扎实的高手都进来点评几句,不胜感激。
"NewsMethod.java": incompatible types; found : java.io.Reader, required: java.io.Writer at line 37, column 27
提示说没有这样的构造方法。也就是你用的BufferedWriter(clob.getCharacterStream())这种方法。
ResultSet rs = ps.executeQuery();
while (rs.next()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob(1);
//Writer out = clob.getCharacterOutputStream();
BufferedWriter out =new BufferedWriter(clob.getCharacterOutputStream());
System.out.println(clob);
out.close();
}
我用的web容器是Tomcat和Oracle9.0i
clob.getCharacterOutputStream()?
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob(1);
import没找到oracle这个包?
import java.sql.*;
import tuofang.DatabaseConn;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.text.*;
import java.sql.Clob;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.*;
import oracle.sql.CLOB;
public class NewsMethod {
//添加新闻
Connection con =null;
java.sql.PreparedStatement ps=null;
java.sql.ResultSet rs=null;
public void addNews(News news) throws IOException{
String title=news.getTitle();
System.out.println("title:"+title);
String content=news.getContent();
System.out.println("content:"+content);
String pic=news.getPic();
System.out.println("pic:"+pic);
GregorianCalendar calendar=new GregorianCalendar();//注意:月份范围为0-11
java.util.Date d=calendar.getTime();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24小时制
String date=sdf.format(d).toString();
try {
con = DatabaseConn.getConnection();
con.setAutoCommit(false);
ps=con.prepareStatement("insert into news values(?,EMPTY_CLOB(),?,?)");
ps.setString(1,title);
ps.setString(2,date);
ps.setString(3,pic);
ps.executeUpdate();
/*con.prepareStatement("select content from news where title=? for update");
ps.setString(1,title);
rs=ps.executeQuery();
while(rs.next()){
oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("content");
BufferedWriter out =new BufferedWriter(clob.getCharacterOutputStream());
BufferedReader in = new BufferedReader(new FileReader(title));
int c;
while ( (c = in.read()) != -1) {
out.write(c);
}
in.close();
out.close();
}*/
con.commit();
con.setAutoCommit(true);
rs.close();
ps.close();
con.close();
}
catch (Exception ex) {
try {
con.rollback();
}
catch (SQLException ex1) {
System.out.println("sqlRollback:"+ex);
}
System.out.println("connError:"+ex);
}
finally {
try {
if(rs!=null){
rs.close();
}
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
}
catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
又出现问题了?
插入的时候差不了总是抱插入重复值的错误?
ps.setString(1,title);
rs=ps.executeQuery();
while(rs.next()){
oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("content");
BufferedWriter out =new BufferedWriter(clob.getCharacterOutputStream());
BufferedReader in = new BufferedReader(new FileReader(title));
int c;
while ( (c = in.read()) != -1) {
out.write(c);
}
in.close();
out.close();
}*/
注释掉就可以插入数据了
但我其他的title fbdate 和pic字段的值却全部可以插入到数据库里
而content字段(clob类型)却总是不能插入总是在该字段的值里显示<CLOB>
请大家帮我解决解决问题啊!
分不够继续加分!
create table news(
title varchar(100) not null,
content clob ,
fbdate varchar(30) not null,
pic varchar(80),
primary key (title,fbdate)
)