Conectar java con sql - consultar datos

Una vez sabemos cómo conectar java con sql server (puedes verlo aquí), seguramente nos interesara realizar una consulta a dicha base de datos, y mostrar los resultados, en este post veremos cómo realizar consultas y actualizar datos.


Realizar consultas al conectar java con sql


Para realizar una consulta sql con java podemos usar el método executeQuery de la clase Statement la cual nos devolverá un ResultSet, que contiene los datos solicitados. Para ello, primero debe crear un objeto de la clase Statement mediante el método createStatement de la clase Connection.

Una vez tengamos los datos deseados en el ResultSet podemos verlos recorriendo este objeto mediante un loop while, llamando al método next nos devuelve la siguiente fila, con el método getString(“columna”), obtenemos el dato de una columna en específico “columna” es el nombre de la columna que deseamos obtener.


Usar parámetros en consulta java sql


En caso de que nuestra consulta requiera de parámetros, por ejemplo nuestra aplicación le pide al usuario un nombre y ese nombre lo buscara en la base de datos y lo mostrara, el nombre que ingrese el usuario será nuestro parámetro y lo representaremos en la consulta con el signo ?, para utilizarlo debemos obtener un objeto PreparedStatement, con el método setString(1, “nombre”) diremos que el primer parámetro tendrá el valor nombre, si tuviéramos 2 parámetros y quisiéramos establecer el segundo solo habría que indicar el número 2 y el valor. 

String SQL = "SELECT * FROM Person WHERE Name = ?";
PreparedStatement pstmt = con.prepareStatement(SQL);
pstmt.setString(1, "Nombre_buscado");
ResultSet rs = pstmt.executeQuery();

Actualizar datos mediante java y sql


Podemos actualizar datos existentes en una base de datos mediante el método executeUpdate de la clase Statement, este método nos devuelve un entero que indica el número de filas actualizadas.

Para actualizar datos podemos utilizar instrucciones como INSERT, UPDATE, DELETE.

String SQL = "INSERT INTO tabla (Col2, Col3) VALUES ('1', 2)";
Statement stmt = con.createStatement();
int count = stmt.executeUpdate(SQL);
System.out.println("filas afectadas: " + count);
stmt.close();

Con esto terminamos por hoy, espero les sea de ayuda.

Comentarios

  1. de nuevo muchas gracias por estos aportes

    ResponderEliminar
  2. public void ejecute(String aux){
    Statement sentencias=null;
    try{
    sentencias = conn1.createStatement();
    sentencias.executeUpdate(aux);
    sentencias.close();
    }catch(SQLException ex){
    ex.printStackTrace();
    }
    }


    public void leersql(String fichero){
    String aux;
    try{
    String cadena;
    aux="";
    FileReader f = new FileReader(fichero);
    BufferedReader b = new BufferedReader(f);
    while((cadena = b.readLine())!=null) {
    if(cadena.startsWith("/*")||cadena.startsWith("--")){
    }else{
    if(!cadena.endsWith(";")){
    aux+=cadena;
    }
    if(cadena.endsWith(";")){
    aux+=cadena;
    ejecute(aux);
    aux="";
    }
    }
    }
    System.out.println("Treminado");
    b.close();
    f.close();
    }
    catch (IOException e){
    System.out.println(e.getStackTrace());
    }
    }

    public void altaReparaciones(){
    String fechaE,fechaS;
    ArrayList matriculas=new ArrayList();
    System.out.print("Fecha de entrada (dd/mm/aa): ");
    fechaE=sc.next();
    System.out.print("Fecha de salida (dd/mm/aa): ");
    fechaS=sc.next();

    System.out.println("Listado de coches:");
    System.out.println("--------------------------");
    try{
    int contador=0,cocheSelec=0,precio,cantidad;
    String SQL = "SELECT * FROM coches",nombre;
    Statement stmt = conn1.createStatement();
    ResultSet rs = stmt.executeQuery(SQL);
    while (rs.next()) {
    contador++;
    matriculas.add(rs.getString("matricula"));
    System.out.println(contador+", "+rs.getString("matricula") + ", " + rs.getString("marca")+", "+rs.getString("modelo"));
    }


    System.out.println("Elige uno de los coches:");
    cocheSelec=sc.nextInt();

    PreparedStatement ps=null;
    ps=conn1.prepareStatement("INSERT INTO `reparaciones` VALUES (NULL,?,?,?)");
    ps.setString(1, fechaE);
    ps.setString(2, fechaS);
    ps.setString(3, matriculas.get(cocheSelec-1));
    ps.executeUpdate();
    ps.close();


    System.out.println("Reparacion dada de alta, inserta los materiales usados");
    System.out.println("-----------------------------------------");
    System.out.print("Nombre:");
    nombre=sc.next();
    System.out.print("Cantidad:");
    cantidad=sc.nextInt();
    System.out.print("Precio:");
    precio=sc.nextInt();

    rs.close();
    stmt.close();

    }catch(Exception e){
    }
    }

    ResponderEliminar

Publicar un comentario

Temas relacionados

Entradas populares de este blog

tkinter Grid

tkinter Canvas

Histogramas OpenCV Python

Python Binance API