[How To] MySQL에 이미지 저장 후 출력하는 방법

Updated:

MySQL에 이미지 저장

학교 프로젝트를 하던 중 MySQL 에 이미지를 저장 할 일이 생겼다.

이때까지 데이터베이스에 이미지를 저장 할 생각은 해본 적이 없어서 처음에는 당황스러웠다.

구글링을 해 본 결과 BLOB 이라는 자료형을 사용하면 된다고 했다.

하지만 BLOB 는 용량도 적을 뿐 더러 많은 이미지가 저장되면 성능이 아주 느려진다고 했다.

그래서 이미지 경로를 VARCHAR() 로 저장하고 필요한 경우에 사용하는 방법을 택하기로 했다.

Java 를 통한 이미지 출력

이미지를 저장만 하면 무슨 의미가 있을까 !

자바를 통해 데이터베이스에 저장한 이미지를 출력해보도록 하자.

data = stmt.executeQuery("select * from Car");
Image image = null;
String urlStr="";
				
while(data.next()) {
	   urlStr = rs.getString(5);
	}
				
// URL로 부터 이미지 읽기
URL url = new URL(urlStr);
image = ImageIO.read(url);
JLabel carLabel = new JLabel(new ImageIcon(image));
		        
panel.add(carLabel);

코드의 일부분만 가져왔다.

Car 테이블에서 이미지 URL 을 가져온 후 label 로 만들어 panel 에 넣어줬다.

어떻게 디자인 하는 지는 본인 마음이다.

이렇게 하면 아주 간단하게 데이터베이스에 저장 된 이미지를 출력 할 수 있다.


Leave a comment