Ir para conteúdo
Fórum Script Brasil
  • 0

JAVA Erro: ORA-00911: caractere inválido e Erro: null.


Lorenus

Pergunta

Boa noite rs, estou com um grande problema pois não consigo achar uma solucao para esse erro. não passa os dados pra pesquisa no banco . não sei se e o erro esta no método de acesso,Ligação do banco e Passagem de parametro.

o codigo :

elasDAO; import java.sql.; import telas.TelaInicialChamadosTeste; import telasBEAN.; import telasUTIL.ConnectionFactory;

public class LoginDAO {

private Connection conn; private PreparedStatement ps; private ResultSet rs;

public LoginDAO() throws Exception { try{ this.conn = ConnectionFactory.getConnection(); }catch(Exception e){ throw new Exception("erro: \n" + e.getMessage()); } }

public Login procurarLogin(Login L) throws Exception{ try{ String Sql = "SELECT * FROM usuarios WHERE usuario like '"+L.getUsuario()+"' and senha like '"+L.getSenha()+"';"; conn = this.conn; ps = conn.prepareStatement(Sql); rs = ps.executeQuery(); int teste = rs.getRow(); if (teste == 1 ){ TelaInicialChamadosTeste frame = new TelaInicialChamadosTeste(); frame.setVisible(true); } }catch(Exception e){ //throw new Exception(e); System.out.println("Erro: " + e.getMessage()); }finally{ ConnectionFactory.closeConnection(conn, ps, rs); } return null;

package telasBEAN;

public class Login {

private String usuario; private String senha;

public String getUsuario() { return usuario; }

public void setUsuario(String usuario) { this.usuario = usuario; }

public String getSenha() { return senha; }

public void setSenha(String senha) { this.senha = senha; } }

package telas;

import javax.swing.; import java.awt.event.ActionEvent; import java.awt.; import java.awt.event.ActionListener; import javax.swing.JFrame; import telasBEAN.; import telasDAO.; import telasUTIL.ConnectionFactory;

public class testeLogin extends JFrame { Login d = new Login(); JTextField txtUsuario = new JTextField(); JTextField txtSenha = new JTextField(); JButton Entrar = new JButton("Entrar"); JButton Sair = new JButton();

public testeLogin(){ super("Entrar no sistema"); Container tela=getContentPane(); setVisible(true); setSize(310,330); setLayout(null);

tela.add(txtUsuario); txtUsuario.setBounds(100, 50, 100, 50); tela.add(txtSenha); txtSenha.setBounds(100, 100, 100, 50);

tela.add(Entrar); Entrar.setBounds(100, 150, 100, 50);

Entrar.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){

try { ConnectionFactory.getConnection(); //txtUsuario.setText(String.valueOf(d.getUsuario())); //txtSenha.setText(String.valueOf(d.getSenha())); d.setUsuario(String.valueOf(txtUsuario)); d.setSenha(String.valueOf(txtSenha)); //d.usuario = txtUsuario.getText(); //d.senha = txtSenha.getText(); //d.setUsuario(txtUsuario.getText()); //d.setSenha(txtSenha.getText());

LoginDAO LoginDAO = new LoginDAO(); LoginDAO.procurarLogin(d); } catch (Exception ex) { System.out.println("Erro: " + ex.getMessage()); } } });

} public static void main(String []args){ EventQueue.invokeLater(new Runnable(){ public void run(){ try{ testeLogin frame = new testeLogin(); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }catch(Exception e){ e.printStackTrace(); } } });

} }

agradeço se puderem me ajuda =D

Editado por Lorenus
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom , mudei o Select e ficou assim

String Sql = "SELECT * FROM usuarios WHERE usuario=? and senha=?";

e deu o seguinte erro:

Erro: Parâmetro IN ou OUT ausente do índice:: 1
Erro: null
já não sei mais o que mudar rs
obrigado!
Editado por Lorenus
Link para o comentário
Compartilhar em outros sites

  • 0

String Sql = "SELECT * FROM usuarios WHERE usuario=? and senha=?";

======================================================

descrição

Quando você encontrar um erro ORA-00911, a seguinte mensagem de erro aparece:

* ORA-00911: caractere inválido

causa

Você tentou executar uma instrução SQL que inclui um caractere especial.

resolução

A opção (s) para resolver este erro do Oracle são:

Opção 1

Este erro ocorre quando você tenta usar um caractere especial em uma instrução SQL. Se um personagem especial, além do $, _, e # é usado no nome de uma coluna ou tabela, o nome deve ser colocado entre aspas duplas.

Opção # 2

Este erro pode ocorrer se você colou seu SQL em seu editor de outro programa. Às vezes, há caracteres não imprimíveis que podem estar presentes. Neste caso, você deve tentar redigitar sua instrução SQL e, em seguida, ser executado novamente.

Opção # 3

Este erro ocorre quando um caractere especial é usado em uma cláusula WHERE de SQL e o valor não está entre aspas simples.

Por exemplo, se você tivesse a seguinte instrução SQL:

SELECT * de fornecedores
ONDE supplier_name =?;

Você iria receber a seguinte mensagem de erro:

ora00911_001.png

Você pode corrigir este erro colocando o ? em citações individuais do seguinte modo:

SELECT * FROM suppliers
WHERE supplier_name = '?';

//----------------------------------------------------------------------------------------------------------------

veja a sua instrução

String Sql = "SELECT * FROM usuarios WHERE usuario like '"+L.getUsuario()+"' and senha like '"+L.getSenha()+"';";

o erro pode ser aquele penultimo ( ; ) ou podem ser as aspas ( '" )

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...