Commit 98df34f3 by Matias Ferreira

agregue detalles a la explicacion en el archivo README y mas interactividad a la…

agregue detalles a la explicacion en el archivo README y mas interactividad a la pantallla en los codigos del Ejercicio003
parent 700af4c6
package com.roshka.jdbc;
import java.sql.*; import java.sql.*;
...@@ -11,17 +10,15 @@ public class Q10 { ...@@ -11,17 +10,15 @@ public class Q10 {
String password = "pqntslc"; String password = "pqntslc";
try { try {
/* QUERY /* QUERY
* select distinct fullname * select distinct fullname
* from ( (enrollments en * from ( (enrollments en
* left join students st) * left join students st)
* on en.student_iid = st.student_iid) as en_st * on en.student_iid = st.student_iid) as en_st
* left join courses co * left join courses co
* on en_st.course_iid = co.course_iid) as en_st_co * on en_st.course_iid = co.course_iid) as en_st_co
* where en_st_co.code = 'a1010'; * where en_st_co.code = 'a1010';
* */ * */
Connection connection = DriverManager.getConnection(url, user,password); Connection connection = DriverManager.getConnection(url, user,password);
System.out.println("estoy conectado a la base de datos");
Statement st = connection.createStatement(); Statement st = connection.createStatement();
String query = "SELECT DISTINCT fullname " String query = "SELECT DISTINCT fullname "
+ "FROM ((enrollments en " + "FROM ((enrollments en "
...@@ -30,8 +27,9 @@ public class Q10 { ...@@ -30,8 +27,9 @@ public class Q10 {
+ "LEFT JOIN courses co " + "LEFT JOIN courses co "
+ "ON en_st.course_iid = co.course_iid) AS en_st_co " + "ON en_st.course_iid = co.course_iid) AS en_st_co "
+ "WHERE en_st_co.code = 'a1010';"; + "WHERE en_st_co.code = 'a1010';";
ResultSet rs = st.executeQuery(query); ResultSet rs = st.executeQuery(query);
System.out.println("Imprimiendo la lista de los alumnos del curso con codigo \'a1010\' ");
while(rs.next() ) { while(rs.next() ) {
String fullname = rs.getString("fullname"); String fullname = rs.getString("fullname");
System.out.println(fullname); System.out.println(fullname);
......
package com.roshka.jdbc;
import java.sql.*; import java.sql.*;
...@@ -11,20 +10,19 @@ public class Q11 { ...@@ -11,20 +10,19 @@ public class Q11 {
String password = "pqntslc"; String password = "pqntslc";
try { try {
/* QUERY /* QUERY
* SELECT name * SELECT name
* FROM courses * FROM courses
* WHERE EXTRACT('week' FROM start_date) * WHERE EXTRACT('week' FROM start_date)
* - EXTRACT('week' FROM CURRENT_DATE) = 1; * - EXTRACT('week' FROM CURRENT_DATE) = 1;
* */ * */
Connection connection = DriverManager.getConnection(url, user,password); Connection connection = DriverManager.getConnection(url, user,password);
System.out.println("estoy conectado a la base de datos");
Statement st = connection.createStatement(); Statement st = connection.createStatement();
String query = "SELECT name " String query = "SELECT name "
+ "FROM courses " + "FROM courses "
+ "WHERE EXTRACT('week' FROM start_date) " + "WHERE EXTRACT('week' FROM start_date) "
+ "- EXTRACT('week' FROM CURRENT_DATE) = 1;"; + "- EXTRACT('week' FROM CURRENT_DATE) = 1;";
System.out.println("A continuacion se lista los cursos que empiezan la semana que viene");
ResultSet rs = st.executeQuery(query); ResultSet rs = st.executeQuery(query);
while(rs.next() ) { while(rs.next() ) {
String name = rs.getString("name"); String name = rs.getString("name");
......
package com.roshka.jdbc;
import java.util.Scanner; import java.util.Scanner;
import java.sql.*; import java.sql.*;
...@@ -21,10 +20,9 @@ public class Q12 { ...@@ -21,10 +20,9 @@ public class Q12 {
* LEFT JOIN students st * LEFT JOIN students st
* ON en_co.student_iid = st.student_iid * ON en_co.student_iid = st.student_iid
* where paid = 'false' and code=codigo; * where paid = 'false' and code=codigo;
* */ * */
Connection connection = DriverManager.getConnection(url, user,password); Connection connection = DriverManager.getConnection(url, user,password);
System.out.println("estoy conectado a la base de datos");
Statement st = connection.createStatement(); Statement st = connection.createStatement();
System.out.println("Ingrese el codigo del curso: "); System.out.println("Ingrese el codigo del curso: ");
codigo = entrada.nextLine(); codigo = entrada.nextLine();
...@@ -35,24 +33,24 @@ public class Q12 { ...@@ -35,24 +33,24 @@ public class Q12 {
+ "LEFT JOIN students st " + "LEFT JOIN students st "
+ "ON en_co.student_iid = st.student_iid " + "ON en_co.student_iid = st.student_iid "
+ "WHERE paid = 'false' AND code='"+codigo+"';"; + "WHERE paid = 'false' AND code='"+codigo+"';";
System.out.println("");
ResultSet rs = st.executeQuery(query); ResultSet rs = st.executeQuery(query);
while(rs.next() ) { while(rs.next() ) {
String paid = rs.getString("paid"); String paid = rs.getString("paid");
String nombre = rs.getString("fullname"); String nombre = rs.getString("fullname");
String enrollment_iid = rs.getString("enrollment_iid"); String enrollment_iid = rs.getString("enrollment_iid");
System.out.println("EL alumno "+nombre+" ya ha pagado? 's' o 'n'"); System.out.println("EL alumno \""+nombre+"\" ya ha pagado? 's' o 'n'");
String respuesta = entrada.next(); String respuesta = entrada.next();
if(respuesta.equals("s") ) { if(respuesta.equals("s") ) {
String update = "UPDATE enrollments " String update = "UPDATE enrollments "
+ "SET paid = 'true', " + "SET paid = 'true', "
+ "payment_date = CURRENT_DATE " + "payment_date = CURRENT_DATE "
+ "WHERE enrollment_iid = '"+enrollment_iid+"';"; + "WHERE enrollment_iid = '"+enrollment_iid+"';";
st.executeUpdate(update); st.executeUpdate(update);
System.out.println("se ha actualizado la base de datos"); System.out.println("se ha actualizado la base de datos");
} }
} }
System.out.println("termino la actualizacion"); System.out.println("termino la actualizacion");
}catch(SQLException e) { }catch(SQLException e) {
e.printStackTrace();; e.printStackTrace();;
......
# Ejercicio de JBDC 001: Sentencias Básicas # Ejercicio de JBDC 001: Sentencias Básicas
para descargar el proyecto se debe ejecutar el siguiente comando para descargar e ingresar a la carpeta del proyecto se debe ejecutar el siguiente comando
``` ```
git clone https://phoebe.roshka.com/gitlab/mferreira/jdbc-e001.git git clone https://phoebe.roshka.com/gitlab/mferreira/jdbc-e001.git
cd ./jdbc-e001/
``` ```
Para poder probar el funcionamiento de las clases Q10, Q11 y Q12 debe abrir el proyeto JDBC-e001 y cambiar la ubacion del driver de jdbc para postgres al que usted tiene en su maquina. Eso se hace en el archivo .classpath en la linea 5. Para probar el funcionamiento de las clases del ejercicio 3 se debe compilar y ejecutar los binarios de la siguiente manera:
* Primero compilar las clases del ejercicio.
<classpathentry king="lib" path="ruta/de/tu/driver/jdbc/driver-jdbc.jar"> ```
javac ./Ejercicio003/Q1{0,1,2}.java
Si no tiene ningun driver de jdbc para postgres en su maquina, puede descargarlo desde [aqui](https://jdbc.postgresql.org/download.html 'driver jdbc postgres'). ```
* Luego se ejecuta el binario de la clase que se quiere probar, en este ejemplo sera Q10.
```
java -cp "/ruta/del/driver/jdbc/diver-jdbc-postgres:./Ejercicio003/" Q10
```
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment