Tengo un problema de conexión a la base de datos en concreo mysql y que funcionaba el código en otro ordenador y este compila pero al ejecutarlo me salen unos errores que no se interpretarlos.Esto creo que también influye al trabajar con los servlets. El código, las variables y los errores son los siguinetes:
variables:
CLASSPATH:
.;C:\Archivos de programa\Apache Software Foundation\Tomcat 5.0\webapps\MisServlets\WEB-INF\lib\mysql-connector-java-5.0.4-bin.jar;
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.0\common\lib\servlet-api.jar;
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.0\webapps\MisServlets\WEB-INF\lib\msbase.jar;
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.0\webapps\MisServlets\WEB-INF\lib\mssqlserver.jar;
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.0\webapps\MisServlets\WEB-INF\lib\msutil.jar;
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.0\common\lib\jsp-api.jar;
Path:C:\Archivos de programa\Java\jdk1.6.0\bin
JAVA_HOME:C:\Archivos de programa\Java\jdk1.6.0
código:
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConectarBD {
private String host; // Nombre del host donde se encuentra la BD
private int puerto; // Puerto a traves del que nos conectamos al SGBD
private String db; // Nombre de la BD
private String url;
private Connection conexion;
private Statement sentencia;
private ResultSet resultado;
private ConectarBD() {};
/**
* Los siete pasos para trabajar con BD *
*/
private void ejecuta() {
try {
cargaDriver();
defineConexion();
estableceConexion();
creaSentencia();
ejecutaConsulta();
procesaResultado();
cierraConexion();
}
catch (SQLException e) {
e.printStackTrace();
}
}
private void cargaDriver() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch ( ClassNotFoundException e) {
System.out.println("Error loading driver: " + e);
}
}
private void defineConexion() {
host = "localhost";
puerto = 3306; // Este es el puerto por defecto para MySQL
db = "supermercado";
url = "jdbc:mysql://" + host + ":" + puerto + "/" + db;
}
private void estableceConexion() throws SQLException {
String usuario = "salvadore"; // El usuario
String clave ="salvadore"; // y la clave que utilizamos para conectarnos
conexion = DriverManager.getConnection(url, usuario, clave);
}
private void creaSentencia() throws SQLException {
sentencia = conexion.createStatement();
}
private void ejecutaConsulta() throws SQLException {
String consulta = "SELECT * FROM producto;"; // Consulta a la BD
resultado = sentencia.executeQuery(consulta);
}
private void procesaResultado() throws SQLException {
System.out.println("Nombre -- Categoria -- Precio -- Id");
while(resultado.next()) { // Antes de empezar a procesar siempre debemos hacer next()
System.out.println(resultado.getString(1) + " -- " +
resultado.getString(2) + " -- " +
resultado.getFloat(3) + " -- " +
resultado.getInt(4));
}
}
private void cierraConexion() throws SQLException {
conexion.close(); // No olvides cerrar la conexion
}
public static void main(String args[]) {
new ConectarBD().ejecuta();
}
}
errores:
>javac ConectarBD.java
>Exit code: 0
>java ConectarBD
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(Unknow n 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)
Exception in thread "main" >Exit code: 1