Conexao com banco externo

12 respostas
denisspitfire

Pessoal preciso usar webservice para utilizar um banco fora?

Vi uma conexao exemplo bem simples com json e tal

porem quando voce indica de onde voce precisa pegar os dados, eu coloco só o local

tipo no webclient “http://www.siteexemplo.com.br

nao existe como se fosse em java mesmo ou em php, que eu coloco o endereço, login e senha.

12 Respostas

F

Cara, da para usar normalmente. Importanto alguma bib. Exemplo para sqlServer:

public class SQLServer  {
	public Connection conn;
	public Statement stm;
	public ResultSet rs;
	private String usuario, senha;
	private String Driver = "net.sourceforge.jtds.jdbc.Driver";
	private String connString="jdbc:jtds:sqlserver://ip/banco";
	
	public void setUsuarioESenha(String user,String senha){
		this.senha = senha;
		this.usuario = user;
	}
	.
        .
        .
denisspitfire

alguem tem um exemplo de CRUD para banco externo?

denisspitfire

No onCreate fiz esses comandos

DbMySQL dbmysql = new DbMySQL();
		// ip do servidor mysql, porta, banco, usuário, senha
		dbmysql.conectarMySQL(ip, "3306", banco, usuario, senha);
		dbmysql.queryMySQL();
		dbmysql.desconectarMySQL();

e o código é esse

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

import android.app.Activity;
import android.util.Log;

public class DbMySQL extends Activity {
	private Connection conn = null;
	private Statement st;
	private ResultSet rs;
	private String sql;

	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, 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);
		}
	}

	public void queryMySQL() {
		try {
			st = conn.createStatement();
			sql = "SELECT * FROM tabela LIMIT 1";
			rs = st.executeQuery(sql);
			rs.first();
			Log.i("MYSQL", "Resultado: " + rs.getString("nome"));
		} catch (Exception erro) {
			Log.e("MYSQL", "Erro: " + erro);
		}
	}

}

o log é este

11-06 11:14:29.545: E/AndroidRuntime(238): Uncaught handler: thread main exiting due to uncaught exception
11-06 11:14:29.615: E/AndroidRuntime(238): java.lang.ExceptionInInitializerError
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.mysql.jdbc.NonRegisteringDriver.parseURL(NonRegisteringDriver.java:764)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at java.sql.DriverManager.getConnection(DriverManager.java:191)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at java.sql.DriverManager.getConnection(DriverManager.java:226)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.example.pdv.dbMySQL.conectarMySQL(dbMySQL.java:25)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.example.pdv.Principal.onCreate(Principal.java:24)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at android.app.ActivityThread.access$2200(ActivityThread.java:119)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at android.os.Handler.dispatchMessage(Handler.java:99)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at android.os.Looper.loop(Looper.java:123)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at android.app.ActivityThread.main(ActivityThread.java:4363)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at java.lang.reflect.Method.invokeNative(Native Method)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at java.lang.reflect.Method.invoke(Method.java:521)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at dalvik.system.NativeStart.main(Native Method)
11-06 11:14:29.615: E/AndroidRuntime(238): Caused by: java.lang.ExceptionInInitializerError
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.mysql.jdbc.Util.stackTraceToString(Util.java:355)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.mysql.jdbc.Util.<clinit>(Util.java:120)
11-06 11:14:29.615: E/AndroidRuntime(238): 	... 19 more
11-06 11:14:29.615: E/AndroidRuntime(238): Caused by: java.lang.RuntimeException: Can't load resource bundle due to underlying exception java.util.MissingResourceException: Can't find resource for bundle com.mysql.jdbc.LocalizedErrorMessages, key en_US
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.mysql.jdbc.Messages.<clinit>(Messages.java:61)
11-06 11:14:29.615: E/AndroidRuntime(238): 	... 21 more
11-06 11:14:29.615: E/AndroidRuntime(238): Caused by: java.util.MissingResourceException: Can't find resource for bundle com.mysql.jdbc.LocalizedErrorMessages, key en_US
11-06 11:14:29.615: E/AndroidRuntime(238): 	at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:245)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at java.util.ResourceBundle.getBundle(ResourceBundle.java:134)
11-06 11:14:29.615: E/AndroidRuntime(238): 	at com.mysql.jdbc.Messages.<clinit>(Messages.java:59)
11-06 11:14:29.615: E/AndroidRuntime(238): 	... 21 more
denisspitfire

oque é estranho é que ele acusa de nao ter o driver do mysql mas estou ja com ele no projeto e fiz o build path

V

Você não consegue conectar DIRETO a base de dados no seus PC no ANDROID, precisa de um WEBSERVICE. Se você procurar mais pelo GUJ, tem um tópico o qual postei um tutorial que achei no portal android.

denisspitfire

link do portal android

http://www.portalandroid.org/comunidade/viewtopic.php?f=7&t=14571

F

Você colocou o driver de maneira correta?

Dentro do próprio projeto?

denisspitfire

nao sei se esta no diretorio certo. mas deve ser na raiz

denisspitfire

sera que é essa porta?

denisspitfire

parece que é bem reservado esse modo de acessar um banco de dados. Quase ninguem usa. Como devo proceder então?

F

Calma amigo, to pesquisando aqui. Em casa tentarei fazer com mysql.

Tenho no meu projeto uma conexão em sqlServer externo em sinc com o sqLite…

denisspitfire

existe alguma outra maneira?

Criado 5 de novembro de 2012
Ultima resposta 6 de nov. de 2012
Respostas 12
Participantes 3