Date em Java

Forum destinado a Linguagem JAVA! Classes, orientação a objeto, conexão com banco, chamada de procedures, etc
Trancado
george15
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 26 Nov 2010 2:01 pm
Localização: Manaus

Aí galera, estou com um probleminha para inserir uma data pelo Java SE.

Este é o SQL para inserir diretamente no banco :

Selecionar tudo

insert into venda(vendata,venclicodigo,venfuncodigo) values (to_date('28/08/98  2:43:22','dd/mm/rr hh24:mi:ss'),2,2);
Porém, como fazer o java inserir a data ?

Selecionar tudo

 rs = st.executeQuery("Insert into venda(vendata,venclicodigo,venfuncodigo) values ('"+vendata+ "','"+venclicodigo+"','"+venfuncodigo+"')");
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP
Ricardo H. Tajiri

Oi George,

Concatenação de valores sempre permite SQL injection... Toma cuidado com isso.

Fora isso, pro Java, você deve informar pelo menos a lib que está utilizando, e a forma de conexão com o banco, senão fica difícil a gente te ajudar.

Vou supor que você está usando o JDBC direto e a lib java.sql, pela linha de código que você passou. Então, a sua conexão do Java com o Oracle deve estar usando a interface java.sql.Connection.

Vamos lá, digamos que um objeto con usa a interface citada acima (java.sql.Connection) e a conexão já está aberta e configurada. Então o certo seria usar o java.sql.PreparedStatement para montar e executar o seu insert.

Selecionar tudo

PreparedStatement stmt = con.prepareStatement("Insert into venda(vendata,venclicodigo,venfuncodigo) values (?,?,?)");
stmt.setDate(1, vendata);
stmt.setString(2, venclicodigo);
stmt.setString(3, venfuncodigo);
stmt.execute();
Veja que a data é setada com o setDate, os outros parâmetros eu coloquei como String, mas se não forem, você troca pro tipo correto... Desta forma você consegue executar qualquer SQL, e ainda "trata" o problema do SQL injection.

Como faz um tempinho que não mexo xom o java, então pode ter algum errinho, mas o caminho é esse aí...

Se você não conseguir, posta aí, mas acho melhor mover o tópico pro fórum de Java, pois o assunto aqui já não é sobre SQL e sim sobre Java.
george15
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 26 Nov 2010 2:01 pm
Localização: Manaus

OK Ricardo, tens razão...A minha dúvida era mesmo em Java, mas vou postar aqui lá uma solução que achei...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

tópico duplicado trancado
Trancado
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes