Distribuir um projeto com banco de dados  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Doumen
What is classpath?

Membro desde: 30/01/2012 23:09:07
Mensagens: 7
Offline

Olá pessoal,

Sou iniciante em Java.

Fiz um pequeno projeto em java que acessa um banco de dados access.

Como faço para distribuí-lo ?

jaboot
Virtual Machine Man

Membro desde: 01/07/2005 14:25:37
Mensagens: 749
Localização: São Paulo
Offline

Compila, gera o jar e manda pra quem você quiser.
[MSN] [ICQ]
Doumen
What is classpath?

Membro desde: 30/01/2012 23:09:07
Mensagens: 7
Offline

Como a pessoa que receber deve configurar o arquivo access ?
InicianteJavaHenrique
GUJ Ranger
[Avatar]

Membro desde: 16/02/2011 12:20:00
Mensagens: 806
Localização: São Vicente - SP
Offline

Doumen wrote:Como a pessoa que receber deve configurar o arquivo access ?


O usuário final não deve configurar o arquivo access (bd), ele irá usar seu sistema (.jar) e este acessa o bd.

flw

Jogo de Xadrez com I.A feito em Java 2D. - HFS Softwares


Portal de Jogos - Questionário


"Felizes os Tópicos que estavam aqui neste dia: 07/12/2008, neste horário: 22:11:56 e neste local." - Henrique Ferreira da Silva


"O negócio de software é binário, você é 1 ou 0, vivo ou morto." - Filme Ameaça Virtual


"Existem 10 tipos de pessoas no mundo: as que entendem binário e as que não entendem."


"Compartilhar conhecimentos é uma forma de alcançar a imortalidade." - Dalai Lama


"Aquele que pergunta é um tolo por cinco minutos, mas aquele que não pergunta permanece um tolo para sempre." - Provérbio Chinês


"O topo da inteligência é alcançar a humildade." - Textos Judaicos


"Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seus poderes ultrapassam os limites da imaginação." - Albert Einstein



/**
*
* Programador Java
* @author Henrique Ferreira da Silva
* @since Julho/2010
*
*/
Doumen
What is classpath?

Membro desde: 30/01/2012 23:09:07
Mensagens: 7
Offline

Fiz alguns testes em outras máquinas, mas os botões ficaram sem ações. Só funcionou na minha. Basta o arquivo JAR na máquina do usuário ? O banco access não precisa ser configurado ?
InicianteJavaHenrique
GUJ Ranger
[Avatar]

Membro desde: 16/02/2011 12:20:00
Mensagens: 806
Localização: São Vicente - SP
Offline

Doumen wrote:Basta o arquivo JAR na máquina do usuário ?

Não.

Doumen wrote:O banco access não precisa ser configurado ?

Não.

Seu arquivo JAR que precisa.

Doumen wrote:Fiz alguns testes em outras máquinas, mas os botões ficaram sem ações. Só funcionou na minha.


Possíveis causas:

Se vc tiver definido que sua string de conexão de acessar o bd (arquivo access) em (por exemplo): C:\Documents and Settings\Doumen só vai funcionar no seu PC mesmo

Se "em outras máquinas" não tiver instalado o Microsoft Office Access tbm não vai funcionar

Jogo de Xadrez com I.A feito em Java 2D. - HFS Softwares


Portal de Jogos - Questionário


"Felizes os Tópicos que estavam aqui neste dia: 07/12/2008, neste horário: 22:11:56 e neste local." - Henrique Ferreira da Silva


"O negócio de software é binário, você é 1 ou 0, vivo ou morto." - Filme Ameaça Virtual


"Existem 10 tipos de pessoas no mundo: as que entendem binário e as que não entendem."


"Compartilhar conhecimentos é uma forma de alcançar a imortalidade." - Dalai Lama


"Aquele que pergunta é um tolo por cinco minutos, mas aquele que não pergunta permanece um tolo para sempre." - Provérbio Chinês


"O topo da inteligência é alcançar a humildade." - Textos Judaicos


"Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seus poderes ultrapassam os limites da imaginação." - Albert Einstein



/**
*
* Programador Java
* @author Henrique Ferreira da Silva
* @since Julho/2010
*
*/
doravan
JavaTeenager
[Avatar]

Membro desde: 23/10/2010 10:56:57
Mensagens: 172
Offline

Rapaz, procure uma solução mais confiável:
SQLite, Firebird Embeded são bancos bem mais sólidos, seguros e confiáveis do que o access, e tudo o que você precisa é só de uma DLL de 2mb de tamanho.

http://code.google.com/p/wfmvc/
Windows Form Project
Doumen
What is classpath?

Membro desde: 30/01/2012 23:09:07
Mensagens: 7
Offline


Eu fiz a conexão assim:

public class Db {

Connection con;
Statement st;
ResultSet rs;

public Db() {

connect();

}

public void connect() {
try {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);

String db = "jdbc:odbc:db1";

con = DriverManager.getConnection(db);

st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql = "select * from Tabela1";

rs = st.executeQuery(sql);

} catch (Exception ex) {
ex.printStackTrace();
}
}

public static void main(String[] args) {
new Db();
new Gui();

}
}

Eu testei numa outra máquina que tinha a mesma versão do access que na minha.

Se utilizar outro banco, qual arquivo devo baixar de 2mb ? E o que mais devo fazer na outra máquina ?
InicianteJavaHenrique
GUJ Ranger
[Avatar]

Membro desde: 16/02/2011 12:20:00
Mensagens: 806
Localização: São Vicente - SP
Offline

Doumen wrote:Se utilizar outro banco, qual arquivo devo baixar de 2mb ?


Caso vc escolha o MySQL e use NetBeans:

No seu projeto clique com o botão direito do mouse em Bibliotecas Adicionar biblioteca MySQL JDBC Driver Adicionar biblioteca

Doumen wrote:E o que mais devo fazer na outra máquina ?


vc pode fazer isto http://www.guj.com.br/java/262896-resolvido-como-criar-um-instalador-a-partir-de-um-arquivo-jar-no-netbeans

Mas lembre-se vc terá que ter um conhecimento prévio e básico sobre MySQL

flw

Jogo de Xadrez com I.A feito em Java 2D. - HFS Softwares


Portal de Jogos - Questionário


"Felizes os Tópicos que estavam aqui neste dia: 07/12/2008, neste horário: 22:11:56 e neste local." - Henrique Ferreira da Silva


"O negócio de software é binário, você é 1 ou 0, vivo ou morto." - Filme Ameaça Virtual


"Existem 10 tipos de pessoas no mundo: as que entendem binário e as que não entendem."


"Compartilhar conhecimentos é uma forma de alcançar a imortalidade." - Dalai Lama


"Aquele que pergunta é um tolo por cinco minutos, mas aquele que não pergunta permanece um tolo para sempre." - Provérbio Chinês


"O topo da inteligência é alcançar a humildade." - Textos Judaicos


"Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seus poderes ultrapassam os limites da imaginação." - Albert Einstein



/**
*
* Programador Java
* @author Henrique Ferreira da Silva
* @since Julho/2010
*
*/
wbdsjunior
GUJ Ranger
[Avatar]

Membro desde: 16/04/2008 13:48:08
Mensagens: 908
Localização: Indaiatuba/SP
Offline

Doumen wrote:

desta forma o usuário terá que configurar a fonte de dados ODBC.

uma outra forma de fazer isso é colocar o arquivo num diretório do seu projeto e apontar a url de conexão para ele.

http://social.msdn.microsoft.com/Forums/en-US/visualjsharpgeneral/thread/21ebec84-8bfe-41a7-868f-369aef1cb148

She loves me

http://lmgtfy.com
[Yahoo!] [MSN]
Doumen
What is classpath?

Membro desde: 30/01/2012 23:09:07
Mensagens: 7
Offline

Interessante a sua dica wbdsjunior, mas na classe MyConnection:

