Salvar no mysql PreparedStatement de uma classe criada pelo usuário

5 respostas
F

A principio, perdão pelo titulo do topico meio sem sentido, mas eh q naum soube como formular uma pergunta melhor…
Meu problema eh inserir em um banco usando “stm.execute();” de uma classe que eu criei, no caso uma que recebe uma determinada data.
Meu código eh esse:

public class tes {

private Connection con;

public tes () throws SQLException
{
    this.con = Banco.abrirConexao();
}

public void adicionarConsulta (GetSetConsulta consulta) throws SQLException
{
    String sql = "INSERT INTO consulta (nome, data)"
            + " VALUES (?,?);"; 
            
    PreparedStatement stm = con.prepareStatement(sql);
    
    stm.setInt(1, consulta.getNome());
    stm.setData(2, consulta.getData());
    
    stm.execute();
    stm.close();
}

}

O “stm.s"etInt(1, consulta.getNome());” vai tranquilo, so que da erro no “stm.setData(2, consulta.getData());” pq a classe “Data” eu que criei, e acredito que o statement nao reconnhece. Como faço pra inserir a data no banco? Se tiver alguma forma de fazer automatico (sem precisar criar uma outra classe pra receber uma data) tambem serve. Vlw.

Obs.: Não sei como fazer pra colocar o código bonitinho como o povo faz no forum =**

5 Respostas

J

veio, seguinte o problema é q o statement tem sua própria classe Date, java.sql.Date, e naum java.util.Date blz?

F

Foi mal a demora, mas eh q tive muitos trabalhos ultimamente…Entendi o que voce disse, mas como eh que faço esse acesso? Vlw!

T

Basta converter o java.util.Date em java.sql.Date.

Sabe como fazer?

Abs

F

Sei nao, amigo…So sabia o basicao de java ateh pouco tempo atras…ainda tow tentando aprender boa parte dos comando intermediarios-avançados. Se nao for muito complicado, tem como postar ai? Grato!

T

Bom...

Nesta linha, você concorda que você recebe uma data do tipo util.Date?

stm.setData(2, consulta.getData());

Basta você passar uma data do tipo sql.Date.

Você tem duas opções.

1-

java.util.Date dataUtil = consulta.getData();  
java.sql.Date dataSql= new java.sql.Date(dataUtil.getTime());

stm.setData(2, dataSql);
Ou fazer a conversão diretamente:
stm.setData(2, new java.sql.Date(consulta.getData().getTime());

Abs!!

Criado 28 de abril de 2012
Ultima resposta 10 de mai. de 2012
Respostas 5
Participantes 3