Banco de dados MySQL[RESOLVIDO]

Olá, bom dia!

Queria saber se da para exportar um banco de dados para usar em uma aplicação em qualquer computador. Por exemplo, eu crio um banco de dados para uma aplicação de lista telefonica, e eu queria saber se eu posso mover junto com a aplicação o banco de dados ao invés de só usar ele no meu computador. Se sim, como eu deveria conectar com o banco?

Obrigado :slight_smile:

Ola RafaelCN,

use o SQLite

use um admin para criar o arquivo em seu projeto por exemplo o banco de dados pode ficar junto com seus arquivos de projeto na mesma pasta por exemplo chamado dados.s3db ou db a extensão você escolhe dependendo do admin que voce usar ele gera uma extensão LEBRA DO “ACCESS” e tipo iqual só que MELHOR executa sql normal etc etc etc…
alguns admins legais para windows:

http://sqliteadmin.orbmu2k.de/
http://www.sqliteexpert.com/
http://www.dehats.com/drupal/?q=node/58

vai precisar do driver jdbc do sqlite:
http://www.java2s.com/Code/Jar/s/Downloadsqlitejdbcv056jar.htm
https://bitbucket.org/xerial/sqlite-jdbc

com o seguinte trecho de código voce consegue criar e conectar um banco sqlite se ele nao existir !
classe: SQLite.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;


public class SQLite {

    private static Connection connection;
    private Statement statement;
    private ResultSet resultset;

    public SQLite() {
        openDatabase();
    }

    public static Connection getConnection() {
        return connection;
    }

    public ResultSet getResultset() {
        return resultset;
    }

    public Statement getStatement() {
        return statement;
    }

    public Statement createStatement() {
        try {
            Statement stmt = connection.createStatement();
            return stmt;
        } catch (SQLException ex) {
            ex.printStackTrace();
            return null;
        }
    }

    private void openDatabase() {
        String driver = "org.sqlite.JDBC";
        String url = "jdbc:sqlite:meusdados.db";//criar o arquivo na pasta de projeto chamado : meusdados.db
        String user = "";
        String pass = "";

        System.out.println("Conectando ao Banco de Dados...");
        //JOptionPane.showMessageDialog(null, "Conectando ao Banco de Dados");
        try {
            Class.forName(driver);
            connection = DriverManager.getConnection(url, user, pass);
            System.out.println("Conexão OK");
            statement = connection.createStatement();
            checkEstruturadeTabelas();
        } catch (ClassNotFoundException e) {
            System.out.println("Falha de conexão faltando drivers.");
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, e);
            System.exit(1);
        } catch (SQLException e) {
            System.out.println("Falha de conexão ou na checagem das estruturas das Tabelas!");
            JOptionPane.showMessageDialog(null, e);
            System.exit(1);
        }
    }

    private void checkEstruturadeTabelas() {
        try {
            this.resultset = this.statement.executeQuery("select * from Tabela1;");// checar se tem tabelas e criar tableas automaticamente ou importar de um script.sql talves...
            this.resultset = this.statement.executeQuery("select * from Tabela2;");
            this.resultset = this.statement.executeQuery("select * from TabelaN;");
            System.out.println("Estruturas das Tabelas OK");
        } catch (SQLException e) {
            System.out.println("Banco de Dados sem estruturas de tabelas...");
            System.out.println("Iniciando Assitente para configuração do Banco de Dados...");
            openAssitenteDialog();//chamar por exemplo interação com usuario para executar script sql manualmente !
            System.out.println("Aguardando interação com usuário...");
            //e.printStackTrace();
        }
    }
    //JDInstall dialog;

    private void openAssitenteDialog() {
        //dialog = new JDInstall(null, true);
        //dialog.setVisible(true);
    }

    /*private void openAssitenteDialogThread() {
     java.awt.EventQueue.invokeLater(new Runnable() {
     public void run() {
     dialog = new JDInstall(null, true);
     dialog.addWindowListener(new java.awt.event.WindowAdapter() {
     @Override
     public void windowClosing(java.awt.event.WindowEvent e) {
     //System.exit(0);
     }
     });
     dialog.setVisible(true);
     }
     });
     }*/
    public boolean executeScript(String script) {
        System.out.println(script);
        try {
            createStatement().executeUpdate(script);
            //this.connection.commit();
            System.out.println("Criação de Estruturas das Tabelas OK");
            return true;
        } catch (SQLException e) {
            /*try {
             //this.connection.rollback();
             System.out.println("Erro ao executar script...");
             System.out.println("Erro: " + e);
             } catch (SQLException ex) {
             System.out.println("Erro em rollback: " + ex);
             }*/
            JOptionPane.showMessageDialog(null, "ERRO:" + e.getErrorCode() + "\n" + e, "ERRO DE EXECUÇÃO", JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
            return false;
        }
    }
}

ve ai se te ajuda !
uso assim em meus projetos que nao precisa de um SGDB como mysql !!!
fica legal e portavel !,

ate mais ! duvidas e criticas são bem vindas flw.

Me ajudou bastante, vou dar uma olhada mais profunda :D. E gostei do código :wink:

Uma outra dúvida, é o que você quer dizer com “admins”?! Administrador?

Sim, são os programas de gerenciamento de base de dados. que usamos para executar as sql, ciar tabelas conectar no banco e gerenciá-lo de todas as maneiras visualmente!

Entendi. :smiley:
Obrigado!

alo, alo to dando uma olhada aqui e gostei. mas to vendo que o método não tem um main… vou tentar usar uma forma de chamar os métodos aqui, mas vc não tem algo funcionando mesmo 100 por cento, aí fica mais fácil de fazer o teste…

estava tentando com h2, procure aqui pelo guj.

e deixo meu site que tem uns programas , etc http://www.raghy.net23.net
pode comentar o que for preciso…

sobre o sqlite continuo tentando, aguardo main.

public static void main(String[] args) { new SQLite(); }

fiz um main, mas não resultou nada aparente … ???

fiz um chuncho para testar. mas quando crio tabelas, da problema. [code] Statement comando4 =

conexao.createStatement();
ResultSet resultado =

comando4.executeQuery("CREATE TABLE dados2 (nome

varchar(90) DEFAULT NULL,endereco varchar(150)

DEFAULT NULL, celular varchar(90) DEFAULT

NULL,residencial varchar(130) DEFAULT NULL,email

varchar(130) DEFAULT NULL,comentarios varchar(130)

DEFAULT NULL,iddados int(10) unsigned NOT NULL

AUTO_INCREMENT,PRIMARY KEY (iddados))");[/code]

luz??

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package SQLitetestes;

import java.sql.*;
import javax.swing.JOptionPane;

public class Test {
private Connection conexao;
public Statement statement;
public ResultSet resultset;
public PreparedStatement prep;

    public Test(){
        
        
     //   crio o banco
        String driver = "org.sqlite.JDBC";  
    String url = "jdbc:sqlite:meusdados2.db";//criar o arquivo na pasta de projeto chamado : meusdados.db  
    String user = "";  
    String pass = "";  

    System.out.println("Conectando ao Banco de Dados...");  
    //JOptionPane.showMessageDialog(null, "Conectando ao Banco de Dados");  
    try {  
        Class.forName(driver);  
      Connection  connection = DriverManager.getConnection(url, user, pass);  
        System.out.println("Conexão OK");  
        statement = connection.createStatement();  
        
        
        
        
        
      //  checkEstruturadeTabelas();  
    } catch (ClassNotFoundException e) {  
        System.out.println("Falha de conexão faltando drivers.");  
        e.printStackTrace();  
        JOptionPane.showMessageDialog(null, e);  
        System.exit(1);  
    } catch (SQLException e) {  
        System.out.println("Falha de conexão ou na checagem das estruturas das Tabelas!");  
        JOptionPane.showMessageDialog(null, e);  
        System.exit(1);  
    }  
        
        
        
        
        
        
        
        
        
        
        
        /* CREATE TABLE `dados2` (

nome varchar(90) DEFAULT NULL,
endereco varchar(150) DEFAULT NULL,
celular varchar(90) DEFAULT NULL,
residencial varchar(130) DEFAULT NULL,
email varchar(130) DEFAULT NULL,
comentarios varchar(130) DEFAULT NULL,
iddados int(10) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (iddados)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;*/

          try {
              
                Class.forName("org.sqlite.JDBC");  
conexao =        DriverManager.getConnection("jdbc:sqlite:meusdados.db");  
statement = conexao.createStatement();  
        









    //    Class.forName("com.mysql.jdbc.Driver");
        //String url = "jdbc:mysql://localhost:3306/fundacaoesag";
           //    String url = "jdbc:mysql://localhost:3306/bancoagenda";
     //   Connection conexao = DriverManager.getConnection(url, "root", "");

        Statement comando = conexao.createStatement();
        ResultSet resultado = comando.executeQuery("select * from dados");
        
     //   ResultSet resultado2 = comando.executeQuery("select * from turmas");
        while (resultado.next()) {
          //  raghy.addElement(new String("nome do curso" + resultado.getString("nomeDoCurso")));
            System.out.println(resultado.getString("nome"));
             System.out.println(resultado.getString("email"));
                 System.out.println(resultado.getString("celular"));
                 
                 JOptionPane.showMessageDialog(null, resultado.getString("nome"));
                   JOptionPane.showMessageDialog(null, resultado.getString("email"));
                     JOptionPane.showMessageDialog(null, resultado.getString("celular"));
            
           //  jCturmas.addItem(resultado2.getString("nomeDaTurma"));
          
            
   }
        
        
        
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        comando.close();
        conexao.close();
    } catch (Exception Excecao) {
        System.out.println("Excecao sql" + Excecao.getMessage());
    }

    

      
    
 
   
        
              
    
    
    
    
    
    
    
    
    
    
    
    
    }//fecha construt

public void conecta() throws Exception {
Class.forName(“org.sqlite.JDBC”);
conexao = DriverManager.getConnection(“jdbc:sqlite:meusdados.db”);
statement = conexao.createStatement();
conexao.setAutoCommit(false);
conexao.setAutoCommit(true);

}
public void exec(String sql) throws Exception {
resultset = statement.executeQuery(sql);
}
public void desconecta()
{
boolean result = true;
try
{
conexao.close();
JOptionPane.showMessageDialog(null,“banco fechado”);
}
catch(SQLException fecha)
{
JOptionPane.showMessageDialog(null,"Não foi possivel "+
"fechar o banco de dados: "+fecha);
result = false;
}

   }  




public static void main(String[] args) {
    new Test();
    
}

} [/code]