java sql blob читает до 64 КБ, более 64 КБ дает ошибку max_allowed_packet. Тип данных таблицы mysql - средний blob

Я установил тип данных таблицы mysql как средний blob и попытался вставить 144 КБ через рабочий стол mysql. это работает.

пока я читаю те же данные через java sql blob, он поднимает max_allowed_packet исключение.

Я использую mysql j/connector 8.0.13 и выше. код работает до 64 кб.

Примечание: поскольку я использую mysql 8, а max_allowed_packet установлен на 1G.

я пробовал следующий код.

public void fetchgallerypic()
{
   try
   {
       dbConnect gallerypiccon = new dbConnect();
       Statement gallerypicstmt = gallerypiccon.Con.createStatement();
       gallerypicstmt.execute("select idgallery, gallerytitle, gallerydesc, galleryimage, 
       gallerystore, gallerylocation from gallery where idgallery <= 7");
       ResultSet gallerypicrs = galleryread.getResultSet();
       while(gallerypicrs.next())
       {
          galleryItems gitems = new galleryItems();
          gitems.setPid(gallerypicrs.getInt(1));
          gitems.setPtitle(gallerypicrs.getString(2));
          gitems.setPdescription(gallerypicrs.getString(3));
          //gitems.setPpic(gallerypicrs.getBinaryStream(4));
          //Integer plength = (int) (long) gitems.getPpic().length();
          gitems.setPdisplaypic(Base64.getEncoder().encodeToString(gallerypicrs.getBytes(4)));    
          gitems.setPstore(gallerypicrs.getString(5));
          gitems.setPlocation(gallerypicrs.getString(6));
          this.gallerylist.add(gitems);
          FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, gitems.getPtitle(), ""));
       }

       gallerypiccon.Con.close();
   }
   catch (SQLException ex)
   {
      FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, 
            "Gallery Pic Fetch Error ...!" + ex.getMessage(), ""));
   }    
}

0 ответов

Другие вопросы по тегам