DUVIDA, Banco de Dados

Pessoal, tou fazendo uma aplicação standalone e estou usando o HSQLDB.
O problema está na consistencia dos dados no banco.

Quando, por exemplo, cadastro um funcionário aparece a mensagem q foi cadastrado com sucesso, mas, na maioria das vezes, quando vou pesquisar por ele, ele não está no banco.

Conclusão, esse sistema NÂO ESTÀ BOM!!!

O que eu faço? Será problema no banco ou no código?

Se alguem puder ajudar, ficarei grato!

Vlw.

99,999999997% de chance de ser no código…

hmmm, tente utilizar outro banco de dados para tentar eliminar a possibilidade de ser erro do proprio bd caso funcione perfeitamente.

Eu gosto do ms sqlserver express, eh gratuito e facil de usar =D
mas existem inumeros outros que são tão bons quanto

Acontece que o HSQLDB tem a opção de salvar um dado em memória, isto é, o dado nem chega a ser salvo em disco, e quando a aplicação termina vc ‘perde’ as inserções feitas. A razão pra existência deste recurso é vc utilizar um BD relacional pra fazer uma espécie de cache de dados não persistentes, tipo objetos mais requisitados, etc.

Acredito que vc esteja tendo este tipo de problema. Poste a URL de conexão do HSQLDB pra esclarecer se foi isso …

Mas o q poderia ser[url]?

Parte da Classe Funcionario.DAO:
public void adicionar(FuncionarioTO funcionario) {

	try {
		Statement stmt = this.conexao.createStatement();
		String query = "INSERT INTO Funcionario(id,nome,cpf,rg,telefone,data_nascimento"
				+ ",cidade, cep, estado, "
				+ "rua,bairro,numero,complemento, funcao)VALUES("
				+ null
				+ ",'"
				+ funcionario.getNome()
				+ "','"
				+ funcionario.getCpf()
				+ "','"
				+ funcionario.getRg()
				+ "','"
				+ funcionario.getTelefone()
				+ "','"
				+ funcionario.getData()
				+ "','"
				+ funcionario.getCidade()
				+ "','"
				+ funcionario.getCep()
				+ "','"
				+ funcionario.getEstado()
				+ "','"
				+ funcionario.getRua()
				+ "','"
				+ funcionario.getBairro()
				+ "','"
				+ funcionario.getNumero()
				+ "','"
				+ funcionario.getComplemento()
				+ "','"
				+ funcionario.getFuncao()
				+ "')";
		res = stmt.executeQuery(query);
		stmt.close();
	} catch (SQLException e) {
		System.out.println("Erro duranta a inserção:" + e.getMessage());
	}

}

Parte do SistemaBO
public void addFuncionario(FuncionarioTO funcionario) {
try {
funcionarioDAO = new FuncionarioDAO();
funcionarioDAO.adicionar(funcionario;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

“jdbc:hsqldb:file:bd/aluminio”

a url é o endereço para conexao do banco de dados:
ex

private final static String url = “jdbc:jtds:sqlserver://localhost/luna;user=sa;password=*******”;

Acho q pode ser o q jdefargefalou.
Quando crio uma tabela fica assim no script:
CREATE MEMORY TABLE FUNCIONARIO(ID INTEGER IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,
NOME VARCHAR,
CPF VARCHAR(14),
RG VARCHAR(20),
TELEFONE VARCHAR(15),
DATA_NASCIMENTO VARCHAR(10),
CIDADE VARCHAR(40),
CEP VARCHAR(9),
ESTADO VARCHAR(2),
RUA VARCHAR(40),
BAIRRO VARCHAR(40),
NUMERO INTEGER,
COMPLEMENTO VARCHAR(40),
FUNCAO VARCHAR(50));

public ConexaoHSQLDB() {
try {
Class.forName(“org.hsqldb.jdbcDriver”);
conn = DriverManager
.getConnection(“jdbc:hsqldb:file:bd/aluminio”);
} catch (SQLException e) {
System.out.println(’\n’ + “Erro na conexão com o banco”);
e.printStackTrace();
System.exit(1);
} catch (ClassNotFoundException e) {
System.out
.println(’\n’ + “Classe do driver do banco de dados não encontrada”);
}
}

superRaiz ,
eu não sou tão experiente mais eu sei o q é uma URL…
kkkkk

kkkkk

nunca se sabe quem está do outro lado, entao nao custava nada dizer xD

Ms vlw!

MAs então como faço pra armazenar sem ser em memoria?
LEmbrando q às vezs os dados ficam armazenados de verdade. (rs)

Acho q encontrei o erro.
Por engano quando fui cadastrar o meu banco escolhi a opção: “HSQL DataBase Engine In-Memory” ao invés de standalone.

Vou testar depois falo se deu certo.

Pelo que percebi vc esta criando a tabela na memoria…
troque o “MEMORY” por “CACHED” quando criar a tabela assim ela sera persistidasa

Agora tá funcionando. Vlw aí pelas dicas!!!

Agora tenho outra duvida!
Quanto eu cobro por esse sisteminha?
É bem simples…

ah, se eu pudesse colocar preço depois de desenvolver… hehehehe

lol

Desculpem a minha ignorância em relação a preço.
Estou no nono periodo de sistemas de informação e essa é a primeira fez q desenvolvo um aplicatico comecial.
O cliente me pediu pra dizer o preço antes de fazer, aí eu disse a ele q ia começar a desenvolver e que o preço do software iria depender do grau de dificuldade das tarefas. Mas ele me pediu pra dizer logo pra poder saber se ele pode ou não pagar. Pedi a ele 2 semanas pra começar a desenvolver e depois diria o valor.
Como vcs já são bem mais experientes do quesito, pensei em pedir auxilio à vcs.
O q faço? Ou melhor como vcs fazem?

Lembrando q o cliente é uma micro-empresa q está começando agora!

eu cobro por hora…

faço o orçamento do projeto, calculando as horas que vou gastar, e faço o preço…

se eu passar disso, me ralo… (pq vou ter que trabalhar sem receber).

Mas tem que tomar cuidado pra não passar prazo absurdo, com preço absurdo…

sei lá… eu faço assim…

Quanto é sua hora?