Problemas com conexão no banco de dados em Java

06/01/2016

8

Olá a todos.

Não tenho muita experiencia com Java e me deparei com um problema num simples projeto que estou fazendo pra uma amiga.

Ano passado na faculdade fiz um trabalho e estava acompanhando ele, mas por algum motivo (mesmo estando igual) está dando um erro na hora de inserir os dados que eu preencho nos campos textfields. Pelo que vi, é algum problema de conexão, mas não sei como identificar, visto que está tudo certo.

Aqui o código da ação do botão "incluir":
btIncluir.addActionListener(new ActionListener(){
@Override
public void actionPerformed (ActionEvent e){

Conexao conecta = new Conexao();
conecta.conecta();

int retorno = conecta.inserir("insert into Modelo "
+ "(nomeModelo, valor)"
+ "values ('"
+ tfNomeModelo.getText()+"','"
+ tfValor.getText()+ "');");
if (retorno != -1){
JOptionPane.showMessageDialog(null,
"Incluido com Sucesso!", "Informação",JOptionPane.INFORMATION_MESSAGE);
}
conecta.desconecta();
}
});


Aqui o código de conexão, feito junto com meu professor na sala de aula:
package anamarcadores;

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

public class Conexao {
public Connection c;

public boolean conecta(){
boolean isConected=false;

try{
String url = "jdbc:sqlserver://Julio\\SQLEXPRESS:1433;databaseName=Marcador"+
";user=JulioCesar" + ";password=123456;";

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
this.c = DriverManager.getConnection(url);
isConected=true;
}
catch(ClassNotFoundException | SQLException ex){
System.out.println(ex.getMessage());
isConected=false;
}

return isConected;
}
public boolean desconecta(){
try{
c.close();
return true;
}catch(SQLException ex){
System.out.println(ex.getMessage());
return false;
}
}
public int inserir(String cmd){
Statement st;
int resp =-1;
try{
st = c.createStatement();
resp = st.executeUpdate(cmd);
}catch(SQLException e){
System.out.println(e.getMessage());
}
return resp;
}
public ResultSet consultar(String query) {
Statement st;
ResultSet rs;
try {
st = this.c.createStatement();
rs = st.executeQuery(query);
return rs;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}

}


E aqui o erro que ocorre quando eu preencho os campos e clico em "Incluir":
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: AnaMarcadores.Conexao
at AnaMarcadores.NovoCliente$2.actionPerformed(NovoCliente.java:121)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:724)
at java.awt.EventQueue$4.run(EventQueue.java:722)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


Ps: Usei a tag de quote porque a de code fica tudo na mesma linha (??). Se alguém souber como fazer isso agradeceria, visto que não é muio legal ver o código assim.

Desde já, obrigado.
Responder

Posts

06/01/2016

Jothaz

O banco de dados existe e você consegue conectar a ele fora da sua aplicação?
Responder

06/01/2016

Julio

Sim sim, existe, tudo certinho. Fiz um teste da aplicação e ela funcionou (ou pelo menos acho que funcionou).
Responder

06/01/2016

Jothaz

Sim sim, existe, tudo certinho. Fiz um teste da aplicação e ela funcionou (ou pelo menos acho que funcionou).


Achar que funciona, ai complica, precisamos de uma certeza! kk

Vamos tentar por outro caminho por exemplo usando o Management Studio você consegue conectar-se ao banco de dados e executar um select em sua tabelas?
Responder

06/01/2016

Julio

Sim sim, consigo normalmente. Usando o user e a senha que ta ali na Conexão.
Responder

07/01/2016

Jothaz

Beleza assim eliminamos problemas em relação ao banco de dados.

O erro (Uncompilable source code) aparentemente é por não conseguir compilar o método.

Post o código usando a tag code, pois na visualização fica em uma linha mas depois de postado fica correto, para facilitar a leitura.

Você usa alguma IDE?
Responder

07/01/2016

Julio

Aqui o código da ação do botão "incluir":

btIncluir.addActionListener(new ActionListener(){
@Override
public void actionPerformed (ActionEvent e){

Conexao conecta = new Conexao();
conecta.conecta();

int retorno = conecta.inserir("insert into Modelo "
+ "(nomeModelo, valor)"
+ "values ('"
+ tfNomeModelo.getText()+"','"
+ tfValor.getText()+ "');");
if (retorno != -1){
JOptionPane.showMessageDialog(null, 
"Incluido com Sucesso!", "Informação",JOptionPane.INFORMATION_MESSAGE); 
} 
conecta.desconecta();
}
});


Aqui o código de conexão, feito junto com meu professor na sala de aula:

package anamarcadores;

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

public class Conexao {
public Connection c;

public boolean conecta(){
boolean isConected=false;

try{
String url = "jdbc:sqlserver://Julio\\SQLEXPRESS:1433;databaseName=Marcador"+
";user=JulioCesar" + ";password=123456;";

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");	
this.c = DriverManager.getConnection(url);
isConected=true;
}
catch(ClassNotFoundException | SQLException ex){
System.out.println(ex.getMessage());
isConected=false;
}

return isConected;
}
public boolean desconecta(){
try{
c.close();
return true;
}catch(SQLException ex){
System.out.println(ex.getMessage());
return false;
}
}
public int inserir(String cmd){
Statement st;
int resp =-1;
try{
st = c.createStatement();
resp = st.executeUpdate(cmd);
}catch(SQLException e){
System.out.println(e.getMessage());
}
return resp;
}
public ResultSet consultar(String query) {
Statement st;
ResultSet rs;
try {
st = this.c.createStatement();
rs = st.executeQuery(query);
return rs;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}

}


E aqui o erro que ocorre quando eu preencho os campos e clico em "Incluir":

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: AnaMarcadores.Conexao
at AnaMarcadores.NovoCliente$2.actionPerformed(NovoCliente.java:121)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:724)
at java.awt.EventQueue$4.run(EventQueue.java:722)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


Eu uso NetBeans
Responder

07/01/2016

Jothaz

Você esta usando alguma IDE, se estiver tente debugar e verificar onde ocorre o erro. Pois assim você acompanha a execução passo a passo.
Responder

07/01/2016

Julio

Eu debuguei e apareceu o mesmo erro.

ebug:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: AnaMarcadores.Conexao
	at AnaMarcadores.NovoCliente$2.actionPerformed(NovoCliente.java:121)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6525)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6290)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4881)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
	at java.awt.Container.dispatchEventImpl(Container.java:2278)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:702)
	at java.awt.EventQueue$3.run(EventQueue.java:696)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:724)
	at java.awt.EventQueue$4.run(EventQueue.java:722)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Responder

13/01/2016

Ronaldo Filho

Boa tarde Grande.

Tenta essa url jdbc:sqlserver://localhost\marcador:1433;user=JulioCesar;password=123456
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira