Competencia: Gestion en TI
Curso:Desarrollo cliente servidor
Actividad: Ejercicio 2 de Evaluacion.
Diseñar e implementar una aplicación que permita guardar, en una base de datos, los autos de
una persona, con el fin de llevar un registro de los autos que posee cierta persona sabiendo su rut.
una persona, con el fin de llevar un registro de los autos que posee cierta persona sabiendo su rut.
Este nivel de programacion implementa los conocimientos adquiridos en el primer semestre, ya que mezcla el ramo de programacion I en java con Base de Datos (mysql).
Esta aplicacion seria un ejemplo de los grandes programas los cuales son utilizados tanto el registro civil, asi como tambien las grandes empresas.
Esta aplicacion puede ser llevada a modo de prueba a pequeños negocios, y o arriendo de vehiculos, asiendole las modificaciones pertinentes, para que se ajusten a la necesidad de cada ususario.
Descripcion del programa.
El programa le muestra al ususario las personas que existen en la base de datos, con su rut y edad. Este debe ingresar el rut de la persona a la que le decea añadir un vehiculo, si ingresa bien el rut le pedira los datos del vehiculo y los ingresara a la base de datos, si no, le dara una segunda oportunidad de volver a ingresar el rut. Al final le preguntara si decea volver a ingresar mas vehiculos de ser la respuesta negativa finalizara el programa.
Ejemplos
Al ingresar el rut
11.
<Egrgrgt>
→ <proceso> → <El rut no se encuentra desea volver
a intentar>
22.
<???.> <proceso> → <El
rut no se encuentra desea volver a intentar>
33.
<……> → <proceso> → <El rut no se encuentra desea volver
a intentar>
Analisis y solucion
El problema planteado
constaba de una serie de pasos que se debían cumplir para llegar a una solución
concreta, a continuación se analizaran los principales pasos o pedazos de
códigos fundamentales para la ejecución del programa
.
(fig.1)
Como
muestra la fig.1 establecemos la conexión, luego creamos el TreeSeet llamado
tabla.
Realizamos
la consulta a la base de datos para que nos
entregue todos los atributos que se encuentran en nuestra tabla llamada
personas.
Los
datos que nos entrega la consulta son guardados en el TreeSeet, para luego ser
mostrados por pantalla.
En
la fig.2 verificamos si el rut se encuentra en el TreeSet, si se encuentra verificar
tomara un valor boolean =true por lo que prosigue el código, si no se le envía
un mensaje al usuario de que se equivoco al ingresar el rut y se le consulta si
quiere seguir intentándolo.
Pedimos
al usuario los datos del vehículo, y los guardamos en un array creado y llamado
obj., como muestra la fig.10
(Fig.4)
Diseñamos la sentencia de
ingresa y recorremos el arrayList, para obtener los datos guardados
anteriormente, los que son enviados a
las posiciones espectivas, el primer signo de interrogación será la
primera posición, con lo que el dato que se pide con getPatente ira allí.
Codigo fuente.
String rut_propietario;
String patente;
String marca;
String año;
String modelo;
DatosAutos obj;
String res;
String res2;
boolean verificar;
boolean masPersonas=true;
boolean oportunidad=true;
conexion conMysql = new
conexion();
TreeSet tabla = new TreeSet();
Scanner Leer = new Scanner(System.in);
try{
Statement s =
conMysql.getConexionMysql().createStatement();
ResultSet rs = s.executeQuery("select
* from persona");
//guardamos en un
treset la tabla he imprimimos la tabla.
System.out.println("rut |
nombre | edad " );
while (rs.next())
{
tabla.add(rs.getString(1));
tabla.add(rs.getString(2));
tabla.add(rs.getString(3));
System.out.println(rs.getString(1)+ " " +rs.getString(2)+" "+rs.getString(3));
}
/*iniciamos un while el cual nos
ayudara a
revertir un posible error que halla al
ingreso del rut */
while(oportunidad==true){
//pedimos el rut de la persona
a la que quiere ponerle el nombre.
System.out.println("ingrese el rut de la persona a la que le desea
agregar un vehiculo");
rut_propietario=Leer.nextLine();
/*revisamos si se encuentra el
rut ingresado por el ususario en el TreeSet*/
verificar =
tabla.contains(rut_propietario);
//si se encuentra el rut continua con
el codigo
if(verificar==true){
System.out.println("el
rut fue bien ingresado");
while(masPersonas){ //while para que si el usuario desea igresar ma
autos a la persona
System.out.println("ingrese la Patente: Patron =(AB-CD-13");
patente=Leer.nextLine();
System.out.println("Ingrese Marca del vehiculo");
marca=Leer.nextLine();
System.out.println("ingrese modelo del vehiculo");
modelo=Leer.nextLine();
System.out.println("ingrese
año del vehiculo");
año=Leer.nextLine();
List<DatosAutos>DatosAutos = new ArrayList<DatosAutos>();
obj= new DatosAutos(patente,
marca, modelo, año, rut_propietario);
DatosAutos.add(obj);
/*luego que se guardan los
datos del vehiculos en el
* arrayList se le pregunta
al usuario si desea ingresar
* mas vehiculos al mismo
rut.*/
System.out.println("desea volver ingresar otro vehiculo:
s/n");
res=Leer.nextLine();
if(res.equalsIgnoreCase("s"))
{ masPersonas =true;}
/*si decea ingresar
mas automoviles*/
else{ masPersonas = false;
try{
//Crreamos la sentencias para hacer la insercion.
String sql =
"insert into vehiculo values(?, ?,
?, ?, ?)";
PreparedStatement ps =
conMysql.getConexionMysql().prepareStatement(sql);
/*Con Preparestetment
hace que la sentencia sea un poco mas ordenada,
*ya que cada signo de interrogacion
es unaposicion que luego es ocupada
*por un dato leido del arrayList*/
/*con el for hacemos la lectura del
array list, para pedir los datos
de la clase DatosAutos*/
for
(int i = 0; i < DatosAutos.size(); i++)
{
DatosAutos Datos =
DatosAutos.get(i);
ps.setString(1,
Datos.getPatente().trim());
ps.setString(2,
Datos.getMarca().trim());
ps.setString(3,
Datos.getModelo().trim());
ps.setString(4,
Datos.getYear().trim());
ps.setString(5,
Datos.getRutPropietario().trim());
ps.executeUpdate();
/*ejecutamos la sentencia, para
que quede libre para ingresarle
* nuevos datos.*/
}
System.out.println("Los datos
del vehiculo se han ingresado");
System.out.println("satisfactoriamente");
System.out.println("****congratulation****");
}
catch(SQLException e)
{
System.out.println("error al
ingresar los vehiculos");
System.out.println("***FAIL***");
}
finally {
conMysql.closeConexionMysql();
System.out.println("Aplicacion finalizada");
}
}
}
}
/*En el caso de que el
usuario se equivocara o no ingresara
* un rut que no se encuentra
en la tabla.*/
else{
System.out.println("el rut
que acaba de ingresar no se encuentra, desea volver a intentar: s/n");
res2 =Leer.nextLine();
if(res2.equalsIgnoreCase("s")) //si desea
volver a intentarlo digitara "s" y volvera al inicio
{ oportunidad=true;}
else
//si responde "n"
terminara el programa.
{oportunidad=false;
System.out.println("Programa terminado");
}
}
}
}
/*Si exciste un error en la conexion
con la base de datos sera
detectada por la siguiente
excedpcion*/
catch (SQLException e)
{
System.out.println("Error en la
consulta a la Base de Datos: " + e.getMessage());
}
finally
{
conMysql.closeConexionMysql();
}
}
}
Programa en ejecucion
Conclusion.
El programa realizado anteriormente fue parte de una prueba, por lo qu presenta un gran grado de presiciony anti errores en el codigo fuente, por lo mismo el progra puede ser utilizado como modo de prueba para diferentes sectores del mercado.
No hay comentarios:
Publicar un comentario