Попробуйте это с PreparedStatement:
Connection con = null;
PreparedStatement stmt = null;
try {
byte[] b = getFunction();
con = ...;
stmt = con.prepareStatement("update table set features=?");
stmt.setBytes(1, b);
stmt.executeUpdate();
con.commit();
}
catch (SQLException e) {
//handle exception (consider con.rollback()) and con maybe null here)
}
finally {
//close stmt and at least con here (all maybe null here)
}
Лично я всегда использую PreparedStatements.Когда вам нужно написать большую часть этого кода, подумайте о написании некоторых Utility-Classes для уменьшения Boilerplate-Code.
В частности, вы должны рассмотреть возможность написания Utilty-Classes для нулевых безопасных методов вызова в Connection, Statement и ResultSetметоды, когда вы имеете дело с простым JDBC.
РЕДАКТИРОВАТЬ То, что Томас Юнг написал о предотвращении SQL-инъекций, является еще одним большим профессионалом, всегда использующим PreparedStatements.+1 за него: -)