Jump to content

Recommended Posts

Posted (edited)

Boas,

Eu estou a desenvolver uma aplicação para Android e preciso de ligar a uma base de dados MySQL, mas não estou a conseguir... Este é o codigo que estou a usar:

connection class:

public class MySQLConnect extends Activity{
public void onCreate(Bundle savedInstanceState) {
}

public static void connection(String[] args ) throws Exception{
	Class.forName("com.mysql.jdbc.Driver");
	Connection con=(Connection) DriverManager.getConnection("jdbc:mysql://localhost/prom.pt_test", "root", "root");
	PreparedStatement statement = con.prepareStatement("SELECT * FROM users");
	ResultSet result=statement.executeQuery();
	while(result.next()){
		System.out.println(result.getString(1) + "" + result.getString(2));
	}
}
}

Android manifest:

<activity
android:name=".MySQLConnect"
>

startActivity:

Button testButton = (Button) findViewById(R.id.button1);
testButton.setonclickListener(new View.onclickListener() {
@Override
public void onclick(View v) {
	startActivity(new Intent(LoginScreen.this, MySQLConnect.class));
}
});

Algué me pode ajudar, sff?

Obrigado,

PF2G

Edited by KTachyon
Geshi
Posted

De certeza que tens uma base de dados MySQL no Android? É que estás a utilizar 'localhost' como endereço da base de dados.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Posted

Boa noite,

A questão que o @KTachyon é a mesma que eu te coloco... Não tens como instalar MySQL numa plataforma android, logo a connection string não pode estar correcta.

 Connection con=(Connection) DriverManager.getConnection("jdbc:mysql://localhost/prom.pt_test", "root", "root");

Que SGBD estás a usar ? Se estiver instalado localmente no equipamento Android MySQL não será com certeza.

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Posted (edited)

Boa tarde,

Eu não estou a conseguir fazer o connect à localhost à DB. E estou farto de trocar cenas, fazer imports e nada.

Este é o neu codigo:


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


testButton.setonclickListener(new View.onclickListener() {


public void onclick(View v) {
try
{
Class.forName( "com.mysql.jdbc.Driver" ).newInstance();

Connection conn = DriverManager.getConnection("website.comt/index.php", "username", "*****");
Statement stmt = conn.createStatement();

try
{
String query = "SELECT * FROM users";

String args[] = null;
for(int i = 0; i < args.length; i++)
{
query += args[ i ];

if( i+1 < args.length )
query += "', '";
}

query += "')";
System.out.println("Query: " + query);
stmt.executeUpdate(query);
}
catch( SQLException e )
{
System.out.println( "SQLException: " + e.getMessage() );
System.out.println( "SQLState: " + e.getSQLState() );
System.out.println( "VendorError: " + e.getErrorCode() );
}
}
catch(Exception e)
{
System.out.println("Holy crap, Batman!");
System.out.println(e.getMessage());
e.printStackTrace();
System.out.println( "Remember: mandatory fields include:" );
System.out.println( "title, year, length, rating, url, stars" );
}
}



  • Será que alguém me pode ajudar?

Agradeço a vossa ajuda.

Obrigado, PF2G

Edited by PF2G
geshi
Posted

Boa tarde,

import java.sql.*;

testButton.setonclickListener(new View.onclickListener() {

public void onclick(View v)
{
 try
  {
 	 String driver = "com.mysql.jdbc.Driver";
	  String connection ="jdbc:mysql://127.0.0.1:3306/teste";	    
	  String user = "u1";
	  String password = "p1";
	  Connection con = DriverManager.getConnection(connection, user, password);
	  Statement stmt = con.createStatement();	 

	 String query = "SELECT * FROM users";
	 String args[] = null;
	 for(int i = 0; i < args.length; i++)
	 {
	 		 query += args[ i ];
	 		 if( i+1 < args.length )
	 		 query += "', '";
	 }
	 query += "')";
	 System.out.println("Query: " + query);
	 stmt.executeUpdate(query);
	 }
	 catch( SQLException e )
	  {
	 		 System.out.println( "SQLException: " + e.getMessage() );
			  System.out.println( "SQLState: " + e.getSQLState() );
			  System.out.println( "VendorError: " + e.getErrorCode() );
			  System.out.println("Holy crap, Batman!");
			  System.out.println(e.getMessage());
			  e.printStackTrace();
			  System.out.println( "Remember: mandatory fields include:" );
			 System.out.println( "title, year, length, rating, url, stars" );
	  }
	 }
}

Não estarás a ter um problema de âmbito ??? Pelo que vi estas a usar duas estruturas "try - catch".

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Posted

primeiro : programar para o android usas java mas não indica que estás a usar toda a framework do java

segundo : estás a ir por um caminho sem saída =

http://www.basic4ppc.com/forum/basic4android-updates-questions/11443-connect-directly-android-mysql.html

Android doesn't include the required libraries. The recommended method (by myself and others) is to use a web service as explained in this tutorial: http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/8339-connect-android-mysql-database-tutorial.html

IRC : sim, é algo que ainda existe >> #p@p
Posted

HippyHippo ainda nao vi os teus links, mas ja os vou verificar.

Antes disso, podes-me dizer onde fica a pasta WEB-INF/lib é que eu li que o .jar tem de estar nesta pasta, mas eu nao sei onde é que está :S

Obrigado pela ajudar,

PF2G

Posted

Epah, eu não sei para que é que tu andas a programar. Definitivamente não é para Android...

WEB-INF é uma pasta de um projecto para uma plataforma Web, normalmente utilizando um servidor aplicacional, tipo JBoss, Glassfish, Tomcat,... em Java. Não tem nenhuma relação com o Android.

E não, não podes ir buscar um .jar qualquer e adicionar ao Android. A máquina virtual do Android é diferente da JVM.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Posted

Boa noite,

Troca de driver par aceder à base de dados. O Erro que te está a dar é de driver indisponivel, logo precisas de um driver que funcione em Android. Pesquisa por

mysql-connector-java-3.0.17-ga-bin.jar, e encontras um driver compativel e que funciona.

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Posted

O driver tinha que ser recompilado para Android. Os jars fornecidos não podem ser utilizados. Para além disso, utilizar uma base de dados desta forma não é seguro. Deves fazer isto com coisas como Web Services ou criar um API via HTTP.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Posted

Boa noite,

O jar que indiquei é compativel com Android 2.1 e superiores. De qualquer forma concordo que não é nem de perto nem de longe a melhor forma. Quando muito aceitaria uma connecção com atravez de uma VPN com IPSEC, mas mesmo isso é desperdicio de recursos. O uso de Webservices ou API's web é preferivel quando não é possivel ter a base de dados localmente.

Que conheça não é possivel corrrer o mysql em android mas o sqlite é.

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Posted

Exacto, não existe MySQL para Android. A Oracle podia portá-lo para Android, mas é uma coisa que não faz sentido.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Posted

Eu sinto que estou proximo de conseguir a ligação, ja vi varios sites e todos andam a volta do codigo que tenho e funciona neles, a mim da-me sempre erro agora dá-me na connection:

com.mysql.jdbc.exceptions.jdbc4.mysqlnontransientconnectionexception could not create connection to database
Posted

Coloca aí o código que tens ou o link para um dos vários sites em que funciona.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.