Ir para conteúdo
  • 0

Java + Base de dados


joao100101

Pergunta

Queria saber como posso fazer pro meu programa pegar informações de um usuário diretamente de uma base de dados online.

 

Ex:

String info = user.getText() + ":" + "senha.getPassword().toString();
String array[] = new String[2];
array = frase.split(":");

if(lerDatabase.contains(info)){
   System.out.println("Infos encontradas na database");
}

Queria algo tipo isso. Agradeço se puderem me ajudar ;)

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

Você pode usar o JDBC para se conectar com o banco de dados e checar essas informações.

Lembrando que você precisa de um driver para se conectar com o banco de dados(caso esteja usando spigot/bukkit e bla bla, já vem com o driver mysql/sqlite).

 

As URL's abaixo são dos drivers mysql e sqlite, elas serão necessárias para o driver informado se conectar com o banco de dados:

 

MySQL:

"jdbc:mysql://" + ip_do_host + ":" + porta + "/" + nome_da_database

SQLITE:

"jdbc:sqlite:" + nome_do_arquivo_sqlite

Cada driver tem sua url, caso você não use nenhuma desses bancos, dê uma procurada pelo Google. (jdbc nome do driver url)

 

 

Podemos usar o método #getConnection, da classe DriverManager, para recuperar a classe java.sql.Connection. A classe Connection mexe com o banco de dados, recuperando, inserindo, deletando, resumindo, podemos fazer tudo com essa classe.

 

Bem, essa é uma explicação bem resumida mesmo, recomendo dar uma estudada para aprender mais coisas sobre JDBC.

 

A classe Connection contém um método chamado #prepareStatement ele pode fazer algumas ações como: inserir, recuperar, deletar e atualizar um dado de uma tabela ou até mesmo a tabela. Esse método retorna a classe PreparedStatement.

 

Exemplo:

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/minhadatabase", "root", "456");

Alguns drivers podem receber usuário e senha, o método #getConnection recebe os parâmetros usuário e senha.

 

Temos:

    public boolean contains(String info) {
	try {
	    
	    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/minhadatabase", "root", "456"); // Cria a conexão com o banco de dados

	    PreparedStatement ps = con.prepareStatement("SELECT * FROM tabela WHERE info=?"); // Prepara o statement, informando a seguinte operação: SELECIONE TUDO EM tabela QUE info FOR IGUAL A ?(O valor deve ser informado)
	    ps.setString(1, info); // Para informar o valor, usamos o método #setString, onde ele aceita a posição e a String que deve ser verificada.
	    return ps.executeQuery().next(); // Aqui executamos a consulta, ele retorna uma classe chamada ResultSet, que tem os resultados da consulta. https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html
// Esse método checa se existe ou não, caso exista, retorna true, caso contrário retorna false ou sqlexception.
	} catch (Exception e) {
	    return false; // caso tenha dado algum erro, retorna falso, informando que não existe.
	}
    }

Eu sinceramente não sei se existe outra forma de verificar se existe ou não um dado na tabela sem ser dessa forma, mas acredito que não. Nunca pesquisei.

 

Agora podemos usar:

String info = user.getText() + ":" + "senha.getPassword().toString();
String array[] = new String[2];
array = frase.split(":");

if(contains(info)){ // checando se contém.
   System.out.println("Infos encontradas na database");
}

Acho que deu para entender.

 

OBS:

Tome cuidado com essa consulta, ela cria uma conexão com o banco de dados sempre que vai consultar algo.

Recomendações:

Tentar manter essa conexão sempre ativa e não abrir mais, armazenar as informações em cache ou abrir só quando necessário.

Editado por smgabriel
Link para o comentário
Compartilhar em outros sites

Qual banco de dados?

 

Que tipo de 'banco de dados' é?

Qualquer um, só estou querendo saber msm como posso fazer da melhor forma.

 

 

 

Você pode usar o JDBC para se conectar com o banco de dados e checar essas informações.

Lembrando que você precisa de um driver para se conectar com o banco de dados(caso esteja usando spigot/bukkit e bla bla, já vem com o driver mysql/sqlite).

 

As URL's abaixo são dos drivers mysql e sqlite, elas serão necessárias para o driver informado se conectar com o banco de dados:

 

MySQL:

"jdbc:mysql://" + ip_do_host + ":" + porta + "/" + nome_da_database

SQLITE:

"jdbc:sqlite:" + nome_do_arquivo_sqlite

Cada driver tem sua url, caso você não use nenhuma desses bancos, dê uma procurada pelo Google. (jdbc nome do driver url)

 

 

Podemos usar o método #getConnection, da classe DriverManager, para recuperar a classe java.sql.Connection. A classe Connection mexe com o banco de dados, recuperando, inserindo, deletando, resumindo, podemos fazer tudo com essa classe.

 

Bem, essa é uma explicação bem resumida mesmo, recomendo dar uma estudada para aprender mais coisas sobre JDBC.

 

A classe Connection contém um método chamado #prepareStatement ele pode fazer algumas ações como: inserir, recuperar, deletar e atualizar um dado de uma tabela ou até mesmo a tabela. Esse método retorna a classe PreparedStatement.

 

Exemplo:

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/minhadatabase", "root", "456");

Alguns drivers podem receber usuário e senha, o método #getConnection recebe os parâmetros usuário e senha.

 

Temos:

    public boolean contains(String info) {
	try {
	    
	    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/minhadatabase", "root", "456"); // Cria a conexão com o banco de dados

	    PreparedStatement ps = con.prepareStatement("SELECT * FROM tabela WHERE info=?"); // Prepara o statement, informando a seguinte operação: SELECIONE TUDO EM tabela QUE info FOR IGUAL A ?(O valor deve ser informado)
	    ps.setString(1, info); // Para informar o valor, usamos o método #setString, onde ele aceita a posição e a String que deve ser verificada.
	    return ps.executeQuery().next(); // Aqui executamos a consulta, ele retorna uma classe chamada ResultSet, que tem os resultados da consulta. https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html
// Esse método checa se existe ou não, caso exista, retorna true, caso contrário retorna false ou sqlexception.
	} catch (Exception e) {
	    return false; // caso tenha dado algum erro, retorna falso, informando que não existe.
	}
    }

Eu sinceramente não sei se existe outra forma de verificar se existe ou não um dado na tabela sem ser dessa forma, mas acredito que não. Nunca pesquisei.

 

Agora podemos usar:

String info = user.getText() + ":" + "senha.getPassword().toString();
String array[] = new String[2];
array = frase.split(":");

if(contains(info)){ // checando se contém.
   System.out.println("Infos encontradas na database");
}

Acho que deu para entender.

 

OBS:

Tome cuidado com essa consulta, ela cria uma conexão com o banco de dados sempre que vai consultar algo.

Recomendações:

Tentar manter essa conexão sempre ativa e não abrir mais, armazenar as informações em cache ou abrir só quando necessário.

 

Essa parte ai do localhost pra conectar o que eu faço? pq geralmente os hosts de mysql online são todos de acesso localhost por phpmyadmin. Como ficaria nesse caso pra mim poder conectar?

Link para o comentário
Compartilhar em outros sites

Qualquer um, só estou querendo saber msm como posso fazer da melhor forma.

 

 

 

 

Essa parte ai do localhost pra conectar o que eu faço? pq geralmente os hosts de mysql online são todos de acesso localhost por phpmyadmin. Como ficaria nesse caso pra mim poder conectar?

Caso a consulta seja feita em outra máquina(sua máquina != local onde o mysql está hospedado), você deve procurar o endereço externo da host do mysql, geralmente a hospedagem que oferece o banco de dados, disponibiliza esses dados com o usuário, senha e porta. Aí você substitíu de localhost para o endereço informado, exemplo: 155.15.155.164. Mas se a máquina que faz a consulta é a mesma que hospeda o banco de dados, pode deixar como localhost ou 127.0.0.1 mesmo.

Link para o comentário
Compartilhar em outros sites

Caso a consulta seja feita em outra máquina(sua máquina != local onde o mysql está hospedado), você deve procurar o endereço externo da host do mysql, geralmente a hospedagem que oferece o banco de dados, disponibiliza esses dados com o usuário, senha e porta. Aí você substitíu de localhost para o endereço informado, exemplo: 155.15.155.164. Mas se a máquina que faz a consulta é a mesma que hospeda o banco de dados, pode deixar como localhost ou 127.0.0.1 mesmo.

Resolvido, vlw ae pela ajuda ;3

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...