Tutorial Java – Creando el Test de Conexión a la BD # 1


Ejemplo de Inserción de un registro.

 
Tutorial Java

Cómo lo hacen en Java

En éste Tutorial de Java aprenderás porque ésto es importante, y cómo esto te puede ahorrar muchos dolores de cabeza.
 

 

Lo que recomiendo siempre en las lecciones que doy a mis alumnos es que se acostumbren a realizar métodos de tests de conexión a la base de datos, y que en estos métodos incluyan siempre las sentencias SQLs que más adelante irán a utilizar en la capa de presentación, que en este caso será Java/Swing, pero da lo mismo para las aplicaciones WEB.

Muchos simplemente no quieren hacerlo, otros reclaman que hacer eso es perder tiempo, que para que hacer algo si despues en la capa de presentación lo volverán a repetir, otros dicen que no es necesario, por que están seguros que van a escribir bien las sentencias SQLs., pero bueno ya el tiempo les enseñará que no se trata de eso…

Lo cierto es que el hecho de realizar clases de testes ayuda a resolver rápidamente problemas con la base de datos , sin mezclarlos con problemas de presentación ya que cuando exista algún problema uno puede aislar la situación en dos capas. También es útil para la fase de mantenimiento ya que cuando ocurra situaciones inesperadas uno puede volver a ejecutar los tests para corroborar que el problema no es en la BD o efectivamente corregirlos donde sea que esté el problema.

En ésta etapa del tutorial de java, lo que te enseñaré es a crear clases de testes para probar cómo los sentencias SQLs deben ser enviadas al servidor de base de datos, ésto a su vez te dará conocimiento más profundo de cómo utilizar la API ControladorBD, ya que verás realmente cómo ésta API funciona.

Pasos para crear un proyecto de Teste.

En los pasos que expongo a continuación te explico como crear un proyecto nuevo para nuestra clase de teste:

  1. Dentro del Eclipse, crear un nuevo “Proyecto Java” y llamarlo “CONTROLADOR_BD_TESTE”
  2. Dentro del proyecto recientemente creado, crear una carpeta fuente y llamarlo “src”.
  3. Crear un paquete dentro de la carpeta fuente y llamarlo de “com.teste”
  4. Crear una carpeta “lib” dentro del proyecto.
  5. Agregar dentro de la carpeta “lib” el archivo controlador-bd-1.x.jar y el archivo mysql-connector-java-3.1.10-bin.jar
  6. Adicionar al classpath del proyecto las dos librerias .jar copiadas en el punto anterior, para ello debes marcar las dos librerías, presionas clic derecho sobre ellas y luego selecciona la opción “Vía de Acceso de Construcción/Añadir a la Vía de Acceso de Construcción”

Nota: utiliza los nombres de proyecto, paquetes, carpetas, clases, etc. tal cual te muestro, ya sabes que soy muy crítico en cuanto a nomenclatura de artefactos y convención de nombres en Java.

A continuación te muestro la estructura de carpetas del proyecto de teste, capturado del eclipse que yo ya lo realicé.

Seguidamente nos faltará configurar los datos para la conexión a la BD.

Archivo de configuración de conexión

La configuración de la API ControladorBD debe apuntar a la Base de datos Biblioteca, ésto se realiza mediante un archivo de propiedades, el cual debe tener el nombre de controlador-bd.properties y debe estar dentro de la carpeta raíz de las clases, carpeta “src”

Como puedes ver la configuración indica que la conexión se va realizar en la máquina local sobre la base de datos biblioteca. Los valores que pueden contener este archivo fue explicado en el artículo anterior.

Con ésto que te mostré hasta aquí, ya tienes configurado el proyecto, tienes vinculado la API ControladorBD así como también el Conector de la base de datos(Driver jdbc del mysql).

Ten en cuenta que debes seguir estos mismos pasos iniciales para configurar cualquier otro proyecto o aplicación que vayas a crear, los pasos son los mismos.

Creación de la Clase de Teste

En la figura que muestra la estructura de las clases, puedes notar que existe una clase llamada ControladorBDTeste.java, así que crea esta clase como una clase java normal.

En la figura de abajo puedes ver la clase implementada, con un método que inserta un registro en la tabla libro.

Lo primero que hago en  es almacenar la sentencia SQL de inserción en una variable del tipo String, llamada sql. Te recuerdo que esta sentencia debe ser un comando sql válido para tu servidor, es decir una sentencia que el MySQL pueda interpretar.

En el ejemplo, la sentencia a ser enviada al MySQL, en una única instrucción es:

INSERT INTO libros (lib_descripcion, lib_cantidad, lib_edicion, lib_observacion) VALUES (‘Libro de Java’, 10, 8, ‘Para estudiantes y profesionales’);

En la sentencia INSERT no necesitas pasarle el campo lib_codigo ni tampoco el valor ya que en la definicion de la estructura de la tabla libros, te indiqué para que a éste campo “lib_codigo” le configures como AUTO_INCREMENT, tal es así que el mismo campo genera un código para si mismo.

En cuanto a los valores pasados luego de la palabra VALUES recuerda siempre escribir entre comillas simples los caracteres alfanuméricos, en el ejemplo la palabra ‘Libro de Java’ y ‘Para estudiantes y profesionales’ estan encerradas entre comillas simples.

En agrego al ControladorBD la sentencia, que ahora está en la variable sql, pero la sentencia queda en la cola de ejecución, sin ejecutarse aún en el servidor, esta forma de ir agregando sentencias SQLs a la cola es muy útil para cuando enviemos varios sentencias al servidor y deseamos que la misma se ejecute en una única transacción, algo que ya te estaré explicando más adelante.

Y para terminar, en  mando ejecutar las sentencias ya en el servidor, con el método execute() del Controlador BD.

Ahora tu manda correr la clase, como aplicación java y observa que aparece en la consola, para ello vé al menú Ejecutar/Ejecutar como…/Aplicacion Java.

He aquí el resultado.

En la vista Consola, puedes observar la consecución de sentencias ejecutados en el servidor, en la línea 2 aparece un mensaje de que la conexión a la base de datos se realizó con éxito.

Posteriormente en la línea 4 muestra la sentencia sql ejecutada y ésta sentencia está encerrada entre un begin transaction (antes) y un commit (despues), nóta que caso hubiera ocurrido algún error por si la sentencia sql fuera escrita de forma incorrecta o por colocar mal el nombre de un campo, al final al envéz de ejecutarse el commit se ejecutaría el rollback cancelando así la transacción. (Tu puedes probarlo para ver que ocurre)

