Created
August 15, 2013 01:45
-
-
Save sjcotto/6237519 to your computer and use it in GitHub Desktop.
java postgress integration
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public Tarea4Parte1{ | |
public static void main(String[] args) { | |
//<dbhost> <dbport> <dbname> <username> <password> esto es lo que viene en el args[], de la letra | |
String dbhost = args[0]; | |
String dbport = args[1]; | |
String dbname = args[2]; | |
String usuario = args[3]; | |
String pass = args[4]; | |
Connection conexion; | |
//nos conectamos a la base de datos | |
try { | |
Class.forName("org.postgresql.Driver");//el driver | |
String DIRECCION = "jdbc:postgresql://"+dbhost+":"+dbport +"/"+dbname;//armamos la url | |
//**CREAMOS LA CONECCION PARA LUEGO USARLA EN LA CONSULTA** | |
conexion = DriverManager.getConnection(DIRECCION, usuario, pass); | |
conexion.setAutoCommit(false); | |
} catch (SQLException e) { | |
System.out.println(e.getMessage()); | |
System.exit(0); | |
}catch (ClassNotFoundException e) { | |
System.out.println(e.getMessage()); | |
System.exit(0); | |
} | |
FileOutputStream out = null; //el archivo que vamos a crear | |
try { | |
out = new FileOutputStream("bdatos76-mails.txt"); | |
} | |
catch (FileNotFoundException e) { | |
System.out.println(e.getMessage()); | |
} | |
PrintStream p; | |
p = new PrintStream(out); | |
//realizamos la consulta en la base de datos y a partir del resultado escribimos en el archivo | |
try { | |
//p sirve para imprimir en el archivo... | |
Statement comando = conexion.createStatement(); | |
String sql = "SELECT distinct idCliente, fecha,nombreCLiente,mail FROM boletines order by idCliente"; | |
ResultSet resultado = comando.executeQuery(sql); | |
while(resultado.next()) { | |
//por cada linea escrimos en el archivo | |
p.println("#INICIO MAIL#"); | |
String fecha = resultado.getString("fecha"); | |
String idCliente = resultado.getString("idCliente"); | |
String nombreCliente = resultado.getString("nombreCliente"); | |
String mail = resultado.getString("mail"); | |
p.println(mail); | |
Date d=new Date(); | |
p.println("Fecha: "+ Integer.toString(d.getYear()) + "/" + Integer.toString(d.getMonth()) + "/" Integer.toString(d.getDay())); | |
p.println(""); | |
p.println("Asunto: Novedades en tu sucursal del video club"); | |
p.println("Hola "+nombreCliente+"!"); | |
p.println("Llegaron nuevas peliculas a nuestra sucursal."); | |
p.println("Creemos que las siguientes peliculas te pueden interesar:"); | |
//tenemos que obtener la peliculas en las que aparece el cliente en la lista | |
Statement comando2 = conexion.createStatement(); | |
String sql2 = "SELECT titulo, categorias,actores FROM boletines where idCliente = "+ idCliente +" order by titulo"; //OJO SI 2 PELICULAS TIENEN IGUAL TITULO, VER LETRA | |
ResultSet peliculas = comando2.executeQuery(sql2); | |
while(peliculas.next()) { | |
String titulo = peliculas.getString("titulo"); | |
String categorias = peliculas.getString("categorias"); | |
String actores = peliculas.getString("actores"); | |
p.println(titulo+", las categorias de esta pelicula son: "+categorias+" y los actores que participan en la misma son: "+actores); | |
} | |
//**cerramos el resultado y el comando, como ya ano lo vamos a seguir usando | |
peliculas.close(); | |
comando2.close(); | |
//** | |
p.println(""); | |
p.println("Te esperamos pronto!"); | |
//tenemos que obtener le nombre del encargado de la sucursal a partir del id del cliente en idCliente | |
//primero obtenemos el id de la sucursal en la cual el cliente es socio | |
Statement comando3 = conexion.createStatement(); | |
String sql3 = "SELECT idSucursal FROM clientes where idCliente = "+ idCliente; | |
ResultSet aa = comando3.executeQuery(sql3); | |
String idSucursal = aa.getString("idSucursal"); | |
//** | |
aa.close(); | |
comando3.close(); | |
//** | |
//ahora tenemos que obtener el nombre del encargado | |
Statement comando4 = conexion.createStatement(); | |
String sql4 = "SELECT p.nombre,p.apellido FROM sucursales s,personal p where s.idSucursal = "+ idSucursal + | |
"and p.idPersonal = s.idEncargado and p.idSucursal = s.idSucursal"; | |
ResultSet aa2 = comando3.executeQuery(sql4); | |
String nombreE = aa2.getString("nombre"); | |
String apellidoE = aa2.getString("apellido"); | |
p.println("Saludos "+nombreE+" "+apellidoE); | |
p.println(""); | |
aa2.close(); | |
comando4.close(); | |
//ahora tenemos que poner las fechas minimas y maximas de la tabla boletines... | |
Statement comando5 = conexion.createStatement(); | |
String sql5 = "SELECT min(fecha),max(fecha) FROM boletines"; | |
ResultSet fechas = comando.executeQuery(sql5); | |
String fechamin = fechas.getString("min"); | |
String fechamax = fechas.getString("max"); | |
p.println("(Nota: Los ingresos corresponden al periodo "+fechamin+" a "+fechamax+")"); | |
p.println("#FIN MAIL#");//termina el mail para este cliente, y se empieza para el otro | |
fechas.close(); | |
comando5.close(); | |
} | |
resultado.close(); | |
comando.close(); | |
} | |
catch(Exception e){ | |
e.printStackTrace(); | |
}finally{ | |
try{ | |
//cerramos la coneccion | |
conexion.close(); | |
p.close(); | |
out.close(); | |
}catch (Exception e2){ | |
e2.printStackTrace(); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment