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(), ""));
}
}