Criando aplicação com acesso ao banco de dados

Você está usando o .jar certo cara…

Tenta essa classe Driver

String driverName = "oracle.jdbc.driver.OracleDriver";

Abs []

[EDIT] - Se quiser verificar porque, você pode abrir seu .jar como um ZIP da vida e explorar esse diretório dentro do seu ojdbc14.jar só pra constar se essa classe realmente existe.

adriano_si

Editei e até abri o .jar.
Vi que dentro dele tem sim a classe OracleDriver:

oracle/jdbc/driver/OracleDriver.class em C:\Users\jean.carlos.MEGAFORTMG\Documents\NetBeansProjects\BancoDeDados\ojdbc14dms_g.jar

Agora o erro muda:

run: java.sql.SQLException: URL Oracle Inválido especificado at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:286) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:549) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at bancodedados.Main.main(Main.java:34) Exception in thread "main" java.lang.NullPointerException at bancodedados.Main.main(Main.java:67) Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

E infelizmente, se eu não conseguir isso hoje, só mesmo segunda-feira, pois já viu neh, estagiário não pode ficar além do horário…rsrsr

[quote=adriano_si]Você está usando o .jar certo cara…

Tenta essa classe Driver

String driverName = "oracle.jdbc.driver.OracleDriver";

Abs []

[EDIT] - Se quiser verificar porque, você pode abrir seu .jar como um ZIP da vida e explorar esse diretório dentro do seu ojdbc14.jar só pra constar se essa classe realmente existe.[/quote]

cara use o ojdbc14.jar e não o dms_g…

Parece que não tem nada a ver, pois na descrição da Oracle, me parece que são os mesmos Jars com a adição de um Tracing no dms_g…

Todavia, o erro (pelo o que está descrito na Exception), está reclamando da URL que você está utilizando na conexão.

Abs []

[EDIT] - Essa linha está estranha:

String url = "jdbc:oracle:thin@ORCL" + serverName + ":" + portNumber + ":" + sid;

Tente tirar esse ORCL que está sem sentido na URL…

Todavia, segue um breve Tuto que pode lhe ajudar: http://netbeans.org/kb/docs/ide/oracle-db_pt_BR.html

Qualquer coisa grita aí.

Abs [] e bons estudos.

Dica pra não parar:
Baixa o OracleXP coisa assim que é gratis e continua tentando na sua casa! cria um usuario, banco uma tabela e manda v.
Até conseguir fazer pelo menos a conexao com o banco de dados!

abraço.

Bom dia Pessoal.

De antemão, grato demais pela ajuda de vocês…

Bom, como ainda to sem net em casa e não tive como levar pra fazer testes em casa, vim bem cedo pro trampo pra fazer o possível pra terminar essa pendência, pois meu chefe já perguntou se consegui ao menos conectar ao banco.rs

Bom, o que fiz e percebi:

1 - Removi o driver oracle e baixei novamente o ojdbc14.jar e coloquei no seu devido local.
2 - Retirei o ORCL da linha, ficando assim agora: String url = "jdbc:oracle:thin@" + serverName + ":" + portNumber + ":" + sid;;

O que me intriga é que ainda o erro esta se referindo a URL, como sendo inválida.
Esse “sid”, é um nome que dou pro meu banco ou tem que se referir à alguma coisa em específico?

Creio que que não falte mais nada, pois o servername é o nome(IP) do servidor, a porta já ta certinha, só esse sid que fiquei com dúvida agora, e tbm esse começo “jdbc:oracle:thin@”.

Continuo aqui nas pesquisas e estou vendo tbm esse tuto que o adriano_si me passou.

Abraços.

PS.: Uma observação que acabei de ver no tutorial, será que neste caso seja necessário eu fazer esse passo a passo:

[code]Inicie o banco de dados Oracle:
Abra a janela Serviços (Janela > Serviços ou Ctrl-5;⌘-5 no Mac). Na janela Serviços, clique com o botão direito do mouse no nó Bancos de dados e escolha Nova conexão.

