Illegal scape character ! "String url"

Amigos, no netbeans criei um formulario somente com 1 botao.

Meu intuito é ver se consigo conectar o java em um banco de dados access ( jah configurei o ODBC pra ele ) …

Dentro dele coloquei os seguintes codigos ( junto com codigos que o netbens gera automaticamente )

Acontece o erro “Illegal scape character” nesta linha String url = “jdbc:odbc:Documents and Settings\danilo\Desktop”;

porque acotnece isso? sou novo no java e não conheco muita coisa, desculpe a ignorancia

:slight_smile:

sds,

->>

public class NewJFrame extends javax.swing.JFrame {

/** Creates new form NewJFrame */
public NewJFrame() {
    initComponents();
}

/** This method is called from within the constructor to
 * initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is
 * always regenerated by the Form Editor.
 */
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jButton1 = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setName("Form"); // NOI18N

    org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(desktopapplication1.DesktopApplication1.class).getContext().getResourceMap(NewJFrame.class);
    jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
    jButton1.setName("jButton1"); // NOI18N
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(139, 139, 139)
            .addComponent(jButton1)
            .addContainerGap(186, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(106, 106, 106)
            .addComponent(jButton1)
            .addContainerGap(171, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>                        

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String url = "jdbc:odbc:Documents and Settings\danilo\Desktop";
    String usuario = "";
    String senha = "";
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(DesktopApplication1View.class.getName()).log(Level.SEVERE, null, ex);
    }
    Connection con = null;
    try {
        try {
            con = DriverManager.getConnection(url, usuario, senha);
        } catch (SQLException ex) {
            Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
         JOptionPane.showMessageDialog(null,"Conexão estabelecida","Mensagem do Programa",JOptionPane.INFORMATION_MESSAGE);
    }
    finally{
        try {
            con.close(); // TODO add your handling code here:
        } catch (SQLException ex) {
            Logger.getLogger(DesktopApplication1View.class.getName()).log(Level.SEVERE, null, ex);
        }
    }        // TODO add your handling code here:
}                                        

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new NewJFrame().setVisible(true);
        }
    });
}

// Variables declaration - do not modify                     
private javax.swing.JButton jButton1;
// End of variables declaration                   

}

Substutua sua string

String url = "jdbc:odbcocuments and Settings\danilo\Desktop"; 

por

String url = "jdbc:odbcocuments and Settings\danilo\Desktop"; 

O caracter “” é especial, você tem que colocar duas pra ele entender que é uma “”.

ok, obrigado !

eu mudei minha programacao acima, favor desconsiderar.

Coloquei da seguinte forma:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String url = “jdbc:odbc:ACCESSJAVA”;
String usuario = “”;
String senha = “”;
try {
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Connection con;
con = DriverManager.getConnection(url, usuario, senha);
JOptionPane.showMessageDialog(null,“Conexão estabelecida”,“Mensagem do Programa”,JOptionPane.INFORMATION_MESSAGE);
con.close;
} catch (ClassNotFoundException ex) {
Logger.getLogger(DesktopApplication1View.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null,“Conexão não estabelecida”,“Mensagem do Programa”,JOptionPane.INFORMATION_MESSAGE);
}
finally{

    }        

}         

Ele acusa o seguinte erro no con.close; :

not a statement

alguem saberia oque é?

sds,

con = DriverManager.getConnection(url, usuario, senha);
isso te retorna uma conexão aberta? nao seria necessario: con.open();?

opa, malz, mas acho que vc nem prescisa fecha ela, vc nem chegou a abri-la eu acho, vc somente pegou

não sei brother

Eu não conheco de java, isso que eu programei na verdade peguei de um tutorial, então eu achei que deveria funcionar…

O banco accdb(access 2007) esta no meu desktop.

Eu configurei o odbc pra access, e estava tentando conectar.

tem algum palpite pra me ajudar?
sds,

Oque devo colocar nesta linha : “String url = …”

isso?
String url = “jdbc:odbc:C:\Documents and Settings\danilo\DesktopACCESSJAVA”;

ou isso?
String url = “jdbc:odbc:ACCESSJAVA”;

Entretanto, os dois estao com erros hehehe

alguem saberia me responder oque devo fazer para a conexão funcionar?

“ACCESSJAVA” é o nome do banco de dados… preciso colocar a extensão .accdb?..

sds,

entendi, mas acho que é isso msm, vc só pegou a conexão, mas nao abriu ela ainda, por isso quando vc manda fecha da pau…
tenta debuga a linha onde vc recupera a con, veja se ela vem normalmente.

_____try {
__________Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
__________Connection con;
__________try {
_______________con = DriverManager.getConnection(url, usuario, senha);
__________} catch (SQLException ex) {
_______________Logger.getLogger(DesktopApplication1View.class.getName()).log(Level.SEVERE, null, ex);
_______________JOptionPane.showMessageDialog(null,“Conexão nao estabelecida”,“Mensagem do Programa”,JOptionPane.INFORMATION_MESSAGE);
__________}

__________JOptionPane.showMessageDialog(null,“Conexão estabelecida”,“Mensagem do Programa”,JOptionPane.INFORMATION_MESSAGE);

_____} catch (ClassNotFoundException ex) {
__________Logger.getLogger(DesktopApplication1View.class.getName()).log(Level.SEVERE, null, ex);
__________JOptionPane.showMessageDialog(null,“Conexão não estabelecida”,“Mensagem do Programa”,JOptionPane.INFORMATION_MESSAGE);
__________}
_____finally{

_____}

}  

