Leob 0 Denunciar post Postado Outubro 13, 2009 estou tentando fazer um formulario onde ao clicar no botao cadastrar as informações sao enviadas para o bd será que alguem podia me ajudar... eu sei que deve estar bem errado mas eh que sem ser pelo VE eu consigo fazer mais ou menos dessa forma e como nao entendo muito ainda tentei fazer dessa forma codigo do botão inserir: private JButton getBtncadastrar() { if (btncadastrar == null) { btncadastrar = new JButton(); btncadastrar.setBounds(new Rectangle(291, 224, 110, 33)); btncadastrar.setText("Cadastrar"); btncadastrar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { Connection conexao=null; String codigo=txtcodigo.getText(); String nome=txtnome.getText(); String email=txtemail.getText(); String url = "jdbc:oracle:thin:@localhost:1521:XE"; String usuario= "Leonardo"; String senha = "trunks"; try { OracleDataSource ds = new OracleDataSource(); ds.setURL(url); conexao = ds.getConnection(usuario,senha); Statement stmt = conexao.createStatement(); ResultSet rs = stmt.executeQuery("Insert into Cliente values('"+codigo+"','"+nome+"','"+email+"')"); } catch(SQLException a) { System.out.println("Ocorreu um erro"); } } }); } return btncadastrar; } Erros: IWAV0052E Invocation Target Exception creating inserir.inserir java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:461) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at inserir.inserir.getBtncadastrar(inserir.java:101) at inserir.inserir.getJContentPane(inserir.java:61) at inserir.inserir.initialize(inserir.java:37) at inserir.inserir.<init>(inserir.java:31) ... 12 more Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Outubro 13, 2009 O método executeQuery é utilizado para comandos que retornam um conjunto de dados (select por exemplo). Para comandos de inserção utiliza-se executeUpdate ou execute. PS: Se não for utilizar um framework objeto relacional utilize PreparedStatement invés de Statement. Compartilhar este post Link para o post Compartilhar em outros sites
Leob 0 Denunciar post Postado Outubro 15, 2009 eu nao estou conseguindo será que alguém podia me explicar um pouco melhor ? Quando tento usar executeUpdate ou execute ele ainda da erro ... algo mais que eu possa mudar Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Outubro 15, 2009 Pelo código que você postou não sei o que pode estar acontecendo. Quanto à excessão só posso dizer o que ela significa, daí é com você examinar o seu código e descobrir. Imagine que você tenha duas classes com o mesmo nome, porém em pacotes diferentes. Por exemplo: pacote cliente e classe DAO; pacote fornecedor e classe DAO. Agora imagine que voce tenha uma interface gráfica onde é necessário instanciar o objeto cliente.DAO e fornecedor.DAO. Você adiciona os imports para as duas classes e instancia cada objeto Ex.: DAO clienteDAO = new DAO();. No momento que você executar o programa o compilador não saberá qual classe realmente você está instanciando. Se é cliente.DAO ou fornecedor.DAO. E é nesse momento que a excessão é disparada. "IWAV0052E Invocation Target Exception creating inserir.inserir" Essa é a sua pista. Compartilhar este post Link para o post Compartilhar em outros sites