Conexão com BD Oracle

4 respostas
W

Senhores sou estudante e fiz um teste para conexão com BD Oracle so que

ele executa até a linha System.out.println ("Entre com as informacoes para TESTAR a conexao com o DATABASE");

Ai habilita o input, so que quando digito o servidor 127.0.0.1 ou localhos ou qualquer informação ele não faz mais nada, o que pode ser??

Estou usando o netbeans 4.1

p código é o seguinte:

import java.sql.*;
import java.io.*;
import java.util.*;

class Main
{
   public static void main (String args []) throws SQLException, IOException
  {

   String user, password, servidor, porta, banco, strSQL;
   String strSQLdef = "select SYSDATE from dual";
   String databaseURL;

   DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

   System.out.println ("Entre com as informacoes para TESTAR a conexao com o DATABASE");

   // Dados para a Conexao
   servidor = readEntry ("SERVIDOR: ");
   banco = readEntry("BANCO: ");
   user = readEntry ("USUARIO: ");
   password = readEntry ("SENHA: ");
   porta = readEntry ("PORTA (default 1521): ");
   strSQL = readEntry ("STRING 'SQL': ");

   if ( strSQL == null || strSQL.equals("") )
   {
       strSQL = strSQLdef;
   }

   databaseURL = "jdbc:oracle:thin:@" + servidor + ":" + porta + ":" + banco;

   System.out.print ("Conectando-se ao Banco ... ");
   System.out.flush ();

   Connection conn = DriverManager.getConnection (databaseURL, user, password);

   System.out.println (" conectado ... ");

   // Create a statement
   Statement stmt = conn.createStatement ();

   // ResultSet rset = stmt.executeQuery ("select SYSDATE from dual");
   ResultSet rset = stmt.executeQuery(strSQL);

   while (rset.next ())
   {
      System.out.println ("  -> Resultado do SELECT: " + rset.getString (1));
   }

   System.out.println ("Conexao JDBC ok."); 
 }

	// Function para ler as informações de entrada
	static String readEntry (String prompt)
	{
   try
   {
       StringBuffer buffer = new StringBuffer ();
       System.out.print (prompt);
       System.out.flush ();
       int c = System.in.read ();

       while (c != 'n' && c != -1)
      {
          buffer.append ((char)c);
          c = System.in.read ();
      }

      return buffer.toString ().trim ();
    } catch (IOException e) {
       return "";
    }
  }
}

[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - marcossousa[/color][/size] :joia:

4 Respostas

M

Substitua teu método main por este:

public static void main (String args []) {
		
		String user, password, servidor, porta, banco, strSQL;
		String strSQLdef = "select SYSDATE from dual";
		String databaseURL;
		
		//DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
		
		System.out.println ("Entre com as informacoes para TESTAR a conexao com o DATABASE");
		
		// Dados para a Conexao
		servidor = readEntry ("SERVIDOR: ");
		banco = readEntry("BANCO: ");
		user = readEntry ("USUARIO: ");
		password = readEntry ("SENHA: ");
		porta = readEntry ("PORTA (default 1521): ");
		strSQL = readEntry ("STRING 'SQL': ");
		
		if ( strSQL == null || strSQL.equals("") )
		{
			strSQL = strSQLdef;
		}
		
		databaseURL = "jdbc:oracle:thin:@" + servidor + ":" + porta + ":" + banco;
		
		System.out.print ("Conectando-se ao Banco ... ");
		System.out.flush ();
		
		try {
		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
		Connection conn = DriverManager.getConnection (databaseURL, user, password);
		
		System.out.println (" conectado ... ");
		
		// Create a statement
		Statement stmt = conn.createStatement ();
		
		// ResultSet rset = stmt.executeQuery ("select SYSDATE from dual");
		ResultSet rset = stmt.executeQuery(strSQL);
		
		while (rset.next ())
		{
			System.out.println ("  -> Resultado do SELECT: " + rset.getString (1));
		}
		
		System.out.println ("Conexao JDBC ok.");
		} catch ( SQLException e ){
			System.out.println ("Conexao JDBC não ok.");
			e.printStackTrace();
		} catch ( IOException e ){
			System.out.println ("Conexao JDBC não ok.");
			e.printStackTrace();
		}
	}

:joia:

W

Marcors deu probelma

Compiling 1 source file to C:\aplicativos\TestaConexcaoOracle1\build\classes C:\aplicativos\TestaConexcaoOracle1\src\testaconexcaooracle1\Main.java:20: cannot find symbol symbol : method readEntry(java.lang.String) location: class Main servidor = readEntry ("SERVIDOR: "); C:\aplicativos\TestaConexcaoOracle1\src\testaconexcaooracle1\Main.java:21: cannot find symbol symbol : method readEntry(java.lang.String) location: class Main banco = readEntry("BANCO: "); C:\aplicativos\TestaConexcaoOracle1\src\testaconexcaooracle1\Main.java:22: cannot find symbol symbol : method readEntry(java.lang.String) location: class Main user = readEntry ("USUARIO: "); C:\aplicativos\TestaConexcaoOracle1\src\testaconexcaooracle1\Main.java:23: cannot find symbol symbol : method readEntry(java.lang.String) location: class Main password = readEntry ("SENHA: "); C:\aplicativos\TestaConexcaoOracle1\src\testaconexcaooracle1\Main.java:24: cannot find symbol symbol : method readEntry(java.lang.String) location: class

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - marcossousa[/color][/size] :joia:

M

Bem, mais isto não é erro de banco de dados, de conexão. É erro de sintaxa. Certamente que de onde você copiou este código tinha um método readEntry para ler a entrada do usuário ou ler em um xml. Normalmente você não faz isto, pegar dados do usuário. Simplifique, coloque apenas o valor em string para cada um dos atributos de conexão do banco de dados. Veja um exemplo:

:okok:

W

Valeu, foi isso mesmo, devo te abusar um pouco e agradeço pela sua ajuda

Criado 22 de maio de 2006
Ultima resposta 23 de mai. de 2006
Respostas 4
Participantes 2