[RESOLVIDO] Conexão Android com MySQL sem web services

Queria saber como eu faço essa conexão sem usar o web service, sei que não é viável, só para estudo mesmo.
Também queria saber como eu faço para testar no emulador virtual do android do eclipse, o banco está no meu pc.
Mais uma vez: sei que não é o melhor jeito de fazer isso, é só pra estudo mesmo, queria uma conexão direta

Acredito que não seja possível.

eu uso o mongodb, pois já vem com api.

Faz conexão direta com o banco.

Já que é para estudo, experimente o https://mongolab.com/welcome/.

jukajr como o android vai conectar com o banco ?
Por que conectamos com o mysql, temos que ter o serviço rodando por trás, no android não tem isso.

Eu usei algumas vezes em 1 projeto para faculdade, usei o phonegap, e desenvolvi em html, css e js. para conectar no banco usei o angularjs.

posso postar o apk, se quiserem.

Eu comecei usando o eclipse, + troquei para o icenium que achei bem melhor para desenvolvimento de apk(http://www.icenium.com/). Tem simulador tbm.

html ? css ? js ? No caso é um aplicativo web que roda em qualquer plataforma ? IOS, Android ? rs

Valeio Bezerra, eu dei uma pesquisada e vi que é possível sim, porém não tinham muitas explicações sobre como fazer.
jukajr eu queria usar o MySQL mesmo, sem coisas muito complicadas, não é um projeto grande, é só para estudar mesmo.

Acho que o Valeio não entendeu sua pergunta…

vc quer dizer conectar em um mysql que está em um outro computador, certo?

se for isso, tem como sim. eu desenvolvi um app que sincroniza com um banco mysql num servidor remoto, e conecto pelo ip fixo dele da internet…

faz o seguinte, cara… entra no site do mysql, lá tem a biblioteca de conexão java (ou entao eu uso essa aqui http://puu.sh/3qsos.jar)

aí vc vai conectar normalmente, sem segredo, como normalmente aprende-se no java mesmo…

vc joga esse .jar dentro da pasta LIBS do seu projeto, e se quiser, pode seguir essas minhas funções que eu criei para conectar e desconectar nele:

public void conectarMySQL(String host, String porta, String banco, String usuario, String senha){
try{
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
} catch(Exception erro){
Log.e(“MYSQL”,"Erro: "+erro);
}

	try{
		conn=DriverManager.getConnection("jdbc:mysql://"+host+":"+porta+"/"+banco+"?connectTimeout=9000&socketTimeout=9000&autoReconnect=true&secondsBeforeRetryMaster=3",usuario,senha);
		Log.i("MYSQL", "Conectado.");
	} catch(Exception erro){
		Log.e("MYSQL","Erro: "+erro);
	}
}

public void desconectarMySQL(){
try{
conn.close();
Log.i(“MYSQL”,“Desconectado.”);
} catch(Exception erro){
Log.e(“MYSQL”,"Erro: "+erro);
}
}

Simples e sem segredo algum… e ao contrário do que muitos dizem, o desempenho fica bom… só peca um pouco na segurança de usar assim, mas dependendo do seu intuito, isso não é tão relevante.

se quiser, segue este modelo também de funções para dar comandos, fazer selects e tudo mais:

public ResultSet queryMySQL(String qry){
	try{
		st = conn.createStatement();
		sql = qry;
		rs = st.executeQuery(sql);
		rs.first();
		return rs;
	} catch(Exception erro){
		Log.e("MYSQL","Erro: "+erro);
		return null;
	}
}

public void comandoMySQL(String comando){
	try{
		st = conn.createStatement();
		st.execute(comando);
	} catch(Exception erro){
		Log.e("MYSQL","Erro: "+erro);
	}
}

espero que lhe ajude um pouco

esqueci de um detalhe… tem que declarar as variáveis lá em cima, se não isso nao funciona, rs…

são essas:

private Connection conn = null;
private Statement st;
private ResultSet rs;
private String sql;

saryoromulo eu te amo, cara!
Acredite, você salvou vidas =D
Vou testar assim que chegar em casa

A parte do ResultSet e do Statement eu consigo subtituir o Statement por PreparedStatement? como se fosse a conexão normal de java EE e SE?

uhahuahuAHUAUH <3

cara, consegue sim…

fica mais ou menos assim:

java.sql.PreparedStatement pstm = conn.prepareStatement(“replace into mimimi values (?,?,?)”);
pstm.setBytes(1, campo1);
pstm.setBytes(2, campo2);
pstm.setBytes(3, campo3);
pstm.executeUpdate();

enfim, só pra te clarear um pouco… é Java cara, qualquer coisa que vc faz no Java, vc consegue fazer pro android

Cara, você é fera, muito obrigado mesmo! <3

Cara, desculpa incomodar de novo, é que tá dando uns erros, dizendo que não achou a classe do driver, mas eu coloquei ela na pasta libs, importei como jar externo… mesmo assim dá erro nisso

acho que nao precisa importar nada, só de copiar pra pasta libs já funciona…

mas por via das duvidas, dá uma olhada nas propriedades do projeto, se tá mais ou menos desse jeito:

http://puu.sh/3suqG.png

eu já passei por esse erro aí, e lembro que é algum lugar das propriedades aí que vc marca alguma opção pra usar o jar q vc importou, mas nao consigo lembrar se é realmente ali onde postei o print…

qualquer coisa cara, STFW… uaheuhaehuae da uma procurada no google, que vc vai achar onde fica a opção…

Então cara, deu esse erro aqui:
http://imageshack.us/f/6/i9.png/
Já copiei o conector, mas ainda asism não vai

esse erro aí é de conexão com o mysql mesmo…

se apareceu isso, significa que no android tá certo, mas tem algum problema pra conectar no mysql… ve se a instalação tá certinha, se vc consegue conectar de outro lugar… se tem banco criado, etc, etc, etc…
ve configuração de timeout no mysql tbm…

qlqr coisa tenta desinstalar e instalar td de novo

Eu conecto certinho na mesma base de dados por uma aplicação de pc, eu queria saber se é o ip que tem que mudar ou algo assim, não se se coloco localhost ou o ip dela, não coloquei a porta também, não sei se o emulador android fica na mesma rede que o meu pc pra poder testar

cola o código aí