我想以二进制格式存储图像,并以二进制格式检索它,以图像格式显示它。我能够以二进制格式存储该文件,但在检索它时,我得到了错误java空指针异常。请指出错误。代码如下:
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class InsertImageTest {
int len;
/**
* This is used to get the Connection
*
* @return
*/
public Connection getConnection() {
Connection connection = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "spanwave");
} catch (Exception e) {
System.out.println("Error Occured While Getting the Connection: - "
+ e);
}
return connection;
}
/**
* Insert Image
*/
public Image getImageFile(String fileName) throws Exception {
InsertImageTest ins= new InsertImageTest();
Connection con=ins.getConnection();
Statement stmt=con.createStatement();
// String baseName=StoreImage.getBaseName(fileName);
ResultSet rs=stmt.executeQuery("select * from trn_imgs where img_title='"+"Honda Car"+"'");
if (!rs.next()) {
System.out.println("Image:"+"honda car"+" not found");
return null;
}
// int len=rs.getInt(2);
byte [] b=new byte[len];
InputStream in = rs.getBinaryStream(3);
int n=in.read(b);
System.out.println("n: "+n);
in.close();
Image img=Toolkit.getDefaultToolkit().createImage(b);
System.out.println("Image: "+"honda car"+" retrieved ok, size: "+len);
return img;
}
public void insertImage() throws IOException {
Connection connection = null;
PreparedStatement statement = null;
FileInputStream inputStream = null;
try {
File image = new File("calender.png");
inputStream = new FileInputStream(image);
len=inputStream.available();
connection = getConnection();
statement = connection
.prepareStatement("insert into trn_imgs(img_title, img_data) "
+ "values(?,?)");
statement.setString(1, "Honda Car");
statement.setBinaryStream(2, (InputStream) inputStream,
(int) (image.length()));
statement.executeUpdate();
} catch (FileNotFoundException e) {
System.out.println("FileNotFoundException: - " + e);
} catch (SQLException e) {
System.out.println("SQLException: - " + e);
} finally {
try {
connection.close();
statement.close();
} catch (SQLException e) {
System.out.println("SQLException Finally: - " + e);
}
}
}
/***
* Execute Program
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
InsertImageTest imageTest = new InsertImageTest();
imageTest.insertImage();
Image img= imageTest.getImageFile("calender.png");
}
}
connection = getConnection();
Statement stmt = connection.createStatement();
ResultSet rs=stmt.executeQuery("select * from trn_imgs where img_title='"+"Honda Car"+"'");
互联网日安! 我正在尝试从mysql数据库检索并显示一个图像到一个图像视图(android)中。图像是blob类型。我有以下php代码从MySQL获取图像。 下面是使用JSON的android代码。 提前感谢您的帮助!
我正在尝试运行检查数据库并获得连接不存在错误!我在MySQL中有一个名为myapp的数据库以及其他数据库。 这是我的settings.py 项目结构: 这就是发生的情况: root @ IP-10-202-209-99:~/Desktop/my site # python manage.py inspectdb-database myapp trace back(最近一次调用last):< br
Iam是JPA的新手,尝试创建EJB 3.0+JPA(hibernate)应用程序。当iam将数据持久化到数据库中时,出现以下异常。 sessionBean方法: 客户类(实体类)
是否正确?现在,当我尝试从数据库中检索blob数据时,它每次都会更改,为什么?那么如何检索此图像呢?以下是我尝试过的代码: 我没有看到任何图像。为什么?请帮忙。谢谢
问题内容: 如何在MySQL中插入图像,然后使用PHP检索图像? 我在这两个领域的经验都很有限,我可以使用一些代码让我着手解决这个问题。 问题答案: 首先,您创建一个MySQL表来存储图像,例如: 然后,您可以将图像写入数据库,如下所示: 您可以使用以下方法在网页中显示数据库中的图像: