Práctica. Conexión de servicios soap con bases de datos mysql
Enviado por JOB HERNANDEZ GUERRERO • 13 de Junio de 2021 • Práctica o problema • 870 Palabras (4 Páginas) • 210 Visitas
Práctica. Conexión de servicios soap con bases de datos mysql
Profesora: M. en C. Jazmín Rodríguez Flores
Septiembre-diciembre 2020
Nombre alumno: _____________________________________
Fecha: ____________
Objetivo
El alumno realizará un formulario en Java que se conecta a una base de datos en Mysql usando un servicio de tipo SOAP.
Instrucciones: Se utilizará el paquete dado pkgfuncionalidad. Deberá reportar en un pdf su aplicación con el formulario funcionando
PRECONDICIONES
Utilizar el Netbeans 8.2, o Eclipse, mysql.
Desarrollo
El contenido del paquete funcionalidad
[pic 1]
- La clase Conexión permite establecer el driver, la contraseña y el password de la conexión, permitiría conectarse a cualquier base de datos cambiando la URL, y el driver.
- La clase Tester tiene instrucciones de ejemplo de como usar las clases MDB
- La clase MDBExtendido es una extensión de la clase MDB y si se necesitan más métodos se agregan aquí
- La clase MDB permite obtener los metadatos de la bd (los metadatos son los datos de los datos como el nombre de la tabla, el nombre de los campos).
- Crear una aplicación de tipo WEB
[pic 2]
- Poner nombre significativo
[pic 3]
- Seleccionar el servidor de aplicaciones, y terminar. Se recomienda que ejecute la aplicación hasta que vea la página de inicio y verifique que su servidor y proyecto son soportados.
- Deberá buscar la carpeta del proyecto en su disco duro, normalmente en \NetbeansProjects\nombre_Proyecto (WSBD_SOA) después deberá pegar la carpeta de pkgmodelo en la carpeta src\java una vez realizado esto se verá reflejado en el código fuente. También podrá realizarlo desde netbeans al importar archivo.
[pic 4] [pic 5]
- Agregar la librería de netbeans de mysql, o una externa de mysql. Puede usar las tablas que utilizó en la práctica de FACADE_REST.
- Se agrega sobre librerías agregar librería si es la default de netbeans
[pic 6][pic 7]
- jar/folder si es otra versión diferente a la default.
[pic 8]
[pic 9]
- Modificar la clase MDB con sus datos de url, usuario y psw. NOTA: también podría modificar el driver sino usa mysql.
- Modificar la clase tester: el método agregar para verificar que todo funcione bien.
- En mi caso tengo una base de datos bddatos, que tiene una tbusuarios con 5 campos, el primero AUTOINC, VARCHAR, VARCHAR, VARCHAR, ENTERO. Recordar que los autoincrementales no se asignan, los varchar van entre apostrofes y los números no llevan apostrofes.
[pic 10]
- Esa la usaremos en la clase conexión y para probar la conexión con la clase tester. Mi línea modificada queda
jdbc:mysql://localhost:3306/bddatos?
- Se modifica la clase tester para probar el método registrar alta, el mío queda como sigue y mi cadena queda
leyenda= administradorBD.registrarAlta("tbUsuarios", "null, 'Pepe','González','Pérez',1234");
System.out.println(leyenda);
- Con los datos modificados, ya puedo correr esta clase tester. Si todo salió bien manda el mensaje de datos almacenados exitosamente.
run:
Datos almacenados exitosamente.
BUILD SUCCESSFUL (total time: 2 seconds)
- Sino lo hizo bien el programa le devuelve el error así que deberá resolverlo. El mensaje le explica el error. Los más comunes:
Línea de código | Error | Solución |
leyenda= administradorBD.registrarAlta("tbUsuarios", "10, 'Pepe','González','Pérez',123,1234"); | java.sql.SQLException: Column count doesn't match value count at row 1 INSERT INTO tbUsuarios (idtbUsuarios,nombre,apPaterno,apMaterno,codigoAceso) VALUES (10, 'Pepe','González','Pérez',123,1234) BUILD SUCCESSFUL (total time: 3 seconds) | Tiene una columna de más en la línea de código y no existe en la bd |
Sin driver | java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) | Poner driver correcto |
Driver incorrecto de mysql | java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974) | Poner driver de otra versión |
...