bonsoir
j'ai un probleme au niveau de la sauvegarde et de chargement d'une image a partir d'une base de donnée.l'insertion se fait avec succés mais lors du chargement de cette image a partir de la Base je trouve qu'elle est vide.
j'ai utilisé le type Blob pour sauvgarder l'image
ma table est la suivante
Create table image (
name varchar2(50),
img Blob);
l'insertion se fait avec succés mais lors du chargement de cette image je trouve qu'elle est vide
le code du sauvegarde et du chargement ci dessous :
public void sauveIMG(String location, String name) throws Exception
{
OracleDataSource ods = null;
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
// Create DataSource and connect to the local database
ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:@//localhost:1521/orcl");
ods.setUser("SCOTT");
ods.setPassword("TIGER");
conn = ods.getConnection();
File monImage = new File(location);
FileInputStream istreamImage = new FileInputStream(monImage);
try
{
PreparedStatement ps = conn.prepareStatement("insert into image (name,img ) values (?,?)");
try
{
ps.setString(1, "image");
ps.setBinaryStream(2, istreamImage, (int) monImage.length());
ps.executeUpdate();
}
finally
{
if(rset!=null) rset.close();
if(stmt!=null) stmt.close();
if(conn!=null) conn.close();
ps.close();
}
}
finally
{
istreamImage.close();
}
}
////////////////////////////////////////////////////////
public void chargeIMG(String name, String location) throws Exception
{ OracleDataSource ods = null;
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
// Create DataSource and connect to the local database
ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:@//localhost:1521/orcl");
ods.setUser("SCOTT");
ods.setPassword("TIGER");
conn = ods.getConnection();
File monImage = new File(location);
FileOutputStream ostreamImage = new FileOutputStream(monImage);
try
{
PreparedStatement ps = conn.prepareStatement("select img from image where name=?");
try
{
ps.setString(1,name);
ResultSet rs = ps.executeQuery();
try
{
if(rs.next())
{
InputStream istreamImage = rs.getBinaryStream("img");
byte[] buffer = new byte[1024*10];
int length = 0;
while((length = istreamImage.read(buffer)) != -1)
{
ostreamImage.write(buffer, 0, length);
}
}
}
finally
{
rs.close();
}
}
finally
{
ps.close();
}
}
finally
{ ostreamImage.flush();
ostreamImage.close();
if(rset!=null) rset.close();
if(stmt!=null) stmt.close();
if(conn!=null) conn.close();
}
}
l'appelle de ces deux methodes :
Insert insert = new Insert();
insert.sauveIMG("C:\\Users\\hp\\Desktop\\EMPID1.BMP", "EMPID1.BMP");
insert.chargeIMG("image.bmp", "C:\\Users\\hp\\Desktop\\image.bmp");
merci pour votre aide

 

 
		
		 
        

 
			
			


 Insertion d'une image dans une base de données Oracle 10g
 Insertion d'une image dans une base de données Oracle 10g
				 Répondre avec citation
  Répondre avec citation


 
   
 
 Envoyé par noussa87
 Envoyé par noussa87
					
Partager