Mantenimiento de una tabla en Oracle con Java y JSP – 12/15 – Crear un PreparedStatement con parametros.

Capa BD
01. Crear una BD en Oracle.
02. Crear una Tabla con clave primaria.
03. Crear un secuenciador.
04. Implementar sentencias para mantenimiento de la tabla.
05. Crear un package en la BD.
06. Crear un SP con un cursor como parametro de salida.
07. Crear un SP para devolver nombres similares de un campo.

Applicacion Web
08. Crear Un proyecto Web en Java.

Capa modelo
09. Crear Una clase Entidad (una clase simple).
10. Obtener una Conexión hacia la BD.
11. Crear un Statement simple.
12. Crear un PreparedStatement con parametros.
13. Crear un CallableStatement con un cursor como parametro de salida.

Capa Controlador
14. Crear un Servlet Controlador.

Capa Vista
15. Crear una pagina JSP con un formulario.

Anexos
01. Cadena de conexión.
02. Interface connection.
03. Clase OracleDataSource.
04. SQLException.
05. try – catch.
06. RequestDispatcher.

Crear un PreparedStatement con parametros

Preparación:


Debemos tener el usuario y la clave para acceder a SQL Developer o a SQL Plus.

Como se hace


Creremos un nuevo método en Linea.java.

public void buscarxDescripcionExacta() {
         Connection conn;
         PreparedStatement pstmt;
         ResultSet rset;
        try {

            // Crea un OracleDataSource y coloca el URL
            OracleDataSource ods = new OracleDataSource();
            ods.setUser("SYSTEM");
            ods.setPassword("g12345");
            ods.setURL("jdbc:oracle:thin:@//masterpc:1521/Quadro");//OK

            System.out.print("Conectando a la database...");
            System.out.println("Conectando...");
            conn = ods.getConnection();
            System.out.println("conectado.");
            // Crea un prepareStatementstatement
            // el parametro se indica por un ?
            pstmt = conn.prepareStatement("Select * from Linea WHERE descripcion = ? ");
            //Asignamos un valor al parametro
            //set<tipo>(indiceParametro,Valor);
            //Colocar el String dentro de la sentencia prepareStatement
            pstmt.setString(1, "Gasas");

           rset = pstmt.executeQuery();
           while (rset.next()) {
                System.out.print(rset.getInt(1) + "|");
                System.out.print(rset.getString(2) + "|");
                System.out.println(rset.getInt(3));
           }

            // cerrar el resultSet
            rset.close();
            // Cerrar el preparedStatement
            pstmt.close();
            // Cerrar la conexión
            conn.close();

        } catch (SQLException e) {
            // Chequeo y retorno de un error de conexión o un error SQL
            if (e.getSQLState() == null) {
                System.out.println(
                        new SQLException("Error de conexión el cliente Oracle Thin.",
                        "ORA-" + e.getErrorCode()
                        + ": Argumento incorrectos en el cliente thin:nn", e.getErrorCode()).getSQLState());

            } else {
                System.out.println(e.getMessage());

            }
        }
        finally {
                 //block finally usado para cerrar recursos
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException se) {
                se.printStackTrace();
            }//fin finally try
        }
    }

Como funciona :


Creamos la sentencia SQL y en cada lugar en donde deseamos poner valores variables, colocamos un signo de cierre de interrogacion : “?”. En el ejemplo queremos obtener un registro donde el campo Descripcion coincida con un valor variable que le demos. Para hacerlo colocaremos “?” quedando la sentencia como : “where Descripcion = ?” .
A continuacion para asignar valores a los parametros de entrada del PreparedStatement, debemos usar los metodos setXXX(indice) como: setInt(indice), setString(indice), etc. Donde indice es la posicion del simbolo ? en la sentencia SQL, comenzando en 1 por la izquierda .
En este ejemplo debemos usar el tipo String para que pueda ser usado por la instruccion “where Descripcion =” , esto se hace con el metodo setString(indice,Valor) .
Luego se ejecuta la consulta preparada con executeQuery() y el set de resultados lo asignamos al objeto rset de tipo ResultSet.
Procedemos de la misma forma que con el ResultSet de la consulta simple e iteramos sobre el set de resultado aunque sabemos que debe constar de solo un registro.

Ver tambien


Tecnologías de Servidor con Java: Servlets, Javabeans, JSP, Angel Esteban, Acceso a datos desde JSP II.

Java Data Access—JDBC, JNDI, and JAXP, Todd M. Thomas, Chapter 5: Building JDBC Statements.

Anuncios

Un comentario en “Mantenimiento de una tabla en Oracle con Java y JSP – 12/15 – Crear un PreparedStatement con parametros.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s