En cuanto a la información del log, la API Controlador BD siempre muestra primero la fecha de ejecución, seguido de la hora, minuto y segundo, a continuación el campo que aparece con @… es el ID de la conexión con la cual se ejecutaron las sentencias, ésto es importante ya que más adelante te mostraré otro caso en la cual se utiliza más de una conexión al mismo tiempo.

Conclusión

Me da gusto saber que hayas terminado tu primera implementación de código java con acceso a una Base de datos.

Aunque aún no hemos realizado la interfase grafica en swing, sentíte contento ya que eso es solo un paso más, porque lo más complejo y abrumador suele ser ésta parte del trabajo.

Con éste artículo pudiste comprobar cómo es sencillo y rápido trabajar con Base de Datos en Java, talvés todavía tengas algunas interrogantes en la mente pero en los siguientes artículos te estaré explicando otros ejemplos con más funcionalidades.

Mediante el uso de la API ControladorBD te evitaste la compleja tarea de escribir el código para la conexión a la base de datos, logs, control de errores, etc., etc., etc. ya que esta se realiza automáticamente antes de ejecutar las sentencias sql.

Tal vez si eres un desarrollador que está empezando con Java no sentiste tanto la diferencia, pero se perfectamente que si éres un programador que ya estaba programando con JDBC encontraste aquí una forma diferente y mejorada de crear aplicaciones.

Si tienes otros compañeros, amigos desarrolladores o un profesor en tu universidad, muestrale éste artículo, cuentale que la librería es totalmente libre, no tiene costo, que tienes el código fuente y que a partir de ahora quieres desarrollar tus programas de esta forma.

Dejo bien claro que no desprecio para nada la API de JDBC, si no fuera por ella nada funcionaría pues es la base para todos los demás frameworks de persistencia creados, yo mismo lo utilizo dentro de la API ControladorBD, si abres el código fuente lo podrás ver.

Simplemente tengo la idea que los desarrolladores debemos ser más prácticos, basarnos en lograr objetivos y obtener rápidos resultados de nuestro tiempo invertido, así si para aplicaciones empresariales utilizamos hibernate+ejb, por que no utilizar la API ControladorBD para aplicaciones de escritorio o servlets.

Descarga (Download)

La API ControladorBD-1.x.jar lo vas a encontrar al final de ésta entrada.

También te paso la dirección para bajar el driver de MySQL que yo utilizo.

Acceso a todo el tutorial

Esta entrada forma parte de un tutorial de java que estoy desarrollando, para ver indice de contenido presiona aquí

Hasta la proxima…!!!

Uno de los puntos curciales que ayudan al Desarrollo Rápido de Aplicaciones no sólo en Java sino en cualquier otro lenguaje es crear clases de Tests en diferentes niveles. 

Esta entrada fue publicada en Uncategorized y etiquetada , , , , , , , , . Guarda el enlace permanente.

