めも

技術メモとその他

delete file if query results not returned

package homeWork;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.commons.io.FileUtils;
import org.dbunit.ext.postgresql.*;

public class dbTest {
	
	private static final String file_path="/Users/tk/foo_selects.json";
	
    public static void main(String[] args) throws Exception {
        	
    		Connection conn = null;
        Statement stmt = null;
        ResultSet rset = null;

        //connection string
        String url = "jdbc:postgresql://localhost:5432/prototype";
        String user = "tk";
        String password = "";
        try{
            Class.forName("org.postgresql.Driver");

            //connect db
            conn = DriverManager.getConnection(url, user, password);
            FileOutputStream stream = new FileOutputStream(file_path);
            
            //execute query
            stmt = conn.createStatement();
            String sql = "select memo from foo where id = 99";
            rset = stmt.executeQuery(sql);
            
            //get results
	            while(rset.next()){
	                String col = rset.getString(1);
	                stream.write(rset.getBytes(1));
	                System.out.println(col);
	            }
        }
        catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        finally {
            try {
                if(rset != null)rset.close();
                if(stmt != null)stmt.close();
                if(conn != null)conn.close();
                //if no results delete 0 byte file
                File tmp = new File(file_path);
        			FileUtils.forceDelete(tmp);
            }
            catch (SQLException e){
                e.printStackTrace();
            }
        }
    }
}