Conexão android a MySQL

04/11/2013

0

Ola Galera.

Estou tentando fazer um hello world para conexao ao banco MySQL. Criei o seguinte Banco

tabela aluno

id:int
nome: varchar
email: varchar

Criei o seguinte main.xml

<TextView
android:id="@+id/codigo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />

<TextView
android:id="@+id/nome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/codigo"
android:layout_below="@+id/codigo"
android:text="TextView" />

<TextView
android:id="@+id/email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/nome"
android:layout_below="@+id/nome"
android:text="TextView" />


e coloquei o seguinte codigo.

package com.example.androidmysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import android.os.Bundle;
import android.widget.TextView;
import android.app.Activity;

public class AndroidMysql extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

final TextView email2 = (TextView) findViewById(R.id.email);
email2.setText("OLA");


try {
Connection conexao = DriverManager.getConnection("jdbc:mysql://192.168.3.112/banco", "java", "123456");
Statement stm = conexao.createStatement();
ResultSet rs = stm.executeQuery("SELECT id, nome, email FROM alunos");

final TextView codigo = (TextView) findViewById(R.id.codigo);
final TextView nome = (TextView) findViewById(R.id.nome);
final TextView email = (TextView) findViewById(R.id.email);

email.setText("OLA");


while (rs.next()) {

int coluna1 = rs.getInt("id");
String coluna2 = rs.getString("nome");
String coluna3 = rs.getString("email");

codigo.setText("OLA");
codigo.setText(String.valueOf(coluna1));
nome.setText(coluna2);
email.setText(String.valueOf(coluna3));
email.setText("ola");
}
}
catch (SQLException sqle) {
System.out.println(sqle.getMessage());
}
}
}

o codigo

final TextView email2 = (TextView) findViewById(R.id.email);
email2.setText("OLA");

Funciona mas o que estta dentro do try não
email.setText(String.valueOf(coluna3));
email.setText("ola");
Notei pelo debug que ele traz os dados do banco só que não consigo imprimir no TextView. Alguém já passou por isso?

Att.
Ricardo Barbosa

Ricardo Barbosa

Responder

Post mais votado

04/11/2013

Pessoal estou com o mesmo problema, não consigo conectar ao mysql, segue baixo o codigo:

package br.com.lemarq.licencas;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.util.Log;

public class DbHelper extends Activity {
    
        private String driver;  
        private String url;  
        private String user;  
        private String password;  
        
        //-- CRIANDO CONEXOES  
        public static Connection conn;  
        public static Statement stmt;  
        public static ResultSet rs;
        
       public  DbHelper() {  
		    driver   = "com.mysql.jdbc.Driver";  
		    url      = "jdbc:mysql://198.98.121.136:3306/licenca";
		    user     = "root";    
		    password = "senha";  
    	   }  
        
        public void fechaBD() throws Exception {
            conn.close();
        }


        public boolean conectaBD() throws Exception {
        	try {
                Class.forName(driver);  
            	Log.w("BLOQUEIO","TUDO OK COM CLASS.FORNAME");
        	} catch (Exception e) {
            	Log.w("BLOQUEIO","NAO FUNCIONOU O CLASS.FORNAME");
			}
        	
        	try {
                conn = DriverManager.getConnection(url,user,password);  
            	Log.w("BLOQUEIO","TUDO OK COM O DRIVER.MANAGER");
        	} catch (Exception e) {
            	Log.w("BLOQUEIO","NAO FUNCIONOU O DRIVER.MANAGER");
			}
        	
        	try {
                stmt = conn.createStatement();     
            	Log.w("BLOQUEIO","TUDO OK COM O CREATESTATEMENT");
        	} catch (Exception e) {
            	Log.w("BLOQUEIO","NAO FUNCIONOU O CREATESTATEMENT");
			}
        	
        	
            return true;  
        }
        

         public List<String> listaBloqueada() {
        	List<String> lista = new ArrayList<String>();  
            try{
            	Log.w("BLOQUEIO","INICIANDO... stmt.executeQuery");
                rs = stmt.executeQuery("select * from bloqueio order by nm_cli");
            	Log.w("BLOQUEIO","INICIANDO... while");
                while (rs.next()) {
                	lista.add(rs.getString("nm_cli"));
                	Log.w("BLOQUEIO",rs.getString("nm_cli"));
                	//+ " " +rs.getString("nm_cli") + " " + rs.getString("dt_bloqueio"));
                }
            	Log.w("BLOQUEIO","ACABOU...");
                rs.close();
                stmt.close();
                return lista;
            } catch (Exception erro){
            	Log.w("BLOQUEIO","NAO FUNCIONOU...");
            }
			return lista;
        }


Coloquei um Log para verificar o funcionamento.
Não funcionou o comando do ClassForName, DriverManager e createStatement. Embora usando o mysqlfront consigo me conectar normalmente.

Lemos Ltda

Lemos Ltda
Responder

Mais Posts

05/11/2013

Ricardo Barbosa

Faça um teste troque o codigo
Log.w("BLOQUEIO","NAO FUNCIONOU O DRIVER.MANAGER");
e manda escrever num textview tipo

textview.setText(sqle.getMessage());

O meu mostra "No suitable driver" parece que ele não reconhece a o .jar do jdbc mesmo passando no classpath, ve se acontece isso com vc.

Att.
Responder

06/11/2013

Lemos Ltda

Muito bom, Ricardo. O problema era justamente o .jar do mysql. Acredita que eu nem tinha incluido ? Valeu mesmo. Funcionou perfeitamente.
Responder

06/11/2013

Ricardo Barbosa

Q bom mas para mim não funcionou qual o nome do arquivo do seu .jar? o meu é mysql-connector-java-5.1.27-bin.jar
Responder

08/12/2013

Mury Contabil

Ricardo, poderia compartilha o código conosco.
Responder

09/12/2013

Ricardo Barbosa

Qual codigo você diz?, se for o codigo para conexão do MySQL está no primeiro post que eu fiz. :)

Att.
Responder

10/12/2013

Mury Contabil

Aparece o erro "No suitable driver" e estou usando o mesmo .jar que falou. Usei o código conforme o seu.
Responder

25/03/2014

André Machado

Olá, tudo bom ?
o meu deu o seguinte :
communications link failure
the last packet sent sucessfully to the server was 0 milliseconds ago. The driver has not received any packets from the server
vcs sabem qual o problema e como resolver ?
obrigado.
Responder

02/05/2014

Herbert Roberto

André Machado, estou com o mesmo problema seu, você conseguiu resolver???

Alguém que saiba como resolver o problema?
Responder

29/10/2014

Frederico Brigatte***

Também estou querendo fazer isso. Poderiam fazer um passo-a-passo?
Responder

29/01/2015

André Machado

Humberto Roberto eu consegui resolver sim. Mas não foi com conexão direta, criei um webservice que faz conexão no banco e retorna os dados para o android, a conexão direta pode até funcionar, mas não é uma boa opção.
Sobre o erro "No suitable driver", é falta do "mysql-connection.jar" inclua ele na sua biblioteca.
Eu sugiro que faça uma classe só para a conexão chame ela, assim fica mais tranquilo, que após aberto a conexão e retornado os dados, é bom fechar a conexão.
abaixo segue um exemplo :
public class conexaomysql {

public Connection conectar{

Connection conexao = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conexao = DriverManager.getConnection("jdbc:mysql://192.168.3.112/banco", "java", "123456");

}catch (exception e){
System.out.println("Erro: ",e.getMessage);
return null
}
return conexao;

}

public void FecharConexao(Connection conexao, Statement stm , ResultSet rs){

try {
if (conexao != null)
conexao.close();

if (stm != null)
stm.close()

if (rs != null)
rs.close();
}catch(exception e){
System.out.println("erro ao fechar");
}
}
}


public class Alunos_modelo {
private int id;
private String nome;
private String email;

public void setId(int id) {
this.id = id;
}
public getId(){
return this.id;
}

...
/*
faça os metodos get e set para todos os campos
*/
}


