DUVIDA, Banco de Dados.  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

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.

[MSN]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

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

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
superRuiz
Entusiasta Java
[Avatar]

Membro desde: 11/12/2007 22:20:22
Mensagens: 20
Offline

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
jdefarge
Thread.start()

Membro desde: 13/11/2007 00:15:18
Mensagens: 44
Offline

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 ...
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

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();
}

}



[MSN]
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

"jdbc:hsqldb:file:bd/aluminio"
[MSN]
superRuiz
Entusiasta Java
[Avatar]

Membro desde: 11/12/2007 22:20:22
Mensagens: 20
Offline

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=*******";
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

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));
[MSN]
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

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");
}
}
[MSN]
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

superRaiz ,
eu não sou tão experiente mais eu sei o q é uma URL..
kkkkk
[MSN]
superRuiz
Entusiasta Java
[Avatar]

Membro desde: 11/12/2007 22:20:22
Mensagens: 20
Offline

kkkkk

nunca se sabe quem está do outro lado, entao nao custava nada dizer xD
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

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)
[MSN]
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

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.
[MSN]
thiagoAraujo_al
Debugger

Membro desde: 26/06/2007 19:58:00
Mensagens: 51
Offline

Pelo que percebi vc esta criando a tabela na memoria...
troque o "MEMORY" por "CACHED" quando criar a tabela assim ela sera persistidasa
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

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

Agora tenho outra duvida!
Quanto eu cobro por esse sisteminha?
É bem simples...
[MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team