我是个中专毕业的,
毕业后培训了2个阶段的软件开发
java:oop,javaWeb(jsp+servlet+javabean)开发项目,
使用数据库:SQLserver,在C#/Winform中,用流的方式把图片存放取出都很简单的,就是在我最喜欢的java中,怎么都不行,
高手帮帮忙啊,
最好用一段代码的方式给出。。谢谢了啊
毕业后培训了2个阶段的软件开发
java:oop,javaWeb(jsp+servlet+javabean)开发项目,
使用数据库:SQLserver,在C#/Winform中,用流的方式把图片存放取出都很简单的,就是在我最喜欢的java中,怎么都不行,
高手帮帮忙啊,
最好用一段代码的方式给出。。谢谢了啊
可以把二进制数据写入数据库读的时候 getBinaryStream 就可以读回来
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;public class imageServlet extends HttpServlet { /**
* Constructor of the object.
*/
Connection conn = null;
public imageServlet() {
super();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
this.conn = DriverManager.getConnection("jdbc:odbc:test");
} catch (Exception e) {
e.printStackTrace();
}
}
public void insertImgToDb() {
try {
PreparedStatement stmt = this.conn.prepareStatement("insert into test (imgtest) values(?)");
File file = new File("d:\\a.JPG");
FileInputStream input = new FileInputStream(file);
stmt.setBinaryStream(1, input,input.available());
//input.close();
stmt.executeUpdate();
stmt.close();
input.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public BufferedImage getImgFromDb() {
BufferedImage image = null;
try {
PreparedStatement stmt = conn.prepareStatement("select imgtest from test");
ResultSet rs = stmt.executeQuery();
rs.next();
image = ImageIO.read(rs.getBinaryStream(1));
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return image;
} /**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("image/jpeg");
this.insertImgToDb();
BufferedImage img = this.getImgFromDb();
ImageIO.write(img, "JPG", response.getOutputStream());
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { this.doGet(request, response);
} public void init() throws ServletException {
// Put your code here
}}