Insertion image dans mysql = problème
Bonjour à tous,
je développe une petite application Web(JSF) qui a pour but d'insérer une image dans une base de donnée MySql 5.
J'obtiens l'erreur suivante lorsque je tente de compléter mon PreparedStatement avec un setBinaryStream ou même avec un setBlob.
Code:
1 2 3 4 5 6 7 8
|
java.lang.AbstractMethodError: org.apache.commons.dbcp.DelegatingPreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V
at com.imopromet.core.dao.impl.IImageDaoImpl$1.createPreparedStatement(IImageDaoImpl.java:31)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:585)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:792)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:815)
at com.imopromet.core.dao.impl.IImageDaoImpl.insert(IImageDaoImpl.java:24)
at test.image.TestInsert.testInsertImage(TestInsert.java:34) |
voici le code qui exécute
Précisions: le bean Image est une classe perso qui contient des ByteArrayInputStream et la taille des images
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
public void insert(final Image image,final long idAnnounce) {
getJdbcTemplate().update(new PreparedStatementCreator(){
@Override
public PreparedStatement createPreparedStatement(Connection con)
throws SQLException {
PreparedStatement ps = null;
try{
ps = con.prepareStatement("insert into images(image,imageThumb,adsID) values(?,?,?)");
ps.setBinaryStream(1, image.getImage(),image.getSizeImage());
ps.setBinaryStream(2, image.getImage(),image.getSizeImage());
ps.setLong(3, idAnnounce);
}catch(SQLException se){
se.printStackTrace();
}
return ps;
}
}); |
Quelques infos complémentaires
JSF
upload de l'image avec apache tomahawk
Netbeans 6.5
configuration de la datasource avec Spring
Code:
1 2 3 4 5 6 7
|
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSourceFactory" destroy-method="close">
<property name="driverClassName" value="${dataSource.driverClassName}" />
<property name="url" value="${dataSource.url}" />
<property name="username" value="${dataSource.username}" />
<property name="password" value="${dataSource.password}" />
</bean> |
Petite infos supplémentaire, tout le reste fonctionne. je sais insérer d'autres éléments dans ma base, c'est juste le blob qui marche pas.
Voilà si quelqu'un a une idée d'où cela peut bien provenir.
A+
merci