Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

Java 프로그램을 사용하여 MySQL 데이터베이스에 이미지를 삽입하는 방법은 무엇입니까?

<시간/>

MySQL 데이터베이스에 이미지를 저장하기 위해 일반적으로 blob 유형이 사용됩니다. 따라서 다음 설명과 함께 blob 데이터 유형으로 테이블을 생성했는지 확인하십시오.

+-------+--------------+------+-----+------+ -------+| 필드 | 유형 | 널 | 키 | 기본값 | 추가 |+----+--------------+------+-----+---------+- ------+| 이름 | varchar(255) | 예 | | 널 | || 이미지 | 얼룩 | 예 | | 널 | |+-------+--------------+------+-----+---------+-- -----+

MySQL에 이미지를 삽입하려면 데이터베이스에서 다음 단계를 따르십시오.

1단계:데이터베이스에 연결

getConnection()을 사용하여 데이터베이스에 연결할 수 있습니다. DriverManager 클래스의 메서드입니다.

jdbc:mysql://localhost/sampleDB인 MySQL URL을 전달하여 MySQL 데이터베이스에 연결합니다. (여기서 sampleDB는 데이터베이스 이름), 사용자 이름 및 암호를 getConnection() 메서드에 대한 매개변수로 사용합니다.

문자열 mysqlUrl ="jdbc:mysql://localhost/sampleDB"; 연결 con =DriverManager.getConnection(mysqlUrl, "루트", "비밀번호");

2단계:준비된 진술 작성

prepareStatement()를 사용하여 PreparedStatement 객체 생성 연결 방법 상호 작용. 이 메서드에 매개변수로 삽입 쿼리(자리 표시자 포함)를 전달합니다.

PreparedStatement pstmt =con.prepareStatement("INSERT INTO MyTable VALUES(?, ?)");

3단계:자리 표시자에 값 설정

PreparedStatement의 setter 메서드를 사용하여 자리 표시자에 값을 설정합니다. 상호 작용. 컬럼의 데이터 유형에 따라 메소드를 선택하십시오. 예를 들어 열이 VARCHAR 유형인 경우 setString()을 사용합니다. 메소드가 INT 유형인 경우 setInt()를 사용할 수 있습니다. 방법.

Blob 유형인 경우 setBinaryStream()을 사용하여 값을 설정할 수 있습니다. 또는 setBlob() 메서드. 이 메소드에 매개변수 인덱스를 나타내는 정수 변수와 InputStream 클래스의 객체를 매개변수로 전달합니다.

pstmt.setString(1, "샘플 이미지");//Blob typeInputStream 삽입 =new FileInputStream("E:\\images\\cat.jpg");pstmt.setBlob(2, in); 

4단계:명령문 실행

execute()를 사용하여 위에서 생성한 PreparedStatement 객체를 실행합니다. PreparedStatement 메소드 인터페이스.

예시

가져오기 java.io.FileInputStream;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;public class InsertImageToMySqlDB { public static void main(String args[ ]) throws Exception{ //드라이버 등록 DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //연결 얻기 String mysqlUrl ="jdbc:mysql://localhost/sampleDB"; 연결 con =DriverManager.getConnection(mysqlUrl, "루트", "비밀번호"); System.out.println("연결이 설정되었습니다......"); PreparedStatement pstmt =con.prepareStatement("INSERT INTO MyTable VALUES(?,?)"); pstmt.setString(1, "샘플 이미지"); // Blob 유형 InputStream 삽입 =new FileInputStream("E:\\images\\cat.jpg"); pstmt.setBlob(2, 입력); //문 실행 pstmt.execute(); System.out.println("레코드 삽입....."); }}

출력

연결 설정......레코드 삽입......