Java - JAVA (NETBEANS 6.5.1)+ORACLE

 
Vista:

JAVA (NETBEANS 6.5.1)+ORACLE

Publicado por Jose (1 intervención) el 18/05/2009 18:40:42
Buenas tardes:

Me encuentro un poco perdido. A ver si me pueden orientar un poco.

Deseo realizar una conexión a base de datos local, la cual realiza a mi juicio bien.
El problema es que cuando deseo imprimir datos en pantalla para comprobarlo, del tipo:

System.out.println(cdr);

Me salen nada más que códigos.

La variable cdr es ResultSet, es decir que almacena conjuntos de datos.
El problema es que, con este código que les muestro, no sé mostrar datos, porque al poner la sentencia superior me sale nada más que código raro. Mi base de datos contiene nombre, telefono y movil, y la base de datos se llama AGENDA.

Gracias de antemano, no saben lo que llevo atascado :)


import java.sql.*;
import javax.sql.*;

public class radiacion
{
private java.sql.Connection conexion;
private java.sql.Statement sentenciaSQL;
private java.sql.ResultSet cdr; //Conjunto de resultados

/** Creates new form BDradiacion */
public radiacion() throws ClassNotFoundException, java.sql.SQLException,InstantiationException,IllegalAccessException
{
String controlador="oracle.jdbc.driver.OracleDriver";
Class.forName(controlador).newInstance();
conectar();
tablas();
}

public void conectar() throws java.sql.SQLException
{

String URL_bd="jdbc:oracle:thin:@localhost:1521:XE";
String usuario="System";
String contrasena="hola";

//Conectar con la base de datos
conexion=java.sql.DriverManager.getConnection(URL_bd, usuario, contrasena);
sentenciaSQL=conexion.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_UPDATABLE);
System.out.println("Conexión realizada con éxito. ");
}

public String[] tablas() throws java.sql.SQLException
{
cdr=sentenciaSQL.executeQuery("SELECT TNAME FROM TAB");
cdr.last();
String[] tablas=new String[cdr.getRow()];

cdr.beforeFirst();
int i=0;
while(cdr.next())
{
tablas[i++]=cdr.getString(1);
System.out.println(tablas);
}

return tablas;
}

public java.sql.ResultSet obtenerTabla(String tabla) throws java.sql.SQLException
{
cdr=sentenciaSQL.executeQuery("SELECT * FROM SYSTEM.AGENDA");
return cdr;
}
//Llamadas a funciones que trabajen con SQL

//Fin de llamadas a funciones que trabajen con SQL

public void cerrarConexion() throws java.sql.SQLException
{
if (cdr!=null) cdr.close();
if (sentenciaSQL!=null) sentenciaSQL.close();
if (conexion!=null)conexion.close();
}

public static void main(String args[]) {
try{
radiacion acceso=new radiacion();
acceso.conectar();
}
catch(ClassNotFoundException ex){
System.out.println("El driver no fue encontrado "+ex);
}
catch(SQLException ex){
System.out.println("Error al realizar la conexion "+ex);
}
catch(InstantiationException ex){
System.out.println("Error al realizar la instanciacion "+ex);
}
catch(IllegalAccessException ex){
System.out.println("Error al realizar el acceso "+ex);
}
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:JAVA (NETBEANS 6.5.1)+ORACLE

Publicado por adolfo  (1 intervención) el 28/12/2010 03:15:24
Amigo.. ya ha pasado bastante tiempo desde tu pregunta.. imagino que a ti de nada te sirve ya, pero seguro alguien entrara aqui y de ayuda le sera mi respuesta..

Todo el codigo esta muy bien, el unico detealle.. muy pequeño de hecho.. es que a la hora de imprimir en el metodo println el resultado que mandas al array de tipo String lo llamas y no indicas en que indice.. en otras palabras:

while(cdr.next())
{
tablas[i++]=cdr.getString(1);
System.out.println(tablas);
}

y para que funcione:

while(cdr.next())
{
tablas[i]=cdr.getString(1);
System.out.println(tablas[i]);
i++;
}

Nota: Esto solo te dara la primera columna del registro.

Saludos y suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar