BLOB的问题
public static boolean addNewsPic()
{
Connection co=null;
java.sql.PreparedStatement st=null;
ResultSet rs=null;
boolean bool=false;
try{
co=DB.DBCtl.Connect();
String sql="insert into te (id,data) values('1',empty_blob())";
co.setAutoCommit(false);
DB.DBCtl.outPutLog(sql);
st=co.prepareStatement(sql);
st.executeUpdate();
rs = st.executeQuery("select data from te where id=1 for update");
if(rs.next())
{
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("data");
BufferedOutputStream out = new BufferedOutputStream
(blob.getBinaryOutputStream());
out.write("abc".getBytes());
out.close();
}
co.commit();
bool=true;
}catch(Exception e){DB.DBCtl.outPutLog(e);}
finally{DB.DBCtl.closeConnection(co,st,rs);}
return bool;
}
public static boolean addNewsPic()
{
Connection co=null;
java.sql.PreparedStatement st=null;
ResultSet rs=null;
boolean bool=false;
try{
co=DB.DBCtl.Connect();
String sql="insert into te (id,data) values(?,?)";
co.setAutoCommit(false);
DB.DBCtl.outPutLog(sql);
st=co.prepareStatement(sql);
st.setInt(1,1);
st.setString(2,"empty_blob()");
st.executeUpdate();
rs = st.executeQuery("select data from te where id=1 for update");
if(rs.next())
{
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("data");
BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream());
out.write("abc".getBytes());
out.close();
}
co.commit();
bool=true;
}catch(Exception e){DB.DBCtl.outPutLog(e);}
finally{DB.DBCtl.closeConnection(co,st,rs);}
return bool;
}
第一种写法是可以的,第二种写法红色字体那句报错:java.sql.SQLException: ORA-01465: 无效的十六进制数字
应该怎么写才对?