Você está convertendo o byte[] em uma String em sua instrução sql e acabará com dados incorretos.
A maneira correta de usar um BLOB seria passar o
InputStream
em si. Você pode usar o FileInputStream
você está usando para ler o arquivo. File image = new File(path);
FileInputStream fis = new FileInputStream ( image );
String sql="insert into imgtst (username,image) values (?, ?)";
pst=con.prepareStatement(sql);
pst.setString(1, user);
pst.setBinaryStream (2, fis, (int) file.length() );
Ao recuperá-lo, você também pode obter um
InputStream
do ResultSet
:InputStream imgStream = resultSet.getBinaryStream(2);