Java.Postgres copy from std in


(molexor) #1

czy jest możliwe użycie javy do wkopiowania danych do bazy z pliku tekstowego za pomocą copy??

Jeśli tak, to jak to zrobić?

Połączenie z bazą danych mam za pomocą sterownika jdbc postgres.

edit:


Już mam.

import java.io.*;

import java.sql.*;

import org.postgresql.*;

public class Superclass {


	/**

	 * @param args

	 */

	   static Connection cn;

	   static StringBuffer strbuff;


	   public static void main(String[] args) {

	       // TODO Auto-generated method stub

	       try {

	           Class.forName("org.postgresql.Driver");

	               strbuff = new StringBuffer();

	             cn = DriverManager.getConnection("jdbc:postgresql:dair_web",

	                     "dair",

	                     "dair");


	             File inFile = new File("/home/michal/Desktop/plik.txt");

	             BufferedReader br = new BufferedReader(new InputStreamReader(

	                 new FileInputStream(inFile))); // mamy plik do zczytywania




	             BufferedWriter brout = new BufferedWriter(new FileWriter("/home/michal/Desktop/plik_new.txt"));// strumień do przetworzonego pliku

	             String linia;

	             int a=1;

	             while ( br.ready()){

	                 linia = br.readLine();

	                 brout.write(linia + "|" + a++);

	                 brout.newLine();



	             }

	             brout.close();


	             inFile = new File("/home/michal/Desktop/plik_new.txt");

	             br = new BufferedReader(new InputStreamReader(

	                 new FileInputStream(inFile))); // mamy plik do wrzucenia




	             ((PGConnection)cn).getCopyAPI().copyIn("copy test from stdin with delimiter '|' ", br);




	       } catch (Exception e) {


	           e.printStackTrace();

	       }


	   }

}