public Class Alunos {

public ArrayList<Alunos_Modelo> getAlunos() {
Connection conexao = null
Statement stm = null;
ResultSet rs = null;
public ArrayList<Alunos_modelo> a = new ArrayList<Alunos_modelo>();
Alunos_modelo alunos = null;
try {

Connection conexao = conexaomysql.conectar();
Statement stm = conexao.createStatement();
ResultSet rs = stm.executeQuery("SELECT id, nome, email FROM alunos");
while (rs.next()) {
alunos = new Alunos_modelo();
alunos.setId(rs.getInt("id");
alunos.setNome(rs.getString("nome");
...
a.add(alunos);
}



} catch(exception e){
System.out.println("erro");
return null
}finally {
conexaomysql.fechar(conexao,stm,rs);
}
return a;
}



}


espero que ajude.
Responder

12/11/2015

Camara Campos

Estou com um problema na conexão com o meu aplicativo android e gostaria de conectar ao banco de dados segue o codigo e continua dando erro alguem possa me ajudar ?


package com.example.denuncia;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import android.os.Bundle;

public class MyConnection {



public Object con;

public void onCreate(Bundle savedInstanceState) {

setContentView(R.layout.activity_main);// R.layout.activity_main);
setContentView(R.id.SelecionarArquivo);// R.id.txtArquivo);
setContentView(R.id.botaoOk);// R.id.botaoOk);

}

private void setContentView(int activityMain) {
// TODO Auto-generated method stub

}

// cria conexao com o banco de dados
public void createConnection(String banco) throws Exception {

try {
// instanciando o driver
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://mysql.shakespearecarvalho.com.br/" + banco,
"usuário", "senha");

}

catch (ClassNotFoundException e) {
throw new Exception("Driver nao encontrado");
} catch (SQLException e) {

throw new Exception("Erro com o banco de dados");
}

}

// fecha a conexao

public void closeConnection() throws Exception {

try {
Connection con = null;
con.close();
} catch (SQLException e) {
throw new Exception("Nao foi possivel fechar a conexao");
}
}

}
Responder

19/12/2020

Oscar

Estou usando o Android studio por pouco tempo mesmo.

Implantando o mesmo script que tem nessa dúvida.

O meu script está ótimo e sem erros o problema dele é só este:

Alguém pode me explicar como instalar 'com.mysql.jdbc.Driver'?

Já criei 500 bibliotecas inseri 500 jar, e ele dá o mesmo erro?

Quem fez a instalação do jar pode me dizer como fez?

Preciso saber : primeiro : Onde buscar este jar.
seguindo: onde deve estar o ponteiro do mouse para clcar com o botão direito para abrir uma pasta de no lib , caso seja isso.
Após eu copiar o aruivo baxodo do local indicado nesta pasta indicada.
terceiro: como digo ao meu script que este jar está aqui nesta pasta.

Alguém pode me dizer isso tudo, sem responder com outra pergunta?

Ps. Não preciso de scripts, já tenho 500 scripts, eu só quero saber como instalar 'com.mysql.jdbc.Driver'? Podem ajudar?
Responder

19/12/2020

Oscar

Estou usando o Android studio por pouco tempo mesmo.

Implantando o mesmo script que tem nessa dúvida.

O meu script está ótimo e sem erros o problema dele é só este:

Alguém pode me explicar como instalar 'com.mysql.jdbc.Driver'?

Já criei 500 bibliotecas inseri 500 jar, e ele dá o mesmo erro?

Quem fez a instalação do jar pode me dizer como fez?

Preciso saber : primeiro : Onde buscar este jar.
seguindo: onde deve estar o ponteiro do mouse para clcar com o botão direito para abrir uma pasta de no lib , caso seja isso.
Após eu copiar o aruivo baxodo do local indicado nesta pasta indicada.
terceiro: como digo ao meu script que este jar está aqui nesta pasta.

Alguém pode me dizer isso tudo, sem responder com outra pergunta?

Ps. Não preciso de scripts, já tenho 500 scripts, eu só quero saber como instalar 'com.mysql.jdbc.Driver'? Podem ajudar?
Responder

19/12/2020

Oscar

Estou usando o Android studio por pouco tempo mesmo.

Implantando o mesmo script que tem nessa dúvida.

O meu script está ótimo e sem erros o problema dele é só este:

Alguém pode me explicar como instalar 'com.mysql.jdbc.Driver'?

Já criei 500 bibliotecas inseri 500 jar, e ele dá o mesmo erro?

Quem fez a instalação do jar pode me dizer como fez?

Preciso saber : primeiro : Onde buscar este jar.
seguindo: onde deve estar o ponteiro do mouse para clcar com o botão direito para abrir uma pasta de no lib , caso seja isso.
Após eu copiar o aruivo baxodo do local indicado nesta pasta indicada.
terceiro: como digo ao meu script que este jar está aqui nesta pasta.

Alguém pode me dizer isso tudo, sem responder com outra pergunta?

Ps. Não preciso de scripts, já tenho 500 scripts, eu só quero saber como instalar 'com.mysql.jdbc.Driver'? Podem ajudar?
Responder

19/12/2020

Oscar

Estou usando o Android studio por pouco tempo mesmo.

Implantando o mesmo script que tem nessa dúvida.

O meu script está ótimo e sem erros o problema dele é só este:

Alguém pode me explicar como instalar 'com.mysql.jdbc.Driver'?

Já criei 500 bibliotecas inseri 500 jar, e ele dá o mesmo erro?

Quem fez a instalação do jar pode me dizer como fez?

Preciso saber : primeiro : Onde buscar este jar.
seguindo: onde deve estar o ponteiro do mouse para clcar com o botão direito para abrir uma pasta de no lib , caso seja isso.
Após eu copiar o aruivo baxodo do local indicado nesta pasta indicada.
terceiro: como digo ao meu script que este jar está aqui nesta pasta.

Alguém pode me dizer isso tudo, sem responder com outra pergunta?

Ps. Não preciso de scripts, já tenho 500 scripts, eu só quero saber como instalar 'com.mysql.jdbc.Driver'? Podem ajudar?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar