我正在使用 sqlite 数据库和 netbeans 创建应用程序。将图像保存到数据库时出现问题。我在数据库中有一个数据类型为 BLOB 的图像字段,我正在插入一个字节数组。我知道它不匹配。但是当我保存它时,它的值是这样的“[B@2c8f544b”,但实际值应该是这样的“BLOB(大小:1850)”。如果有这样的值,那么只有我可以检索图像。我真的不知道该怎么做。如果您有任何参考,请告诉我。
我的想法是在保存到数据库之前将字节数组转换为 BLOB 类型。但我找不到任何代码。
String fname = p.fname;
String lname = p.lname;
byte[] image = p.image_det;
String mob = p.mobile;
String wor = p.work;
String hom = p.home;
String fax = p.fax;
int pID ;
ResultSet rst = stmt.executeQuery("SELECT MAX(pID) FROM person");
pID = Integer.parseInt(rst.getString(1))+1;
Statement stmt1 = con.createStatement();
stmt1.executeUpdate("INSERT INTO person(pID,F_name,L_name,image) VALUES ("+pID+" ,'"+fname+"','"+lname+"','"+image+"' ) ");
//-------------------------获取图像路径并将图像数据获取到名为 image_details 的数组中
File f;
String ipath = f.getAbsolutePath(); // getting image path
byte[] image_detail = null;
try
{
File image = new File(ipath);
FileInputStream fis = new FileInputStream(image);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
for(int readNum;(readNum = fis.read(buf))!= -1;)
{
baos.write(buf, 0,readNum);
}
image_detail = baos.toByteArray();
per.setImage_det(image_detail); // set image data for person class