hishin
Dezembro 1, 2011, 8:13am
#1
Bom dia
Estou desenvolvendo uma aplicação java desktop que salva no BD mysql.
Está salvando normal, porém, o campo salário não salva. Eu coloquei uma mascara no campo e qdo peço para salvar no banco, ele vira zerado la.
o tipo do campo no BD eh decimal e no programa eh float.
podem me ajudar?
vlw!!!
cara,
sua mascara deve estar assim ne, por exemplo 1.532,50, qdo vc passar para o float, vc tem que ter algo assim 1532.50, será que nao é isso?
t+
hishin
Dezembro 1, 2011, 8:24am
#3
minha mascara esta assim…
“R$ ####,##”
agora q estou pensando… qdo vc usa mascara… ele joga ela no BD tb… pq se for… da dando problema nisso… :s
hishin
Dezembro 1, 2011, 8:26am
#4
eu tirei o R$… e deixei ####.## e depois ####,##
nenhum dos 2 funcionam
vc tem que converter essa sua String em float, por isso que está ocorrendo o erro.
t+
posta seu codigo que vc ta salvando no banco
t+
hishin
Dezembro 1, 2011, 9:05am
#7
segue o codigo… grato!
//Botão salvar
//A função de String trim() é uma função que retira os espaços do início e do final da String.
String nome = txt_nome.getText().trim();
String ender = txt_endereco.getText().trim();
String cpf = txt_cpf.getText().trim();
String fone = txt_fone.getText().trim();
String cidade = txt_cidade.getText().trim();
String uf = cb_uf.getSelectedItem().toString().trim();
String cargo = cb_cargos.getSelectedItem().toString().trim();
String salario= txt_salario.getText().trim();
if ((nome.equals("")) || (ender.equals("")) || (cpf.equals("")) ||
(fone.equals("")) || (cidade.equals("")) || (uf.equals("")) ||
(cargo.equals("")) || (uf.equals("")))
{
JOptionPane.showMessageDialog(rootPane, "Algum campo está em branco!");
}
else
{
Funcionarios funcionarios = new Funcionarios();
funcionarios.setNome(nome);
funcionarios.setCpf(cpf);
funcionarios.setEndereco(ender);
funcionarios.setCidade(cidade);
funcionarios.setFone(fone);
funcionarios.setUf(uf);
funcionarios.setCargo(cargo);
funcionarios.setSalario(TOP_ALIGNMENT);
FuncionariosDAO dao = new FuncionariosDAO();
try
{
dao.incluir(funcionarios);
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(rootPane, "Aconteceu o erro" + e.getMessage());
System.out.println();
}
travar_campos();
abre_navegacao();
}
//Classe salvar funcionarios
package hotel.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import hotel.dominio.Funcionarios;
/**
*
* @author raphael
*/
public class FuncionariosDAO {
private Connection con;
public FuncionariosDAO()
{
try
{
con = new conexao().getConnection();
}
catch(SQLException ex)
{
System.out.println("Aconteceu o erro: "+ex.getMessage());
}
}
public void incluir(Funcionarios funcionario) throws SQLException
{
String sql = "INSERT INTO Funcionarios"
+"(cod_func,nome,cargo,salario,endereco,cidade,uf,fone,cpf)"
+"VALUES(?,?,?,?,?,?,?,?,?)";
try
{
//prepara o statement para a inserção de um novo cliente
PreparedStatement stmt = this.con.prepareStatement(sql);
//definir os valores de acordo com o passado objeto cliente
stmt.setInt(1, funcionario.getCod_func());
stmt.setString(2, funcionario.getNome());
stmt.setString(3, funcionario.getCargo());
stmt.setFloat(4, funcionario.getSalario());
stmt.setString(5, funcionario.getEndereco());
stmt.setString(6, funcionario.getCidade());
stmt.setString(7, funcionario.getUf());
stmt.setString(8, funcionario.getFone());
stmt.setString(9, funcionario.getCpf());
//executa o script sql
stmt.execute();
//fecha o BD
stmt.close();
}
catch(SQLException ex)
{
throw new RuntimeException(ex);
}
}
public void alterar(Funcionarios fun) throws SQLException
{
String sql = "UPDATE Funcionarios"
+"set nome=?, cargo=?, salario=?, endereco=?, uf=?, fone=?, cpf=?"
+"WHERE cod_fun=?";
try
{
//prepara o statement para a alteração
PreparedStatement stmt = this.con.prepareStatement(sql);
//seta os valores
stmt.setString(1, fun.getNome());
stmt.setString(2, fun.getCargo());
stmt.setFloat(3, fun.getSalario());
stmt.setString(4, fun.getEndereco());
stmt.setString(5, fun.getCidade());
stmt.setString(6, fun.getUf());
stmt.setString(7, fun.getFone());
stmt.setString(8, fun.getCpf());
stmt.setInt(9, fun.getCod_func());
//executa o update
stmt.executeUpdate();
stmt.close();
}
catch(SQLException e)
{
throw new RuntimeException(e);
}
}
public void excluir(int cod_fun) throws SQLException
{
String sql = "DELETE FROM Funcionarios"
+"WHERE cod_fun=?";
try
{
//prepara o statement para excluir
PreparedStatement stmt = this.con.prepareStatement(sql);
//seta os valores
stmt.setInt(1, cod_fun);
//executa
stmt.executeUpdate();
stmt.close();
}
catch(SQLException e)
{
throw new RuntimeException(e);
}
}
public Funcionarios buscar(int cod_fun) throws SQLException
{
Funcionarios funEncontrado = new Funcionarios();
ResultSet rs = null;
String sql = "SELECT * FROM Funcionarios"
+"WHERE cod_fun="+cod_fun;
PreparedStatement stmt = null;
try
{
//prepara o statement para busca
stmt = this.con.prepareStatement(sql);
//executa
rs = stmt.executeQuery(sql);
if(rs.next())
{
funEncontrado.setCod_func(rs.getInt("cod_fun"));
funEncontrado.setNome(rs.getString("nome"));
funEncontrado.setCargo(rs.getString("cargo"));
funEncontrado.setSalario(rs.getFloat("salario"));
funEncontrado.setEndereco(rs.getString("endereco"));
funEncontrado.setCidade(rs.getString("cidade"));
funEncontrado.setUf(rs.getString("uf"));
funEncontrado.setFone(rs.getString("fone"));
funEncontrado.setCpf(rs.getString("cpf"));
}
return funEncontrado;
}
catch(SQLException e)
{
throw new RuntimeException();
}
}
public ArrayList<Funcionarios>buscarTodos() throws SQLException
{
ArrayList<Funcionarios> dados = new ArrayList<Funcionarios>();
ResultSet rs = null;
String sql = "SELECT * FROM Funcionarios";
PreparedStatement stmt = null;
try
{
stmt = this.con.prepareStatement(sql);
rs = stmt.executeQuery(sql);
while(rs.next())
{
Funcionarios funEncontrado = new Funcionarios();
funEncontrado.setCod_func(rs.getInt("cod_fun"));
funEncontrado.setNome(rs.getString("nome"));
funEncontrado.setCargo(rs.getString("cargo"));
funEncontrado.setSalario(rs.getFloat("salario"));
funEncontrado.setEndereco(rs.getString("endereco"));
funEncontrado.setCidade(rs.getString("cidade"));
funEncontrado.setUf(rs.getString("uf"));
funEncontrado.setFone(rs.getString("fone"));
funEncontrado.setCpf(rs.getString("cpf"));
dados.add(funEncontrado);
}
rs.close();
this.con.close();
}
catch(SQLException e)
{
throw new RuntimeException(e);
}
return dados;
}
}
//classe funcionarios
package hotel.dominio;
/**
*
* @author raphael
*/
public class Funcionarios {
private int cod_func;
private String nome;
private String cargo;
private float salario;
private String endereco;
private String cidade;
private String uf;
private String fone;
private String cpf;
/**
* @return the cod_func
*/
public int getCod_func() {
return cod_func;
}
/**
* @param cod_func the cod_func to set
*/
public void setCod_func(int cod_func) {
this.cod_func = cod_func;
}
/**
* @return the nome
*/
public String getNome() {
return nome;
}
/**
* @param nome the nome to set
*/
public void setNome(String nome) {
this.nome = nome;
}
/**
* @return the cargo
*/
public String getCargo() {
return cargo;
}
/**
* @param cargo the cargo to set
*/
public void setCargo(String cargo) {
this.cargo = cargo;
}
/**
* @return the salario
*/
public float getSalario() {
return salario;
}
/**
* @param salario the salario to set
*/
public void setSalario(float salario) {
this.salario = salario;
}
/**
* @return the endereco
*/
public String getEndereco() {
return endereco;
}
/**
* @param endereco the endereco to set
*/
public void setEndereco(String endereco) {
this.endereco = endereco;
}
/**
* @return the cidade
*/
public String getCidade() {
return cidade;
}
/**
* @param cidade the cidade to set
*/
public void setCidade(String cidade) {
this.cidade = cidade;
}
/**
* @return the uf
*/
public String getUf() {
return uf;
}
/**
* @param uf the uf to set
*/
public void setUf(String uf) {
this.uf = uf;
}
/**
* @return the fone
*/
public String getFone() {
return fone;
}
/**
* @param fone the fone to set
*/
public void setFone(String fone) {
this.fone = fone;
}
/**
* @return the cpf
*/
public String getCpf() {
return cpf;
}
/**
* @param cpf the cpf to set
*/
public void setCpf(String cpf) {
this.cpf = cpf;
}
}
cara,
pq vc colocou isso assim
funcionarios.setSalario(TOP_ALIGNMENT);
vc ja tentou colocar seu atributo salario como double?
t+
hishin
Dezembro 1, 2011, 9:17am
#9
eu estava reparando no meu codigo e no botao salvar onde esta " funcionarios.setSalario(TOP_ALIGNMENT); "
qdo eu coloco salario no lugar de TOP_ALIGNMENT… O netbeans pede pra criar um metodo setSalario(java.lang.String) em hotel.dominio.Funcionarios
qdo eu crio… ele cria um método na classe Funcionarios e fica assim:
publib void setSalario(String salario){
throw new UnsupportedOperationException("Not yet implemented");
}
hishin
Dezembro 1, 2011, 9:17am
#10
[quote=alissonvla]cara,
pq vc colocou isso assim
funcionarios.setSalario(TOP_ALIGNMENT);
vc ja tentou colocar seu atributo salario como double?
t+[/quote]
o netbeans deu sozinho…
rsrs…
ta ai o erro, ai que vc vai ter que fazer a conversão do maskinput para float.
t+
hishin
Dezembro 1, 2011, 9:20am
#12
putz… cara… como faz isso? :?
como ta chegando sua getText do seu maskinput? posta um exemplo
hishin
Dezembro 1, 2011, 9:27am
#14
eu não sei se foi isso q vc pediu…
eh assim q esta configurado a minha mascara
código pré-criação
try
{
formatosal = new MaskFormatter("#####,##");
}
catch(Exception erro)
{
JOptionPane.showMessageDialog(null, "Não foi possível setar a máscara"+erro);
}
criação de código personalizado
txt_salario = new JFormattedTextField(formatosal);
quero saber o que está vindo aqui
String salario= txt_salario.getText().trim();
t+
hishin
Dezembro 1, 2011, 9:39am
#16
cara… me perdoe… mas n to entendendo muito bem. vc quer saber q tipo de variavel q esta chegando no nesse campo?
se sim, bom… eh pra ser float…
hishin
Dezembro 1, 2011, 9:42am
#17
cara… me perdoe mas n to entendendo muito bem oq vc quer dizer…
vc quer saber q tipo de valor q esta chegando no campo?
se sim, eh pra ser float… pq senao fica incompativel com o banco…
desculpe a minha ignorancia
thanks
cara,
vc pode fazer assim
//criacao do seu componente
NumberFormatter numFormatter = new NumberFormatter(new DecimalFormat("#,###.00"));
numFormatter.setAllowsInvalid(false);
txt_salario = new JFormattedTextField();
txt_salario.setFormatterFactory( new DefaultFormatterFactory(numFormatter));
//preencher seu objeto Funcionario
funcionarios.setSalario(Float.valueOf(valor.getValue().toString()));
t+