class MyConnection
{
public static Connection getConnection() throws Exception {
Driver d = (Driver)Class.forName
("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection c = DriverManager.getConnection(
"jdbc:odbcriver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=*.accdb"
);
return c;
}

Mas eu não entendi como faço a conexão com o arquivo access específico ? (No meu caso o arquivo db1.)
wbdsjunior
GUJ Ranger
[Avatar]

Membro desde: 16/04/2008 13:48:08
Mensagens: 908
Localização: Indaiatuba/SP
Offline

Doumen wrote:Interessante a sua dica wbdsjunior, mas na classe MyConnection:

class MyConnection
{
public static Connection getConnection() throws Exception {
Driver d = (Driver)Class.forName
("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection c = DriverManager.getConnection(
"jdbc:odbcriver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=*.accdb"
);
return c;
}

Mas eu não entendi como faço a conexão com o arquivo access específico ? (No meu caso o arquivo db1.)


creio que assim:


She loves me

http://lmgtfy.com
[Yahoo!] [MSN]
ksmarini
Thread.start()
[Avatar]

Membro desde: 17/11/2008 15:07:46
Mensagens: 35
Offline

Cara, eu tava encucado com usar o access pelo motivo de não precisar instalar um banco de dados em todas as máquinas que eu fosse utilizar, neste caso bastaria copiar o arquivo jar e o arquivo mdb. só que tive tanta dor de cabeça em fazer esse acesso que procurei uma solução alternativa.
Usei isso.
http://www.feras-odeh.com/java/h2_embeded_database_java/

Bem explicado e usa um banco de dados embarcado. super simples de usar.

agora abandonei o access de vez.
Doumen
What is classpath?

Membro desde: 30/01/2012 23:09:07
Mensagens: 7
Offline

Obrigado pela dica ksmarini,

Tentei usar a sua dica mas não consegui compilar o código.

Não entendo essa maneira de usar String dbUrl = "jdbc:h2:data/school"; que aparece no código mas o meu netbeans não aceita a compilação. Estou tentando apenas fazer um aplicativo para desktop (ainda não sei nada de web).

Obrigado pela dica e desculpe a ignorância.

Doumen
What is classpath?

Membro desde: 30/01/2012 23:09:07
Mensagens: 7
Offline

Olá a todos,

Obrigado pelas dicas.

Vi um tutorial para usar o java DB, está muito bem feito: http://www.youtube.com/watch?v=D5TkdXSRzsM

Mas não sei como distribuí-lo. O Netbeans gerou uma pasta dist na pasta do projeto.

Eu "zipei" esta pasta e mandei para uma usuária. Esta descompactou a pasta no Desktop.

Pedi para ela executar o Arquivo.jar pela linha de comando do cmd com java -jar Arquivo.jar e ela obteve como resultado:

C:\Documents and Settings\lilian.martins\Desktop\Dist>java -jar DesktopApplicati
on1.jar
[TopLink Info]: 2012.02.15 04:10:47.536--ServerSession(24093812)--TopLink, versi
on: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
15/02/2012 16:10:48 org.jdesktop.application.Application$1 run
GRAVE: Application class desktopapplication1.DesktopApplication1 failed to launc
h
Local Exception Stack:
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/
06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLNonTransientConnectionException: java.net.Connec
tException : Erro ao conectar no servidor 'localhost' porta '1527'. Recebida a m
ensagem: 'Connection refused: connect'.
Error Code: 40000
at oracle.toplink.essentials.exceptions.DatabaseException.sqlException(D
atabaseException.java:305)
at oracle.toplink.essentials.sessions.DefaultConnector.connect(DefaultCo
nnector.java:102)
at oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasourc
e(DatasourceLogin.java:184)
at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.login
AndDetectDatasource(DatabaseSessionImpl.java:582)
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login
(EntityManagerFactoryProvider.java:280)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.de
ploy(EntityManagerSetupImpl.java:229)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactory
Impl.getServerSession(EntityManagerFactoryImpl.java:93)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactory
Impl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactory
Impl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.
createEntityManager(EntityManagerFactoryImpl.java:91)
at desktopapplication1.DesktopApplication1View.initComponents(DesktopApp
lication1View.java:285)
at desktopapplication1.DesktopApplication1View.<init>(DesktopApplication
1View.java:36)
at desktopapplication1.DesktopApplication1.startup(DesktopApplication1.j
ava:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown
Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.sql.SQLNonTransientConnectionException: java.net.ConnectExceptio
n : Erro ao conectar no servidor 'localhost' porta '1527'. Recebida a mensagem:
'Connection refused: connect'.
at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unkn
own Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Sourc
e)
at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at oracle.toplink.essentials.sessions.DefaultConnector.connect(DefaultCo
nnector.java:100)
... 26 more
Caused by: org.apache.derby.client.am.DisconnectException: java.net.ConnectExcep
tion : Erro ao conectar no servidor 'localhost' porta '1527'. Recebida a mensage
m: 'Connection refused: connect'.
at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
at org.apache.derby.client.am.Connection.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source)
at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConne
ction(Unknown Source)
... 30 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at javax.net.DefaultSocketFactory.createSocket(Unknown Source)
at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 36 more
Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class deskto
papplication1.DesktopApplication1 failed to launch
at org.jdesktop.application.Application$1.run(Application.java:177)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown
Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b0
9d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLNonTransientConnectionException: java.net.Connec
tException : Erro ao conectar no servidor 'localhost' porta '1527'. Recebida a m
ensagem: 'Connection refused: connect'.
Error Code: 40000
at oracle.toplink.essentials.exceptions.DatabaseException.sqlException(D
atabaseException.java:305)
at oracle.toplink.essentials.sessions.DefaultConnector.connect(DefaultCo
nnector.java:102)
at oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasourc
e(DatasourceLogin.java:184)
at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.login
AndDetectDatasource(DatabaseSessionImpl.java:582)
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login
(EntityManagerFactoryProvider.java:280)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.de
ploy(EntityManagerSetupImpl.java:229)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactory
Impl.getServerSession(EntityManagerFactoryImpl.java:93)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactory
Impl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactory
Impl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.
createEntityManager(EntityManagerFactoryImpl.java:91)
at desktopapplication1.DesktopApplication1View.initComponents(DesktopApp
lication1View.java:285)
at desktopapplication1.DesktopApplication1View.<init>(DesktopApplication
1View.java:36)
at desktopapplication1.DesktopApplication1.startup(DesktopApplication1.j
ava:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
... 14 more
Caused by: java.sql.SQLNonTransientConnectionException: java.net.ConnectExceptio
n : Erro ao conectar no servidor 'localhost' porta '1527'. Recebida a mensagem:
'Connection refused: connect'.
at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unkn
own Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Sourc
e)
at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at oracle.toplink.essentials.sessions.DefaultConnector.connect(DefaultCo
nnector.java:100)
... 26 more
Caused by: org.apache.derby.client.am.DisconnectException: java.net.ConnectExcep
tion : Erro ao conectar no servidor 'localhost' porta '1527'. Recebida a mensage
m: 'Connection refused: connect'.
at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
at org.apache.derby.client.am.Connection.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source)
at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConne
ction(Unknown Source)
... 30 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at javax.net.DefaultSocketFactory.createSocket(Unknown Source)
at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 36 more

C:\Documents and Settings\lilian.martins\Desktop\Dist>

Alguém sabe como resolver isso ?
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team