[size=18]Galera, é o seguinte, criei uma tabela no MYSQL com o campo DATE.
Criei uma classe no java chamada Produto, essa classe contem uma variavel do tipo Date chamada “validade”.
A quetão é a seguinte, como que eu passo uma data do tipo “dd/MM/yyyy” para a variável “validade” e converto esse valor para que ele seja aceito no meu BD?
Já tentei usar o SimpleDateFormat, + foi sem sucesso.[/size]
código:[code]
package Produto;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import Conexao.ConnectionFactory;
public class ProdutoDAO {
private Connection connection;
public ProdutoDAO(){
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Produto produto){
String sql = "insert into produtos (classe,precoTabela,validade,nome) values (?,?,?,?)";
try {
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, produto.getClasse());
stmt.setDouble(2, produto.getPreco());
//stmt.setDate(3, date);
stmt.setString(4, produto.getNome());
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public List<Produto> getLista(){
try{
List<Produto> produtos = new ArrayList<Produto>();
PreparedStatement stmt = this.connection.prepareStatement("select * from produtos");
ResultSet rs = stmt.executeQuery();
while(rs.next()){
Produto produto = new Produto();
produto.setId(rs.getLong(1));
produto.setNome(rs.getString("classe"));
produto.setPreco(rs.getDouble("precoTabela"));
//produto.setValidade(rs.getDate("validade"));
produto.setNome(rs.getString("nome"));
produtos.add(produto);
}
rs.close();
stmt.close();
return produtos;
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public void altera(Produto produto){
String sql="update produtos set classe=?, precoTabela=?, validade=?, nome=? where id=?";
try{
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, produto.getClasse());
stmt.setDouble(2, produto.getPreco());
//stmt.setDate(3, produto.getValidade());
stmt.setString(4, produto.getNome());
stmt.setLong(5, produto.getId());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public void remove(Produto produto){
try {
PreparedStatement stmt = connection.prepareStatement("delete from produtos where id=?");
stmt.setLong(1, produto.getId());
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException();
}
}
}[/code]
[size=18]
Como podem ver, todos os campos que eu utilizo a variável “validade” estão comentados, pois eu não consegui converter o valor e insri-lo no BD.
Classe Protuto (java bean)[/size]
[code]package Produto;
import java.util.Calendar;
import java.util.Date;
public class Produto {
private Long id;
private double preco;
String nome, classe;
Date validade;
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getClasse() {
return classe;
}
public void setClasse(String classe) {
this.classe = classe;
}
public Date getValidade() {
return validade;
}
public void setValidade(Date validade) {
this.validade = validade;
}
}
[/code]
- uma vez, conto com a ajuda da galera do guj.
Obrigado a todos!