estou desenvolvendo minha primeira aplicacao desktop e surgiram algumas duvidas. Meu programa tem persistencia de dados (Novo Projeto, usuarios, calculos, grupos etc). Porém, a aplicacao nao é grande e nao ha problemas com relacao a seguranca.
Eu gostaria de saber se eu devo fazer a persistencia em arquivos txt mesmo ou se devo usar um MySQL. Com relacao ao BD eu estou boiando… gostaria de saber como eu mando o banco embutido na aplicacao para o cliente pra que ele nao tenha que fazer nenhum tipo de instalacao ou configuração adicional.
…cara não sei se isso te ajuda…mas se vc for usar o MySQL…existe um Banco de Dados público em MySQL muito usado por empresas de pequeno e médio porte…
Dessa maneira vc precisaria apenas criar a classe de conexão diretamente com esse banco…e o seu cliente só vai precisar ter acesso a internet…
desenvolvi uma aplicação…e até ia usar esse banco…mas o cliente não quer internet…aí tive q ir instalar local mesmo… :?
só vou ficar te devendo o link…mas procura q vc acha…
ciczan
Uma solução relativamente facil é serializar os beans para xml.
T
thingol
srolbh:
gostaria de saber como eu mando o banco embutido na aplicacao para o cliente pra que ele nao tenha que fazer nenhum tipo de instalacao ou configuração adicional.
Se for usar o Java 6.0 o JDK já vem com o Derby (versão JavaDB).
O Derby e o HSQLDB funcionam perfeitamente com Java 1.4, 5.0 e 6.0; então você só teria problemas se tivesse de fazer o banco funcionar em ambiente Microsoft JVM (Java 1.1). Mas acho que isso não é problema para você.
Eu sei que o HSQLDB tem 2 modos de operação: um deles (“stand-alone”) é semelhante ao Access (ou seja, você cria um arquivo de bancos de dados e ele é acessível apenas pela sua aplicação), e outro (“server”) permite a você acessar o banco por outras aplicações Java.
Quanto ao Derby acho que é a mesma coisa, mas para maiores detalhes confirme no site do Derby.
srolbh
Obrigado a todos pelos esclarecimentos. Estou usando o Derby.
Abraços!
srolbh
Estou tendo doificuldades com o Derby (nao consigo mante-lo carregado na JVM), e com isso a persistencia nao é feita. Eu sou bem novato em se tratando de Banco de Dados.
Vou testar o db4o pra ver se facilita.
Vlw
Kknd
srolbh:
Ola pessoal,
estou desenvolvendo minha primeira aplicacao desktop e surgiram algumas duvidas. Meu programa tem persistencia de dados (Novo Projeto, usuarios, calculos, grupos etc). Porém, a aplicacao nao é grande e nao ha problemas com relacao a seguranca.
Eu gostaria de saber se eu devo fazer a persistencia em arquivos txt mesmo ou se devo usar um MySQL. Com relacao ao BD eu estou boiando… gostaria de saber como eu mando o banco embutido na aplicacao para o cliente pra que ele nao tenha que fazer nenhum tipo de instalacao ou configuração adicional.
Valeu
Recomendo você dar uma olhada no banco de dados OO chamado NeoDatis, ele é muito bom e a licensa é LGPL (procura lá no sourceforge ou no site dele http://odb.neodatis.org/).
srolbh
Kknd:
srolbh:
Ola pessoal,
estou desenvolvendo minha primeira aplicacao desktop e surgiram algumas duvidas. Meu programa tem persistencia de dados (Novo Projeto, usuarios, calculos, grupos etc). Porém, a aplicacao nao é grande e nao ha problemas com relacao a seguranca.
Eu gostaria de saber se eu devo fazer a persistencia em arquivos txt mesmo ou se devo usar um MySQL. Com relacao ao BD eu estou boiando… gostaria de saber como eu mando o banco embutido na aplicacao para o cliente pra que ele nao tenha que fazer nenhum tipo de instalacao ou configuração adicional.
Valeu
Recomendo você dar uma olhada no banco de dados OO chamado NeoDatis, ele é muito bom e a licensa é LGPL (procura lá no sourceforge ou no site dele http://odb.neodatis.org/).
Ola,
Obrigado por mais esta sugestão. Mas estou usando o db4o e recomendo também. Nota 10!
Rodrigo_Manhaes
Eu uso o Apache Derby em um projeto e ele funciona muito bem.
Estou colando abaixo o fonte da classe que faz a conexão com o Derby
packagepostgeoolap.core.metadata;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjavax.swing.JOptionPane;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;importpostgeoolap.core.i18n.Local;importpostgeoolap.core.util.Utils;publicclassMetadataConnection{privatestaticConnectionconnection;privatestaticLoglog=LogFactory.getLog(MetadataConnection.class);/** * Note: does not throw an exception, freeing user classes to handle it, * because only once (singleton pattern) there will be a chance of exception * * @return a connection to metadata database */publicstaticConnectionconnection(){if(connection==null){try{Class.forName("org.apache.derby.jdbc.EmbeddedDriver");Stringdirectory=Utils.getPostGeoOlapDirectory()+"metadata";connection=DriverManager.getConnection("jdbc:derby:"+directory+";create=true","APP","APP");}catch(ClassNotFoundExceptione){log.error(e.getMessage(),e);JOptionPane.showMessageDialog(null,Local.getString("error.derby_driver_not_found"));}catch(SQLExceptione){log.error(e.getMessage(),e);JOptionPane.showMessageDialog(null,Local.getString("error.cannot_connect_metadata"));}}returnconnection;}}
Abaixo, um método que utiliza a classe MetadataConnection listada acima para submeter uma consulta:
publicvoidclearEmptyCubes()throwsMetadataException{Connectionconnection=MetadataConnection.connection();Stringsql="DELETE FROM cube "+" WHERE cubecode NOT IN ( "+" SELECT cubecode FROM dimension)";try{Statementstatement=connection.createStatement();statement.execute(sql);log.info(Local.getString("message.empty_cubes_deleted"));}catch(SQLExceptione){Stringmsg=Local.getString("error.deleting_empty_cubes");log.error(msg+": "+e.getMessage());thrownewMetadataException(msg,e);}}
Rodrigo , eu ate consegui fazer o Derby funcionar… mas depois que eu havia testado o Db4o. E o Native Query do Db4o é tao bom que eu descartei o Derby completamente rs…
Eu acho que BDOOs deveriam ser mais utilizados
abraços
Luiz_Aguiar
Se seu software não for GPL vc precisa comprar o db4o para distribuí-lo com a aplicação, se for GPL não precisa, pode usar à vontade.
srolbh
Se seu software não for GPL vc precisa comprar o db4o para distribuí-lo com a aplicação, se for GPL não precisa, pode usar à vontade.