No assistente de Nova conexão, selecione Oracle Thin na lista suspensa Driver.
Clique em Adicionar e encontre o arquivo ojdbc6.jar que foi baixado anteriormente. Clique em Próximo.
No painel Personalizar conexão do assistente, insira os seguintes valores e clique em Próximo.
Nome Valor
Nome do driver Oracle Thin (com ID de serviço - SID)
Máquina localhost ou 127.0.0.1.
Observação: No caso de uma conexão remota, forneça um endereço IP ou nome de host resolvível da máquina onde o banco de dados está instalado.
Porta 1521 (padrão)
ID do serviço (SID) XE (SID padrão para Oracle Database XE).
Observação: Se você estiver se conectando a um banco de dados remoto, peça ao administrador do banco de dados que forneça o SID do banco de dados.
Nome do usuário
Indique o nome do usuário.
Para os fins do nosso tutorial, insira system (a conta padrão de administrador de banco de dados) e a senha que foi usada durante a instalação do banco de dados.
Password Insira a senha para o nome de usuário selecionado.[/code]

Pessoal, fiz uma coisa que me deu uma luz, mas queria um “help” maior de vocês.

Fui em Serviços>Banco de Dados>botão direito em> Oracle Thin.

Escolhi a opção Conectar Utilizando> Oracle Thin (com TNS Name(v10.2.0.1.0 ou superior) - Que é a minha versão do oracle -

Em opções tem:

TNS Name: coloquei o mesmo que esta no arquivo de configuração do Oracle - MEGAFORT
Nome de usuário:
Senha:

E mandei mostrar URL JDBC que ficou assim: jdbc:oracle:oci:@MEGAFORT.
Quando avancei, ele já apareceu o que queria conectar - ECORPORE - e deu certo. Conecta de boa e tudo mais.

E ai, alguma ideia do que posso modificar, pq realmente, o problema esta na URL.

Pessoal, seguinte - CONECTOUUUUUUUUUUUU!!!

Mas assim, deem uma olhada no código, especialmente na URL, pois tem haver com o que postei abaixo e me digam o que posso melhorar, pois o seguinte, agora vou ter que fazer a conexão a três instâncias do banco, sendo elas: MEGAFOR - SINDI E BACKUP, para ai sim, trazer os dados das selects que vamos fazer daqui em diante.

[code]package bancodedados;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
*

  • @author jean.carlos
    */
    public class Main {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {

      // A captura de exceções SQLException em Java é obrigatória para usarmos JDBC.
      // Para termos acesso ao objeto con, ele deve ter um escopo mais amplo que o bloco try
      Connection con =null;

      try{
      String driverName = “oracle.jdbc.driver.OracleDriver”;
      String serverName = “10.1.254.36”;
      String portNumber = “1521”;
      String sid = “MEGAFORT”;
      String url = “jdbc:oracle:oci:@MEGAFORT”;//“jdbc:oracle:thin@” + serverName + “:” + portNumber + “:” + sid;
      String username = “ecorpore”;
      String password = “mega1111”;

       Class.forName(driverName);
       con = DriverManager.getConnection(url, username, password);
      
       //Conexão com o banco de dados estabelecida.
       //Utilizamos o método createStatement de con para criar o Statement
       String SQL = "Select * from ge_pessoa";
       Statement stm = con.createStatement();
       stm.execute(SQL);
       //Executando o comando SQL.
       //Definido o Statement, a Query será executada no banco de dados
       ResultSet rs = stm.executeQuery(SQL);
      
       //O método next() informa se houve resultados e posiciona o cursor do banco
       //Na próxima linha disponível para recuperação
       //Como esperamos várias linhas utilizamos um laço para recuperar os dados
       while(rs.next()){
           // Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado:  
           int seqPessoa = rs.getInt("seqpessoa");
           String status = rs.getString("status");
           String fantasia = rs.getString("fantasia");
      
           //Imprimindo os resultados retornados pela Query.
           System.out.println("SeqPessoa: " + seqPessoa + " Status: "
                   + status + " Fantasia: " + fantasia);
       }
      

      }catch(ClassNotFoundException e){
      //Se houve algum erro, uma exceção é gerada para informar o erro.
      e.printStackTrace();//Vejamos que erro foi gerado e quem o gerou.
      }catch(SQLException e){
      e.printStackTrace();
      }
      finally{
      try{
      con.close();
      }catch(SQLException onConClose){
      System.out.println(“Houve um erro ao fechar a conexão com o Banco de Dados”);

           onConClose.printStackTrace();
       }
      

      }
      }

}[/code]

[quote=jeancarlosaps]Pessoal, fiz uma coisa que me deu uma luz, mas queria um “help” maior de vocês.

Fui em Serviços>Banco de Dados>botão direito em> Oracle Thin.

Escolhi a opção Conectar Utilizando> Oracle Thin (com TNS Name(v10.2.0.1.0 ou superior) - Que é a minha versão do oracle -

Em opções tem:

TNS Name: coloquei o mesmo que esta no arquivo de configuração do Oracle - MEGAFORT
Nome de usuário:
Senha:

E mandei mostrar URL JDBC que ficou assim: jdbc:oracle:oci:@MEGAFORT.
Quando avancei, ele já apareceu o que queria conectar - ECORPORE - e deu certo. Conecta de boa e tudo mais.

E ai, alguma ideia do que posso modificar, pq realmente, o problema esta na URL.[/quote]

Jean… Seu Sistema será Desktop mesmo ???

adriano_si

Sim cara, o meu coordenador pediu para que eu tetasse desenvolve-lo como sendo Web.

Até achei um framework bem legal, mas porém não web, fiz uma telinha simples e isso já o animou.

Agora gostaria de algumas ideias de como fazer isso, porém Web.

Já vi algumas coisas como Hibernate, Structs e outras tecnologias/frameworks que posso utilizar, mas como isso, alem de ser uma experiência pra mim, será um mega desafio.

Conto com o que vocês puderem me passar.

Grato.

Pois bem… A pergunta foi mais por questão de lhe indicar o uso de Data Sources para a conexão com mais de um Banco de Dados…

Como vc está estudando e ainda aprendendo, o ideal seria “começar do começo” realmente, porém não sei se tens tempo hábil pra isso, isso é uma coisa que só você pode responder.

Caso não tenha o tempo hábil (nesse projeto) de estudar enquanto faz a aplicação, eu aconselharia que vc desse uma olhada na combinação JSF - EJB - JPA.

ODEIO aconselhar Framework antes de conhecimento básico, mas o fiz porque creio que vc não tem o tempo pra aprender conceitos de Servlets e JSP antes…

Mas cara, uma dica, estude a Linguagem Java primeiro… Aprenda conceitos de OO em Java, Collections, Threads, Conexões JDBC, conceitos de I/O, etc. Só depois disso, estude Servlets e JSP, sem deixar de dar importância para como funciona o JEE, como os AS tratam solicitações HTTP, o que são solicitações HTTP (acredite, tem gente que trabalha com WEB há um bom tempo e não sabe), etc.

Certificações são bem-vindas pois constituem um desafio e forçam o estudo com pegadinhas que caem nas provas… Enfim…

Resumindo meu conselho, faça seu Sistema com os Frameworks que lhe indiquei acima, mas estude o básico, esqueça os Frameworks depois e se dedique aos fundamentos… Se é que isso é possível…

Se tiver tempo hábil, faça o certo, comece por baixo desde o início…

Abs []

adriano_si

Cara, obrigado pelos toques, mas já te falando de antemão:

É exatamente o que estou fazendo

Como disse, sou estagiário, estudante de análise e desenvolvimento de sistemas e no curso, tive muitos problemas com as matérias de programação. Não pq tive dificuldades, mas pq elas não foram ensinadas de maneira satisfatória e por problemas da instituição. E infelizmente, eu e outros alunos estão pagando por isso.
Como tenho grande experiência com infraestrutura e agora que consegui um estágio em desenvolvimento, é que estou realmente fazendo de tudo pra praticar e correndo atrás.

Estudo sim, baixei alguns cursos de java básico, web e intermediário para poder ir treinando e estou fazendo sim, tudo em paralelo.

Neste projeto em questão, ninguém aqui na empresa tem conhecimentos de java, por isso tenho que correr com minhas próprias e fazer o melhor.
Com isso, vou aprendendo e praticando sacou?

E assim vou. Sei que é complicado, mas neste momento não tenho outra alternativa.

Quanto aos frameworks que você me indicou, estou estudando e fazendo tutoriais e testes sobre os mesmos.
Mas se tiver alguma dica de estudo, tutoriais e afins, pode me mandar, fico agradecido demais.