CREATE TABLE IF NOT EXISTS `zdjecie` ( `ID_Zdjecia` int(11) NOT NULL AUTO_INCREMENT, `Opis` varchar(150) COLLATE utf8_polish_ci NOT NULL DEFAULT '-', `Zdjecie` blob NOT NULL, PRIMARY KEY (`ID_Zdjecia`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci
A teraz do operowania na bazie danych będziemy posługiwać się 2 metodami:
//Wstawienie zdjęcia
public void InsertZdjecie(int ID_Osoba,String Opis,FileInputStream fotos);
//pobranie z bazy zdjęcia
public BufferedImage getMySqlPhoto(int ID_Zdjecie);
I ich definicja:
public BufferedImage getMySqlPhoto(int ID_Zdjecie){
BufferedImage BI = null;
Statement S;
ResultSet rs;
String sqlStatement = "SELECT zdjecie FROM zdjecie WHERE ID_Zdjecia = '"+ID_Zdjecie+"'";
try {
S = con.createStatement();
rs = S.executeQuery(sqlStatement);
if (rs.next()){
Blob image = rs.getBlob("Zdjecie");
InputStream input = image.getBinaryStream();
BI=ImageIO.read(input);
// set read buffer size
input.close();
}
}
catch (SQLException ex)
{
ex.printStackTrace();
}
catch (IOException ex)
{
ex.printStackTrace();
}
return BI;
}
public void InsertIntoZdjecie(String Opis,FileInputStream fotos)
{
String INSERT = "INSERT INTO ZDJECIE(Opis,Zdjecie) VALUES (?,?)";
System.out.println(INSERT);
PreparedStatement ps1;
try {
ps1 = con.prepareStatement(INSERT);
ps1.setString(1, Opis);
ps1.setBinaryStream(2, fotos);
ps1.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
Prawda, że proste ? :-)
1 comments:
Wielkie dzięki, właśnie tego szukałem :)
Post a Comment