101 respuestas a Tutorial Java – Creando el Test de Conexión a la BD # 1

  1. Tavo Leyva dijo:

    Hola de nuevo!

    Empecé a seguir el tutorial y empezando tuve ciertas dificultades, como trabajo desde Netbeans me aparecieron ciertos errores y pense, “posiblemente sea el IDE” entonces emigre a Eclipse y continúe con los errores!, me aparecia

    Exception in thread “main” java.lang.ClassNotFoundException: org/gjt/mm/mysql/Driver

    Modifique el classpath, realice ciertas operaciones hasta que por último me dio por descomprimir el archivo .jar lo puse en los paquetes que correspondían y donde se le asigna la url, user y pass lo hice de forma directa, es decir de donde se asignan el archivo propierties lo hice directamente sobre la clase y funciono!

    No sé porque tenía el error, pero no iba a dejar que me ganará, se que tendría que funcionar con el archivo .jar (por cierto excelente funcionamiento), pero hice correr el ejemplo! y lo hice desde Netbeans.

    Saludos!
    Tavo.

    • Marcos Jara dijo:

      jeje, persevera y vencerás verdad??

      Bueno Tavo, el Controlador funciona perfectamente desde el jar, tanto
      en Eclipse como en NetBeans 100% (Lo he probado).
      No hace falta descomprimir nada.

      Ahora, existen ciertas condiciones que se tienen que dar para
      que eso funcione como tal, como ser:

      – Ubicación correcta del archivo properties, en el paquete por defecto.
      – Agregar al Classpath (Añadir a la via de construcción) el controladorBD.jar
      – Agregar al Classpath (Añadir a la via de construcción) el Conector o Driver Mysql

      Esta excepción
      Exception in thread “main” java.lang.ClassNotFoundException: org/gjt/mm/mysql/Driver

      es por que talvez no hayas incluido en tu proyecto el conector
      o driver del mysql (Archivo Jar)

      Desafio: A ver entonces si consigues hacer funcionar sin descomprimir y sin colocar
      valores fijos para la conexion.

      Un Abrazo.

  2. Ivan Grandi dijo:

    Buenas, vuelvo a repetir me encanto la web, y en muy pocas horas pude conectarme a una base de datos y usar el VisualEditor, y de esa manera puedo empezar a practicar con proyectos mas completos, debido a que hace un año que damos java en la facu, pero todavía no dimos BD ni awt ni nada de eso.

    Lo que si no pude acceder a los puntos:
    Creando el Test de Conexion # 3 (Uso de Variables en sentencias SQL)
    Creando el Test de Conexion # 4 (Haciendo Consultas a la Base de Datos)

    A lo mejor sea porque todavía no los creaste, si tenes algo mas para leer o que creas que me sirva me viene bárbaro.

    Gracias !

    • Ivan Grandi dijo:

      Ahi me puse a buscar y estaba subido xD, fíjate cuando puedas arregla los links a si no le pasa lo mismo a los demás.

      Hasta luego !

    • Marcos Jara dijo:

      Muchas gracias por avisar Ivan.

      Ya esta corregido el link de las clases de tests 2, 3 y 4,

      Ya hiciste los ejercicios que muestro con los videos tutoriales.??

      Cordiales saludos

  3. Ivan Grandi dijo:

    Gracias a vos por corregirlos =)

    Todavía no porque me tuve que ir a trabajar, pero ahora me voy a poner con la clase test 2 y de ahí le doy para adelante con todo lo que encuentre🙂.

    Bueno si se puede ayudar con algo decime, con el controlador que te armaste para armar la base de datos ya te debo una jaja, es buenísimo, ahora cuando terminen las vacas y empiece la facu le voy a mostrar la web a un par de amigos que seguro les copa. Porque la mayoría andaba buscando webs con tutos, pero u están en ingles o no están tan bien explicadas como acá.

    Nos vemos y suerte !

  4. sergio dijo:

    Excelente, me funcionó a la perfección =D

    solo que en la imagen que mostras el ejemplo está mal el nombre de donde llamamos a paquete, debería de ser “import com.tutorialjava.bd.ControladorBD;”

    saludos – suerte!

    • Roberto dijo:

      Estas en lo correcto Sergio, a mi me marcaba error al momneto de importar el com.progress y no le encontraba la solucion pero tu post me ayudo!!

      Saludos:!!!!!

  5. Adrian dijo:

    Ahora funciona perfectamente, me habia liado con uno de los campos de la tabla.

    Muchas gracias.

  6. Nicolas dijo:

    Hola Marcos,

    te hago la siguiente consulta estuve siguiendo tus pasos para la creacion de una BD, pero a la hora de ejecutarlo me devuelve el siguiente error:

    Exception in thread “main” java.sql.SQLException: No suitable driver found for jdbc:mysql:http://localhost/phpmyadmin/db_structure.php?db=biblioteca&token=0899304c15a969fa36f18e1475b10177
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.tutorialjava.bd.DatabaseODBC.conectar(DatabaseODBC.java:26)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:43)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:15)

    Tengo intalado Xampp 2.5 , Java 1.6 , y he descargado el driver de MySql con version 5.1.15 .

    Cual podria ser el error de compatibilidad? intente buscar el ConectorBD mas actualizado posible pero no pude encontrar nada…

    Espero puedas ayudarme,
    Muchas Gracias!

    Nicolas!

    • Marcos Jara dijo:

      Hola Nicolas

      Bueno, segun lo que se puede ver a simple vista, el nombre de tu conexion esta mal en el archivo properties de configuracion.

      Si me copias el codigo de dicho archivo, asi te digo si esta bien o si le falta algo..?

      Saludos

      • Norma dijo:

        Hola Marcos:
        Buenas tardes, espero se encuentre bien, mi pregunta es la siguiente, yo tengo un problema similar al de Nicolas, tengo instalado el xampp ver. 2.5 y estoy utilizando el eclipse helios, estoy siguiendo tus excelentes videos que me estan sirviendo de maravilla, solo que me esta marcando el siguiente error:
        –>jdbc:mysql://localhost/clientes – root –
        java.sql.SQLException: Unknown database ‘clientes’

        mi controlador-db.properties es el siguiente:
        # Comunicacion con MySQL
        url=jdbc:mysql://localhost/clientes
        usuario=root
        password=
        driver=org.gjt.mm.mysql.Driver

        ya le estuve buscando y no encuentro el error, me podria ayudar porfavor, muchisisimas gracias, que tenga un excelente dìa.
        Saludos.

      • Marcos Jara dijo:

        Hola Norma,

        No es problema del XAMP,

        Dime, como se llama tu Base de datos, por que en el properties le has colocado clientes

        Verifica y avisame si.

        Saludos

  7. Norma dijo:

    Hola buenas noches:
    De verdad mis respetos hacia usted por la atenciòn tan rapida que nos da, mis felicitaciones, bueno volviendo a lo de la base de datos mi tabla fue creada en el xampp en la base de datos mysql.
    Saludos

  8. Norma dijo:

    Perdon mi tabla clientes fue creada en el xampp con la base de datos mysql

    • Marcos Jara dijo:

      Lo que debes de colocar en el controlador-bd.properties es el nombre de la Base de Datos Norma, no el nombre de la Tabla.

      Ese debe ser el problema,

      Saludos.

      • Norma dijo:

        Hola Sr. Marcos:
        Efectivamente!!!! Muchisisisisimas gracias!!!! se lo agradezco de corazon ya funciono, continuare realizando los ejercicios de su tutorial, de nuevo, gracias.
        Que tenga un excelente dia🙂
        Saludos.

  9. Gilberto dijo:

    Que tal Marcos, para empezar excelente blog de verdad, muy detallado te felicito, bueno en cuanto a la practica tuve un leve problema al momento de ejecutar la clase, por algun motivo no me esta creando la conexion,
    Estoy utilizando windows 7 de 64 bits, no se si mi problema tenga que ver con eso, te agradeceria muchisimo pudieras ayudarme,
    me aparece el siguiente error:

    –>jdbc:mysql://localhost/biblioteca – root – simple4u
    Exception in thread “main” java.sql.SQLException: Access denied for user ‘root’@’localhost’ (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:935)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4101)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1300)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2337)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154)
    at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:792)
    at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.tutorialjava.bd.DatabaseODBC.conectar(DatabaseODBC.java:26)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:43)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:15)
    De ante mano gracias!! y saludos!

    • Marcos Jara dijo:

      Hola Gilberto,

      El error que te da es por que el usuario y clave no coinciden con el del Servidor MySQL, veo que estas utilizando simple4u como clave.

      Debe ser la misma que asignaste en el momento de la instalación.

      Saludos.

      • Gilberto dijo:

        Hola de nuevo Marcos y disculpa de nuevo las molestias, lo que pasa es que la clave con la que acceso yo a mi base de datos es esa misma “simple4u” y me sigue apareciendo el mismo error que mande la vez pasada, pense que podria ser por privilegios pero ps es usuario root y tiene todos los permisos, espero de verdad me pudieras ayudar para seguir avanzando con tu excelente curso.

        Saludos y de antemano gracias!

      • Gilberto dijo:

        Que tal Marco solo para comentarte que ya encontré el error, el problema era que en la parte de las propiedades del proyecto en el “Java Build Path” en la pestaña de order and export no estaba incluyendo tanto el controlador-bd como el mysql-connector, agradezco mucho tu atención y continuaré con el curso.

        Saludos!!

  10. Damian Kleiman dijo:

    Hola prof. Marcos!
    Estoy leyendo tus tutoriales y los encuentro muy buenos, simplemente te queria comentar que encontre un errorcito en una imagen, es la “tutorial_java_estructura_proyecto_teste.jpg” en la misma se lee como nombre del proyecto “CONTROLDOR_BD_TESTE” y (creo) deberia ser “CONTROLADOR_BD_TESTE” (falta una “A”)???.
    Espero que no te moleste que te haya mostrado este minusculo detalle, pero creo puede confundir a alguno.
    Aprovecho para agradecerte por los tutoriales y felicitarte, estan geniales.
    Un cordial saludo,
    Damian

    • Marcos Jara dijo:

      Hola Damian

      Al contrario, gracias por la crítica constructiva.

      La mayoría de la gente no se dá cuenta de esos detalles y los que sí se dán cuenta no lo reportan, por eso mis sinceros agradecimientos.

      Lo voy a revisar.

      Saludos

      • Damian Kleiman dijo:

        Hola Profesor! Realmente me estan sirviendo muchisimo sus tutoriales, le agradezco muchisimo por el curso, y en cuanto a los detalles, si, soy muy detallista🙂. Estoy aprendiendo Java con el Eclipse Helios y sinceramente creo que no se si lo lograria sin sus tutoriales.
        Saludos,
        Damian

  11. Fidias dijo:

    Buenas tardes Marcos
    de ante mano te doy las gracias por este tutorial que me esta sirviendo de mucho en mis estudios.
    la presente es para comentarte que me esta enviando un error cuando ejecuto la class de java la del test 1, la verda soy nuevo en esto de java y te agradeceria que me colaboraras con esto:
    lo primero es cuando boy a importar la clase com.progress.bd.controladorBD; la palabra progress aparece subrayada en rojo y eclipse me recomienda com.tutorialjava.bd.ControladorBD
    la verda como apenas estoy aprendiendo java no se si son las misma bueno, depues ingreso el codigo que tu dejas en las imagenes y ejecuto la clase y aparece este error en consola

    Exception in thread “main” java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:16)
    De verda muchas gracias por compartir tus conocimientos

    • Marcos Jara dijo:

      Hola Fidias,

      Elimina el import que hace com.progress.bd.controladorBD

      Y agrega la del paquete com.tutorialjava.bd.ControladorBD que esa es la correcta.

      Había cambiado el paquete en el JAR del controlador, pero ya no corregi las imágenes

      Saludos

  12. Osvaldo Rivas dijo:

    Marcos, excelente tu blog; muy explícito. Te quiero dejar el siguiente mensaje de error que me da cuando quiero correr mi programa:

    Exception in thread “main” java.lang.UnsupportedClassVersionError: Bad version number in .class file

    Agradezco desde ya tu ayuda

    • Marcos Jara dijo:

      Hola Osvaldo

      Sólo tienes que volver a re-compilar tus clases, esa es una opción que tienes.

      Otra cosa, puede que tu eclipse esté configurado para trabajar con el compilador 1.4, la versión antigua.

      Debes establecerla a la 5.0 o 6.0, que es la version con la cual está compilada la clase ControladorBD.

      Eso puedes cambiarlo desde las propiedades del proyecto, menu Compilador.

      Avisame si no te funciona o enviame el log del error para ayudarte.

      Saludos y suerte.

      • Osvaldo Rivas dijo:

        Estabas en lo correcto, tenia instalado EasyEclipse, cambié la versión del compilador en la propiedades y se solucionó este problema. Ahora tengo la siguiente excepción;

        Exception in thread “main” java.util.MissingResourceException: Can’t find bundle for base name controlador-bd, locale es_PY
        at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)
        at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)
        at java.util.ResourceBundle.getBundle(ResourceBundle.java:705)
        at com.properties.util.LeePropiertes.leeID(LeePropiertes.java:10)
        at com.tutorialjava.bd.ControladorBD.(ControladorBD.java:33)
        at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:42)
        at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
        at com.spadons.sgci.Sgci.main(Sgci.java:19)

        Gracias de antemano.

      • Marcos Jara dijo:

        Bueno

        Esto ya lo habia respondido, ahora no recuerdo si era en este mismo post.

        Eso es simplemente por que el archivo de recursos (.properties) no se encuentra en la ubicacion que debe estar o no esta con el nombre que tiene que ser.

        Verifica y avisame si no te funciona

        Saludos

  13. Miguel dijo:

    hola marcos a mi me sale el siguiente error los datos de usuario y del password coinciden
    pero me sale el siguiente error

    –>jdbc:mysql://localhost/prueba – root – admin?
    java.sql.SQLException: Access denied for user ‘root’@’localhost’ (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:911)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3953)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
    at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:723)
    at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.tutorialjava.bd.DatabaseODBC.conectar(DatabaseODBC.java:26)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:43)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at ventana1$1.actionPerformed(ventana1.java:74)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$2.run(Unknown Source)
    at java.awt.EventQueue$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

  14. Miguel Lopez dijo:

    haaa por cierto el el signo de ? despues del pass en error no es parte de mi contraseña

    • Marcos Jara dijo:

      Hola Miguel.

      Entonces el signo ? debes retirarlo del archivo de properties.

      Si no lo tienes es por que el usuario y clave no coincide con el de la BD.

      Prueba y avisame si no te funciona.

      Saludos

  15. Gilberto dijo:

    ¡Hola, Prof. Marcos!

    Estoy trabajando una pequeña aplicación para agregar insertad datos en una BD, pero me muestra las siguientes excepciones y he buscado pero no sé qué pueda suceder:

    java.sql.SQLException: No suitable driver found for profcomp_osces
    at java.sql.DriverManager.getConnection(DriverManager.java:602)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at Classes.Conexion.crearConexion(Conexion.java:43)
    at osceswebapp.Prueba.jButton1ActionPerformed(Prueba.java:93)
    at osceswebapp.Prueba.access$100(Prueba.java:20)
    at osceswebapp.Prueba$2.actionPerformed(Prueba.java:52)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6263)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6028)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Exception in thread “AWT-EventQueue-1” java.lang.NullPointerException
    at Classes.Conexion.ejecutarSQL(Conexion.java:65)
    at osceswebapp.Prueba.jButton1ActionPerformed(Prueba.java:98)
    at osceswebapp.Prueba.access$100(Prueba.java:20)
    at osceswebapp.Prueba$2.actionPerformed(Prueba.java:52)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6263)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6028)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

  16. Prof. Marco,

    Se me ha presentado otro problemita: Resulta que al ejecutar la aplicación desde Netbeans me funciona perfectamente y me guarda los datos, pero cuando la ejecuto desde un explorer como Internet Explorer o Mozilla Firefox, me crea el objeto conexión pero no el procedimiento crearConexion. A continuación le dejo la clase Conexion que estoy usando y la parte del código del botón “Guardar” desde donde ejecuto esta clase. ¡Muchas gracias de antemano!

    **************************************************
    Conexion conexion = new Conexion(); //Me muestra perfectamente el mensaje que creó el objeto.
    String db = “jdbc:mysql://profcomp.com:3306/profcomp_osces”;
    String user = “user”;
    String pass = “pass”;
    //Lo siguiente ya no me muestra los mensajes, así que supongo que se produce una excepción pero como lo estoy ejecutando desde el explorer no la puedo ver.
    conexion.crearConexion(db,user,pass);
    conexion.ejecutarSQL(sql);

    **************************************************
    public class Conexion {
    private Connection conexion;

    /** Creates a new instance of Conexion */
    public Conexion() {
    JOptionPane.showMessageDialog(null, “Objeto creado”);
    }

    /**
    * M�todo utilizado para recuperar el valor del atributo conexion
    *@return conexion contiene el estado de la conexi�n
    *
    */
    public Connection getConexion()
    {
    return conexion;
    }

    /**
    * M�todo utilizado para establecer la conexi�n con la base de datos
    *@return estado regresa el estado de la conexi�n, true si se estableci� la conexi�n,
    * falso en caso contrario
    */
    public boolean crearConexion(String db, String user, String pass)
    {
    try {
    Class.forName(“com.mysql.jdbc.Driver”);
    JOptionPane.showMessageDialog(null, “Antes de conexion = DriverManager.getConnection(db,user,pass)”);
    conexion = DriverManager.getConnection(db,user,pass);
    JOptionPane.showMessageDialog(null, “Conexión creada”);
    } catch (SQLException ex) {
    ex.printStackTrace();
    return false;
    } catch (ClassNotFoundException ex) {
    ex.printStackTrace();
    return false;
    }

    return true;
    }

    /**
    *
    *M�todo utilizado para realizar las instrucciones: INSERT, DELETE y UPDATE
    *@param sql Cadena que contiene la instrucci�n SQL a ejecutar
    *@return estado regresa el estado de la ejecuci�n, true(�xito) o false(error)
    *
    */
    public boolean ejecutarSQL(String sql)
    {
    try {
    Statement sentencia = conexion.createStatement();
    sentencia.executeUpdate(sql);
    JOptionPane.showMessageDialog(null, “Insert ejecutado”);
    } catch (SQLException ex) {
    ex.printStackTrace();
    return false;
    }

    return true;
    }

    /**
    *
    *M�todo utilizado para realizar la instrucci�n SELECT
    *@param sql Cadena que contiene la instrucci�n SQL a ejecutar
    *@return resultado regresa los registros generados por la consulta
    *
    */
    public ResultSet ejecutarSQLSelect(String sql)
    {
    ResultSet resultado;
    try {
    Statement sentencia = conexion.createStatement();
    resultado = sentencia.executeQuery(sql);
    } catch (SQLException ex) {
    ex.printStackTrace();
    return null;
    }

    return resultado;
    }

    public void cerrarConexion(){
    try{
    conexion.close();
    }
    catch (SQLException ex) {
    ex.printStackTrace();
    }
    }

    }

  17. JHONY dijo:

    BUENAS SEÑOR MARCOS, ES MUY INTERESANTE SU TUTORIAL Y ESTOY APENAS COMENZADO A VER SU TUTORIAL TENGO UN PROBLEMA A LA HORA DE AGREGAR LOS ARCHIVOS A LA LIB ME SALE UNA VENTANA CON EL SIGUIENTE ERROR ” FAILED TO LOAD MAIN-CLASS MANIFEST ATTRIBUTE FROM C:\ LA RUTA DONDE SE ENCUENTRA EL ARCHIVO DONDE LO VOY A TOMAR” SOY NUEVO EN ESTO LE AGRADECERIA SU AYUDA

    • JHONY dijo:

      YA LOGRE ENCONTRAR EL ERROR NO ESTABA AGREGANDO BIEN LOS ARCHIVOS .JAR Y YA ESTA SECCION DEL TUTORIAL YA SE EJECUTA SIN NINGUN PROBLEMA

  18. daniel dijo:

    Hola Marcos
    Despues de darle vuelta e iniciar el proyecto de cero varias veces, buscando la soluciones
    escribo mi error, con appserver trabajo bastante y por conflicto lo tengo asignado al puerto 81 nunca he tenido inconveniente con el, tengo la impresión que debe sera algo muy menor que por mi impericia en este lenguaje me esta presionando jaja.

    –>jdbc:mysql://localhost:81/biblioteca – root – 222543
    Exception in thread “main” com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

    ** BEGIN NESTED EXCEPTION **
    java.io.EOFException

    STACKTRACE:

    java.io.EOFException
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1934)
    at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:483)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:992)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)
    at com.mysql.jdbc.Connection.(Connection.java:1485)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.tutorialjava.bd.DatabaseODBC.conectar(DatabaseODBC.java:26)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:43)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:14)

    ** END NESTED EXCEPTION **

    Last packet sent to the server was 16 ms ago.
    at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:554)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:992)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)
    at com.mysql.jdbc.Connection.(Connection.java:1485)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.tutorialjava.bd.DatabaseODBC.conectar(DatabaseODBC.java:26)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:43)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:14)

  19. fatima dijo:

    Hola Marcos, antes nada mis agradecimientos por este gran tutorial, bien necesito de tu ayuda ya que usando el ControladorBD necesito conectarme a oracle 10g, como hago la configuración?
    el conector es el ojdbc14.jar no es cierto? el que debe ir en la carpeta libreria, y en el archivo controlador-bd.properties cuales son los datos que debo tipear en url y driver?
    Desde ya gracias.

    • Marcos Jara dijo:

      Hola

      Es como si utilizarías un JDBC normal.

      Y la verdad que depende mucho de la version del Ora o del servicio cómo está corriendo, pero puedes intentar con lo siguiente

      jdbc:oracle:thin:@youroraclehost:1521:yoursid
      o
      jdbc:oracle:oci:@youroracle-tns-name
      o
      jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))

      El driver seria este…
      oracle.jdbc.driver.OracleDriver

      Si no te funciona avisame y veremos que más puede ser.

      Saludos

      • Ricardo dijo:

        Hola fatima te cuento que ya pude conectar con oracle, el controlador funciona sin problema!
        te paso la configuración del controlador-bd.properties:
        ——————————————————-
        url=jdbc:oracle:thin:@localhost:1521:XE
        usuario=admin
        password=admin
        driver=oracle.jdbc.driver.OracleDriver
        ——————————————————-
        el conector que utilice es el ojdbc14.jar

        Te cuento que estoy usando la version express edition 10g,
        y cree un usuario admin que usa por defecto el tablespace USERS con el password admin
        CREATE USER admin IDENTIFIED BY admin DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS
        y le di el privilegio GRANT DBA TO admin.

        Espero y te sirva….

        Marcos sos un grande!! Gracias por el tutorial, soy ricardo te escribo constantemente gracias por responder mis dudas.

    • fatima dijo:

      Muchas gracias ricardo, ya pude conectar tu ayuda me sirvio bastante..

      ahora estoy teniendo problemas con la lógica para poder navegar con los botones de navegacion, ya que oracle no acepta LIMIT.
      Espero me puedas ayudar, jejeje. Gracias.

      • Ricardo dijo:

        fatima para navegar el primer registro–
        select * from ciudades where ciu_codigo = (select min(ciu_codigo) from ciudades);
        el ultimo registro–
        select * from ciudades where ciu_codigo = (select max(ciu_codigo) from ciudades);

        Espero te sirva.

  20. Fidelmar dijo:

    me puede explicar lo del controlador-db.properties ya que utilizo mysql server 5.1 el conector de mysql 5.1.7 de antemano gracias ya que no aperece cuando importo com.progress me aparece import com.properties.*;

    • Marcos Jara dijo:

      Hola,

      El controlador bd se utiliza como una clase normal, solamente que no se importa de com.progress sino de tutorialjava7.***

      Si no me equivoco creo que esto ya habia especificado en uno de los comentarios.

      Saludos

  21. Profesor felicitaciones por el tutorial, tengo un problema en Consola se queda en
    –>jdbc:mysql://localhost:8080/biblioteca – root – root

    despues de ejecutar como aplicación java.

    • Marcos Jara dijo:

      Hola Cesar,

      Necesito mas datos para poder saber de que se trata, aparentemente no existe ningun error, ese mensaje aparecio por que se realizo con exito la conexion, nada mas.

      Saludos y estare aguardando.

  22. Ezequiel L dijo:

    Hola Marcos. Ante todo quiero agradecerte por este material que pones al alcance de los que queremos aprender este lenguaje de programacion…. es muy valioso
    Te comento que venia trabajando perfectamente con JDBC pero veo mucho mas simple el controlador que utilizas. El problema es que me da un error al ejecutar la aplicacion y no puedo identificar el problema. Te agradeceria si me das una mano.
    El error es el siguiente:
    java.util.MissingResourceException: Can’t find bundle for base name controlador-bd, locale es_AR
    at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
    at java.util.ResourceBundle.getBundleImpl(Unknown Source)
    at java.util.ResourceBundle.getBundle(Unknown Source)
    at com.properties.util.LeePropiertes.leeID(LeePropiertes.java:10)
    at com.tutorialjava.bd.ControladorBD.(ControladorBD.java:33)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:42)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at combobox.JComboCiudad.(JComboCiudad.java:13)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    MUCHAS GRACIAS. Saludos

  23. akiles_1984 dijo:

    Hola Marcos, me sale este error al ejecutar la aplicacion, porque puede ser?? Te agradeceria si le hecharas un vistazo,soy nuevo en esto. Por cierto utilizo Xampp.

    –>jdbc:mysql://localhost/biblioteca – root –
    Conexion realizada con exito!!
    04/10/2011 12:43:53, @1e14de0, BEGIN TRANSACTION
    Exception in thread “main” java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘edicion, lib observacion) VALUES (‘Libro de Java’, 10, 2, ‘Para estudiantes y pr’ at line 1
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3020)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1074)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1008)
    at com.tutorialjava.bd.ControladorBD.execute(ControladorBD.java:247)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:16)
    04/10/2011 12:43:53, @1e14de0, ROLLBACK

  24. carlos dijo:

    Hola que tal profesor te felicito por el tutorial estoy siguiendo paso a paso pero al intentar la conexion con la base de datos al realizar el ejercicio creando el test de conexion a la bd 1 me tira este error agradeceria tu ayuda
    Exception in thread “main” java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:7)

    • Marcos Jara dijo:

      Hola Carlos,

      Sinceramente es un error raro, pero por lo que puedo interpretar es por la version del Java,

      Verifica que version del Java tienes instalado en tu maquina, si tienes varias versiones desinstala todos e instala solo la ultima version,

      En tu eclipse tambien existe una opción para indicar qué versión del java vas a utilizar, eso se configura por proyecto..

      Saludos y avisame si te funciono

      • carlos dijo:

        Me salio el mismo error y estoy usando la versión de eclipse que descargue de la pagina que indicaste lo que pude notar es que en el tutorial se usa el contralador bd version 1.2 y en la pagina solo te da la opcion de descargar la version 1.3 y es la que estoy usando.. no se si tendra algo que ver eso
        Esta es la configuracion de mi controlador-bd. properties
        url=jdbc:mysql://localhost/biblioteca
        usuario=root
        password=admin
        driver=org/gjt/mm/mysql.Driver

        y esta es la configuracion de en mi class java
        package com.teste;
        import com.tutorialjava.bd.ControladorBD;
        public class ControladorBDTeste {
        public static void main(String[] args) throws Exception{
        String sql = “”;
        sql = “INSERT INTO `libros` (lib_descripcion, lib_cantidad, lib_edicion, lib_observacion) VALUES (‘Libro de Java’, 10, 2,’Para estudiantes y profesionales’)”;
        ControladorBD.addSql(sql);
        ControladorBD.execute();
        }
        }
        gracias por tu atencion..

  25. Fidelmar dijo:

    Hola maestro tengo estos errores, me podria auxiliar gracias
    Exception in thread “main” java.util.MissingResourceException: Can’t find bundle for base name controlador-bd, locale es_MX
    at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
    at java.util.ResourceBundle.getBundleImpl(Unknown Source)
    at java.util.ResourceBundle.getBundle(Unknown Source)
    at com.properties.util.LeePropiertes.leeID(LeePropiertes.java:10)
    at com.tutorialjava.bd.ControladorBD.(ControladorBD.java:33)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:42)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at paqueteHilo.Controlador.main(Controlador.java:7)

  26. Esteban dijo:

    Hola, ante todo gracias por el tutorial.
    al correr el archivo me marca un error.

    package com.teste;
    import com.tutorialjava.bd.ControladorBD;

    public class ControladorBDTeste {
    public static void main(String[] args) throws Exception {
    String sql= “”;
    sql= “INSERT INTO ciudades” +
    “(ciu_descripcion) VALUES ” +
    “‘Monterrey'”;
    ControladorBD.addSql(sql);
    ControladorBD.execute();
    }
    }

    ESTE ERROR ME MARCA:
    –>jdbc:mysql://MySQL/biblioteca – root – admin
    Exception in thread “main” com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
    at com.mysql.jdbc.MysqlIO.(MysqlIO.java:344)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2332)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
    at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:792)
    at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)

    Si eres tan amable de ayudarme,.. Gracias

    • Marcos Jara dijo:

      Hola Esteban,

      Veo que en tu archivo properties de conexion está esto

      –>jdbc:mysql://MySQL/biblioteca – root – admin

      La sintaxis sería esta:
      –>jdbc:mysql://{nombre de la maquina donde esta el servidor}/biblioteca – root – admin

      Prueba haciendo asi
      –>jdbc:mysql://localhost/biblioteca – root – admin

  27. Diego de la cruz dijo:

    HOLA , primero que nada agradecer por los conocimientos que compartes en tu web.

    Tengo el siguiente error:

    ************************************************
    Exception in thread “main” java.lang.Error: Problemas de compilación no resuelto:
    ControladorBD no se puede resolver
    ControladorBD no se puede resolver
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:14)
    ***********************************************

    Quizás sea por que no me reconoce la siguiente linea:
    import com.progress.bd.contoladorBD;

    He realizado el código según los pasos pero no he podido lograr que no me muestre error.

    Gracias de antemano.

  28. pacios4 dijo:

    Hola Marcos, prodias explicar mas detalladamente como se instala el conector/j de mysql, gracias y un saludo.

  29. pacios4 dijo:

    Hola Marcos, antes de nada perdonad mi ignorancia, veras. tengo ciertos problemillas que expongo por puntos.
    1. Creo el proyecto “CONTROLADOR_BD_TESTE” sin problemas (lo que no se es que tipo de configuración tengo que poner)
    2. Creo la carpeta fuente src sin problemas (se crea por defecto)
    3. Dentro de la carpeta fuente src creo el paquete com.teste sin problemas
    4. Creo la carpeta lib en el proyecto sin problemas
    5. Agrego los archivos .jar de tu API y del conector/j sin problemas (lo que no se es si previamente hay que hacer una instalación del conector/j o solo necesito el archivo mysql-connector-java-3.1.10-bin.jar)
    6. Tengo que actualizar la carpete lib para que me aparezcan los archivos .jar y los añado a la via de acceso de contrucción sin problemas
    7. Creo el archivo controlador-bd.properties dentro de la carpeta raiz de las clases y lo configuro sin problemas.
    8. Creo la clase ControladorBDTeste.java (pero no se como configurarla)
    9. Lo último es que no se como agregas el archivo javaw.exe, no se si se tiene que configurar al crear el proyecto, a mi por defecto me aparecen unas librerias que no tienen nada que ver con eso.

    Gracias por todo y un saludo.

    • pacios4 dijo:

      Buenas madrugadas aqui en Málaga Profesor. Escribo porque porfin he conseguido terminar este ejercicio con éxito, lo he hecho correr perfectamente, estoy muy contento porque aunque me ha costado siendo algo muy básico. para mi es un gran paso. Le vuelvo a agradecer todo el trabajo que esta haciendo y lo mucho que esta ayudando a personas como yo. Nos veremos mañana por la mañana con el siguiente ejercicio, hasta pronto.

  30. Leonardo dijo:

    Hola Marcos, al ejecutarlo me da el siguiente error:
    –>jdbc:mysql://localhost/biblioteca – root – admin
    Exception in thread “main” com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: ‘utf8mb4’
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)

    Espero tus comentarios.
    Saludos.

    • Marcos Jara dijo:

      Hola Leonardo,

      Que versión del MySQL estas utilizando? así mismo, que versión del controlador?

      Cerciorate bien de que el controlador sea la adecuada para esa base de datos.

      Saludos.

      • Leonardo dijo:

        Marcos, estaba utilizando AppServ 2.6.0 que me instaló el phpMyAdmin 2.10.3, ahora instalé el AppServ 2.5.8 con el phpMyAdmin 2.9.2 y funciona perfecto. Muchas gracias.

        Saludos.

  31. juan dijo:

    Saludos tengo la siguiente duda… con el controlador se puede hacer uso de procedimientos almacenados en la BD ????
    algo asi como declarar la sentencia

    String sql = “call procedure(“+VAR1+”,”+”VAR2″+”)”;
    ControladorBD.addSql(sql);
    ControladorBD.execute();

    • Marcos Jara dijo:

      Procedimientos almacenados pueden ser ejecutados sin problemas con el controlador, siempre y cuando estas sentencias empiecen con la palabra clave SQL reservada SELECT,

      Por ejemplo SELECT * FROM funcion()

      Saludos

  32. El_Chino dijo:

    Hola Marcos, la verdad que muy buenos tus tutoriales, estoy aprendiendo un monton. Tengo una pequeña dificultad con este tutorial. Hasta la ejecucion esta todo bien y entiendo todo el codigo lo que si no ejecuta jaja. Me da una infinidad de errores, 14 para ser exactos. Pero me parece que tiene que ver con la version de eclipse (uso el Helios) e instale el appserv 2.5.8. Hice todo tal cual, te paso los errores asi me das una mano. Saludos desde argentina un abrazo y feliz año!

    Exception in thread “main” java.util.MissingResourceException: Can’t find resource for bundle java.util.PropertyResourceBundle, key driver
    at java.util.ResourceBundle.getObject(Unknown Source)
    at java.util.ResourceBundle.getString(Unknown Source)
    at com.properties.util.LeePropiertes.leeID(LeePropiertes.java:12)
    at com.tutorialjava.bd.ControladorBD.(ControladorBD.java:36)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:42)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:13)
    esto es en la consola en problems figura esto:

    Description Resource Path Location Type
    Build path specifies execution environment JavaSE-1.6. There are no JREs installed in the workspace that are strictly compatible with this environment. Abm Build path JRE System Library Problem
    Build path specifies execution environment JavaSE-1.6. There are no JREs installed in the workspace that are strictly compatible with this environment. CONTROLADOR_BD_TESTE Build path JRE System Library Problem
    Build path specifies execution environment JavaSE-1.6. There are no JREs installed in the workspace that are strictly compatible with this environment. Interfaz Build path JRE System Library Problem
    The import java.awt.BorderLayout is never used ImputForm.java /Abm/src line 1 Java Problem
    The import java.awt.Dimension is never used InterfazForm.java /Interfaz/src line 11 Java Problem
    The import java.awt.List is never used ImputForm.java /Abm/src line 11 Java Problem
    The import java.awt.Point is never used InterfazForm.java /Interfaz/src line 14 Java Problem
    The import java.awt.Rectangle is never used InterfazForm.java /Interfaz/src line 12 Java Problem
    The import javax.swing.ImageIcon is never used InterfazForm.java /Interfaz/src line 10 Java Problem
    The import javax.swing.JButton is never used InterfazForm.java /Interfaz/src line 9 Java Problem
    The import javax.swing.JList is never used ImputForm.java /Abm/src line 10 Java Problem
    The import javax.swing.JToolBar is never used InterfazForm.java /Interfaz/src line 8 Java Problem
    The import javax.swing.SwingConstants is never used InterfazForm.java /Interfaz/src line 13 Java Problem
    The serializable class JInternalFrame does not declare a static final serialVersionUID field of type long JInternalFrame.java /Interfaz/src line 5 Java Problem

  33. El_Chino dijo:

    Listo Marcos, era error mio al copiar el archivo properties jajaj puse mal la palabra driver gracias igual y seguimos en carrera. Saludos.-

  34. Richard Ramirez dijo:

    Hola Marcos

    Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “”
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at ConsultaCiudades$5.focusLost(ConsultaCiudades.java:246)
    at java.awt.AWTEventMulticaster.focusLost(Unknown Source)
    at java.awt.Component.processFocusEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

  35. Richard Ramirez dijo:

    Disculpa Marcos,,en el comenario anterior me aparece el siguiente error..agradeceria tu ayuda..gracias

  36. Edilmar dijo:

    Hola marcos, este es mi tercer dia y este tuto me ha salido a la perfección, esto me motiva a seguir continuando, saludos…

  37. Gilberto dijo:

    Hola Marcos muchas, pero muchas gracias por el tutorial, esta exelente y es muy didactico..
    Una consulta, al ejecutar mi clase me sale el siguinete error, lo hice el pie de la letra los pasos hasta aqui!!!
    Gracias de antemano!

    Exception in thread “main” java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.tutorialjava.bd.DatabaseODBC.conectar(DatabaseODBC.java:24)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:43)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:12)

    • Marcos Jara dijo:

      Hola

      El error que te aparece es posiblemente por que la libreria de conexion con la base de datos (driver, controlador) no está correctamente configurado en el class path.

      Saludos.

  38. Scarface dijo:

    hola disculpa tengo el siguiente error:
    –>jdbc:mysql//localhost/biblioteca – root – 123
    Exception in thread “main” java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost/biblioteca
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.tutorialjava.bd.DatabaseODBC.conectar(DatabaseODBC.java:26)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:43)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:14)

    utilizo estos controladores:
    mysql-connector-java-3.1.14.bin.jar
    mysql-connector-java-5.1.18.bin.jar
    controlador-bd-1.3.jar (este contorlador es tuyo a lo que el import dice = import com.tutorialjava.bd.*; me gustaria saber como lo haces)

    y utilizo Mysql-5.1.40
    mysql-connector-odbc-5.1.6
    y su interfaz grafica gui tools 5.0-r7
    (que los ultimos 2 no tienen mucho que ver)

    podrias decirme si es problema del controlador bd 1.3 o tengo error yo =/

    espero tu respuesta gracias..!

  39. saul dijo:

    Saludos Profesor.

    Si una capa de trabajo es la capa de presentación. ¿Cuáles son las otras capas?
    Gracias.

  40. oscar dijo:

    hola que tal, cuando corro el programa me surge este error…creo que es un problema con la instalacion del api aunque me aparece en las librerias en la parte de REFERENCES LIBRARIES
    el error que da el clipse es el siguiente:
    Exception in thread “main” java.util.MissingResourceException: Can’t find bundle for base name controlador-bd, locale es_AR
    at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
    at java.util.ResourceBundle.getBundleImpl(Unknown Source)
    at java.util.ResourceBundle.getBundle(Unknown Source)
    at com.properties.util.LeePropiertes.leeID(LeePropiertes.java:10)
    at com.tutorialjava.bd.ControladorBD.(ControladorBD.java:33)
    at com.tutorialjava.bd.ControladorBD.getInstance(ControladorBD.java:42)
    at com.tutorialjava.bd.ControladorBD.addSql(ControladorBD.java:212)
    at com.teste.ControladorBDTeste.main(ControladorBDTeste.java:12)

    • Marcos Jara dijo:

      Hola Oscar,

      Tienes que revisar tu archivo de configuración donde se almacena la información de la conexión con la base de datos (.properties), por que dice que no se encuentra, verifica si escribiste bien el nombre o si está en la ubicación que yo indico en el video.

      Saludos

  41. Jedi Sensei dijo:

    Primero que nada muchísimas gracias por sus valiosos aportes.

    Y en segundo lugar me llamó la atención este comentario que usted hace en el post: “En cuanto a la información del log, la API Controlador BD siempre muestra primero la fecha de ejecución, seguido de la hora, minuto y segundo, a continuación el campo que aparece con @… es el ID de la conexión con la cual se ejecutaron las sentencias, ésto es importante ya que más adelante te mostraré otro caso en la cual se utiliza más de una conexión al mismo tiempo.”

    Sobre todo la parte donde dice: “… ésto es importante ya que más adelante te mostraré otro caso en la cual se utiliza más de una conexión al mismo tiempo.”
    Me gustaría saber cuándo mostrará ese caso de utilizar más de una conexión al mismo tiempo. Gracias por su atención, espero su amable respuesta.

  42. Hector dijo:

    Hola Marcos,
    Estoy implementando un proyecto con la utileria que publicas. pero me aparece el siguiente error al momento de utilizar la clase “ControladorBD”: java.util.MissingResourceException: Can’t find bundle for base name controlador-bd, locale es_ES ojala puedas apoyarme…
    Gracias
    HIS

  43. Nikkole dijo:

    Hola profesor, encontré su tutorial y me ha encantado, me ha funcionado a la perfección utilizando Netbeans 6.9.1 y Mowes. Gracias por compartir sus conocimientos!

    Un cordial Saludo.

  44. jzstice dijo:

    disculpa lo que pasa es que soy muy nuevo en esto de la programacion y me encontre con un error que no puedo solucionar, lo que pasa es que hago todo como hasta este punto, todo lo tengo bien configurado pero al momento de hacer la importacion en la clase ControladorBDTeste.java del com.progress.bd.ControladorBD me sale un error no se a que se deba si tengo todo como lo has dicho (ese archivo no se agregaba al acceso de construccion verdad, como sea ya lo intente de las 2 formas y nada, no se si me puedas echar la mano con eso estoy un poco desesperado y frustado jejeje, no se si tambien sea por que no instale ningun servidor MySQL, lo unico que instale fue el appserv (pero pude hacer la base de datos y todas las tablas)hasta este punto creo que he hecho todo. saludos y de antemano muchas gracias la verdad que pocos tutoriales asi. Felicidades.

    • Marcos Jara dijo:

      Hola

      Para evitarte la frustración te recomiendo no hacer de entrada este curso si no has realizado antes un repaso de los conocimientos de Java Básico, en cuanto a POO, libreriás, etc.

      En cuanto a tus dudas, en los comentarios encontrarás la respuesta.

      El mysql se instala con el AppServ

      Saludos

  45. Diego dijo:

    a mi se muestran los siguientes errores:
    Exception in thread “main” java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at com.teste.Conexion.main(Conexion.java:14)

  46. Oscar dijo:

    De verdad que es el mejor tutorial de java en español que he encontrado muy bien explicado y muy practico, lo felicito por su dedicación y empeño de ayudar a los demás de verdad que el mundo de la programación necesitas mas personas como usted, un gusto y un saludo desde El Salvador.

  47. oscar salazar dijo:

    ES POSIBLE UTILIUZAR ESTA FORMA PARA CONECTARSE A ORACLE11G

  48. Vcitor dijo:

    Me tienes impresionado con este tutorial, por lo preciso y claro

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