[Java] Inserir campos com máscaras no banco de dados

Boa tarde!

Sou novo no mundo da programação, e estou tendo problemas ao inserir campos com máscaras. Eu consigo inserir a máscara e quando testo a aplicação ela já aparece com a máscara perfeitamente. Mas quando eu vou inserir no banco de dados, queria que inserisse na tabela somente os números digitados pelo usuário, e não a data com as barras, traços e etc. Exemplo:

Declarei o campo na aplicação assim:

try { formato_cpf = new MaskFormatter ("###.###.###-##"); }
catch (Exception erro){
JOptionPane.showMessageDialog(null, “Não foi possível criar máscara para o campo CPF: " +
”\n\n" + erro);
}
jftf_cpf = new JFormattedTextField(formato_cpf);

Eu declarei a coluna desse campo no banco de dados como cpf varchar (11);

Ao fazer o insert, eu faço mais ou menos assim:

String instrucao_sql = “insert into tb_pessoa ( cpf ) values ( '” + jftf_cpf.getText() + "’);

Ao fazer a inserção dá erro porque ao invés do sistema inserir somente os números, ele insere também os pontos e traços da máscara.

Estou usando o banco JDBC.

Alguém sabe o que estou fazendo de errado?

Tem algumas formas de fazer. Dentre elas, criar um método private devolvendo o valor do texto “desformatado”.

private String removerMascara(String str){
	return str.replace("-", "").replace(".", "");
}

String instrucao_sql = “insert into tb_pessoa ( cpf ) values ( '” + removerMascara(jftf_cpf.getText()) + "’); 

Ah, concatenar string no sql não é uma boa prática. Use prepared statements para isso. Evite SQL Injections.