“FAVOR DESCONSIDERAR O _____ , É SÓMENTE A TABULACAO PRA MELHOR VISUALIZAR”

E os seguintes erros foram mostrados quando eu executei o programa e cliquei no botão:

run:
22/06/2009 15:53:02 desktopapplication1.DesktopApplication1View jButton1ActionPerformed
SEVERE: null
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Nome de fonte de dados muito longo
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at desktopapplication1.DesktopApplication1View.jButton1ActionPerformed(DesktopApplication1View.java:222)
at desktopapplication1.DesktopApplication1View.access$800(DesktopApplication1View.java:28)
at desktopapplication1.DesktopApplication1View$4.actionPerformed(DesktopApplication1View.java:129)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
BUILD SUCCESSFUL (total time: 6 seconds)

Oque seria isso? eu não tenho a MINIMA IDEIA :frowning:

Muito obrigado!

sds,

troquei a linha para :String url = “jdbc:odbc:ACCESSJAVA” e parece que funcionou.

Irei continuar os estudos, caso eu empacar eu por favor conto com a ajuda de voces!

Muito obrigado pela dedicacao em me ajudar!!!

sds,

coloque teu código entre as tags [code] assim fica mais fácil de visualizar

q hr aparece isso?
a hr que vc clica no botao?
já tentou debugar?
nao parece ser um erro, somente o log de uma build, fala oq vc ta tentando fazer…

markin obrigado pela dica, como sou iniciante por aqui, não sabia que havia este recurso!

E grande amigo Gabriel, aparecia quando eu clicava no botao do formulario ( botei pra rodar o formulario )

Mas eu trokei as linhas e funcionou !..apareceu a msg “conexão estabelecida!”

Quer dizer que funfo…

Bom vou tentar fazer outras coisinhas aqui =D

Errando e aprendendo !

Muito obrigado, e como falei, se eu empacar, posto aqui pra voces me ajudarem

Muito obrigado

sds,

é nóis lol

o grande problema de quando se inicia o desenvolvimento em uma linguagem sem saber NADA …sem curso e afins…é que qualquer coisa te empaca.

Coloquei essas linhas dentro do try, abaixo do “con = DriverManager.getConnection(url, usuario, senha);” :

Statement st = con.createStatement();
ResultSet rs = st.executeQuery(“SELECT * FROM Tabela1 WHERE Cod=2”);

No " Statement st = con.createStatement(); " ele infoma “Incopatible types” … e pede pra trocar para “Statement st = (Statement) con.createStatement();”

tem alguma coisa haver?

E no “ResultSet rs = st.executeQuery(“SELECT * FROM Tabela1 WHERE Cod=2”);” ele da o erro “cannot find symbol”

=|

sds,

o (Statement) se chama “cast”, digamos que é um jeito de vc falar de forma explicita que o objeto é desse tipo…
sobre o resultSet, nao sei, tentou substituir o * pelos nomes das colunas? se bem que acho que nda av…

entao, eu trokei a linha para " java.sql.Statement st = con.createStatement(); " e funcionou !

:X

o porque eu não sei, mas funcionando ta blz !

:smiley:

Agora, o “ResultSet rs = st.executeQuery(“SELECT cor FROM [_m_cad_cores] WHERE Cod=2”);” funciona

Mas na hora de eu jogar para uma caixa de texto ele da erro :

jTextField1.setText(rs.getString(“cor”));

O erro acontece em tempo de execução…quando eu clico no botão…

Ele manda um monte de msg no output:

run:
22/06/2009 16:34:11 desktopapplication1.DesktopApplication1View jButton1ActionPerformed
SEVERE: null
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Estado de cursor inválido
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)
at desktopapplication1.DesktopApplication1View.jButton1ActionPerformed(DesktopApplication1View.java:264)
at desktopapplication1.DesktopApplication1View.access$800(DesktopApplication1View.java:30)
at desktopapplication1.DesktopApplication1View$4.actionPerformed(DesktopApplication1View.java:135)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

saberia dizer oque ele quer dizer com isso? :smiley:

sds,

" java.sql.Statement st = con.createStatement(); "
essa parada tava dando zica pq vc fez o import errado, pode ver que nos imports oq vc tem Statement nao é do msm pacote que esse que vc ta usando agora, e sobre o resultSet, debuga e ve se vem vindo algum dado, ou jpgue direto no banco e veja se vm algum registro.

mas entao…ele da erro provavelmente na hora que executa esta linha:

jTextField1.setText(rs.getString(“cor”));

pra saber se esta trazendo as informações isto já não basta ?

Pois a linha “ResultSet rs = st.executeQuery(“SELECT cor FROM [_m_cad_cores] WHERE Cod=2”);” funcionou

O problema esta aqui:

jTextField1.setText(rs.getString(“cor”));

Pois eu comentei a linha com o problema e não mandou erro nenhum

Ai eu descomentei ela novamente e o erro voltou

entendeu?

sds,

sim, mas pode estar ocorrendo de essa linha nao estar retornando ninguem, entendeu?