我的想法是把图片的绝对路径存到database里面,然后通过java code读取和运行,这样总可以了吧
解决方案 »
- Servlet 获取FCKeditor标签内容
- 求级联关系操作的SQL语句
- java.lang.NullPointerException问题 ,请教高人
- JBOSS 配置MSSQL数据源及使用
- spring+webworks+freemark的组合有前途吗?
- 关于数据库的JDBC Drivers
- 500分!!!寻《Java Open Source Programming》和《Junit in action》
- EJB1.1和EJB2.0两个版本的疑惑?
- 咨询一件事?
- The target server failed to respond
- 如何在javabean中获取request对象
- 在JNI用java调用c++定义的函数时(.class与.c文件都已创建好),如何创建共享库文件?
import java.io.*;
import oracle.sql.*;
public class WriteBlob {public static void main(String[] args) { try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","fankai","fankai");
conn.setAutoCommit(false); BLOB blob = null; PreparedStatement pstmt = conn.prepareStatement("insert into javatest(name,content) values(?,empty_blob())");
pstmt.setString(1,"fankai");
pstmt.executeUpdate();
pstmt.close(); pstmt = conn.prepareStatement("select content from javatest where name= ? for update");
pstmt.setString(1,"fankai");
ResultSet rset = pstmt.executeQuery();
if (rset.next()) blob = (BLOB) rset.getBlob(1); String fileName = "aaa.jpg"; //文件的地址
File f = new File(fileName);
FileInputStream fin = new FileInputStream(f);
System.out.println("file size = " + fin.available()); pstmt = conn.prepareStatement("update javatest set content=? where name=?"); OutputStream out = blob.getBinaryOutputStream(); int count = -1, total = 0;
byte[] data = new byte[(int)fin.available()];
fin.read(data);
out.write(data);
/*
byte[] data = new byte[blob.getBufferSize()]; 另一种实现方法,节省内存
while ((count = fin.read(data)) != -1) {
total += count;
out.write(data, 0, count);
}
*/ fin.close();
out.close(); pstmt.setBlob(1,blob);
pstmt.setString(2,"fankai"); pstmt.executeUpdate();
pstmt.close(); conn.commit();
conn.close();
} catch (SQLException e) {
System.err.println(e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}}