1

我正在使用 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
4

0 回答 0