Skip to content

Instantly share code, notes, and snippets.

@sjcotto
Created August 15, 2013 01:45
Show Gist options
  • Save sjcotto/6237519 to your computer and use it in GitHub Desktop.
Save sjcotto/6237519 to your computer and use it in GitHub Desktop.
java postgress integration
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