package webchurch.cms.dao;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class BinaryTest {
	public BinaryTest() {
		// TODO Auto-generated constructor stub
	}
	public String start(int size){
		String url = "jdbc:sqlserver://211.110.11.69:1433;databaseName=kisung_test";
		String user = "sa";
		String password = "epmssa01";
		Connection conn = null;
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}		
		try {
			conn = DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		File file = new File("D:\\CONF\\KakaoTalk_20151230_165618595.jpg");
		int fSize = (int)file.length();
		FileInputStream fis;
		String query = "insert into cms_file (hoiwonno, createday, updateday, extension, img_size, image_file) values ('t251',getdate(),getdate(),'tt3',1,?)";
		PreparedStatement pstmt = null;
		System.out.println(size);
		try {
			pstmt = conn.prepareStatement(query);
			fis = new FileInputStream(file);
			pstmt.setBinaryStream(1, fis, fSize);
			pstmt.executeUpdate();
			fis.close();
			pstmt.close();
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//복원
		/*
		String query2 = "select * from cms_file";
		pstmt = null;
		ResultSet rs = null;
		fis = null;
		FileOutputStream fos = null;
		try {
			
			pstmt = conn.prepareStatement(query2);
			rs = pstmt.executeQuery();
			int i = 0;
			while(rs.next()){
				fos = new FileOutputStream(new File("d:/sadcopy" + i + ".gif"));
				InputStream stream = rs.getBinaryStream("image_file");
				byte[] buf = new byte[1024];
				int readData = 0;
				while((readData = stream.read(buf))!=-1){
					fos.write(buf,0,readData);
				}
				fos.close();
				i++;
			}
			
			
			/*fis = (FileInputStream) rs.getBinaryStream("image_file");
			byte[] buf = new byte[1024];
			for(int read; (read = fis.read(buf))!= 1;){
				fis.read(buf, 0, 1024);
				fos.write(buf, 0, 1024);
			}
			fis.close();
			fos.close();*//*
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		try {
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
			 */
		return ""+fSize;
	}
	public static void main(String[] args) {
		BinaryTest bt = new BinaryTest();
		bt.start(160731);
	}
}

