Conexão ao Banco de dados

boa tarde!

Sou novata com java e estou desenvolvendo um projeto simples porém me deparei com um problema relacionado a conexão do banco de dados.

Preciso que minha aplicação acesse o banco de dados utilizando o " usuário e senha" do banco de dados
porém o login e a senha que o usuário digitar na tela de login será validada por uma função .

Como faria isso?

[quote=sarah_nile]boa tarde!

Sou novata com java e estou desenvolvendo um projeto simples porém me deparei com um problema relacionado a conexão do banco de dados.

Preciso que minha aplicação acesse o banco de dados utilizando o " usuário e senha" do banco de dados
porém o login e a senha que o usuário digitar na tela de login será validada por uma função .

Como faria isso?[/quote]

vc entende que existe uma diferenca entre premissões de acesso a um sistema e permissão de acesso ao banco de dados?

Essa é a forma mais comum, pra quem está começando:

o username e password do banco de dados “apenas sua aplicação pode saber”. se não, a aplicação não consegue se conectar ao banco de dados. Isso é a “nível” de servidor, caso seja web.

Assim que sua aplicação adquire a conexão, através dela, seu sistema compara o login e a senha registrados no bd com o enviado pelo usuário. se o usuário e senha existem dentro do seu sistema, então ele tem acesso. Se não joga a mensagem dizendo que tal usuário não existe ou que a senha é inválida.

é exatamente isso que qro fazer, só que não sei como.
Poderia me mostrar um exemplo de um classe fazendo essa validação?

O que estava fazendo era criando o usuário de banco de dados e dando acesso a eles, e sei que errado pq assim qualquer usuário que instalar uma ferramenta de bd na maquina e conectar ao banco de dados terá acesso as tabelas e não quero que seja assim.

Desde de já agradeço muito.

[i]Vc pode resgatar uma lista de usuarios da db e comparar o login q o usuario digitou.
Ou resgar tentar resgatar o usuario diretamente pelo login, e caso exista compara a senha

Quando eu tava aprendendo eu resgatava uma lista de usuarios.
Usando for comparava o login digitado com os logins da lista.
Nesse ponto eu errava, pq n interrompia o loop dps q o login fosse encontrado, por isso perdia tempo olhando tds os logins msm dps de achar o correto
Em seguida compara a senha.

Basicamente é isso

[/i]

Estou usando este código.
Onde eu alteraria para solucionar este problema?

[size=9]import java.sql.*;

public class Conexao{

/** Creates a new instance of Conexao */
public Conexao(String user, String pass, String host) {
    this.user = user;
    this.pass = pass;
    this.host =  host.toUpperCase();
}

/** Método desenvolvido para retornar um objeto do tipo Connection
* @param usuario
* @param senha
* @param host
* @return Connection
* @see java.sql.Connection **/

public static Connection conexao(String user, String pass, String host){
   try{
       DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
       connection = DriverManager.getConnection(SistemaProps.getUrl(host),user,pass);
   }catch(Exception e){
       connection = null;
       Tratamentos.tratamentos(e);
   }
   return connection;         
}

/** Método cria uma conexao com o banco de dados */ 

public static void makeConnection(){
    try{
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
        connection = DriverManager.getConnection(SistemaProps.getUrl(host),user,pass);
    }catch(Exception ex){
        connection = null;
        Tratamentos.tratamentos(ex);            
    }
}

/** Método retorna um objeto do tipo Connection
 * @return Connection */

public static Connection getConnection(){
    return connection;
}

/** Método seta o usuário passado como parametro
 * @param usuario **/

public static void setUser(String u){
    user = u;
}

/** Método seta a senha passada como parametro
 * @param senha **/

public static void setPass(String p){
    pass = p;
}

/** Método seta o host passado como parâmetro
 * @param host */

public static void setHost(String h){
    host = h;
}

/** Método retorna o usuário logado no banco
 * @return usuario **/

public static String getUser(){
    return user;
}

/** Método retorna senha
 * @return senha **/

public static String getPass(){
    return pass;
}
 

/** Método retorna o host
 * @return host **/

public static String getHost(){
    return host;
}

/** Método desenvolvido para liberar a conexão, desconectar o user **/

public static void shutDown() {
    try{
        if (!connection.isClosed() && connection != null){
            connection.close();
            connection = null;
        }
    }catch (Exception e) {
        Tratamentos.tratamentos(e);
    }
}

static String user = "";
static String pass = "";
static String host = "";    
static Connection connection = null;

}[/size]

Usa a tag CODE quando postar codigo, é só selecionar td o teu codigo e clicar no botão code
Vc pode criar algum tipo de view, q passa o login e a senha digitada pra esse objeto, n tem muito segredo

Pronto.

Poderia me ajudar? :’(

tem skype?

[code]import java.sql.*;

public class Conexao{

/** Creates a new instance of Conexao */
public Conexao(String user, String pass, String host) {
this.user = user;
this.pass = pass;
this.host = host.toUpperCase();
}

/** Método desenvolvido para retornar um objeto do tipo Connection

  • @param usuario
  • @param senha
  • @param host
  • @return Connection
  • @see java.sql.Connection **/

public static Connection conexao(String user, String pass, String host){
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection(SistemaProps.getUrl(host),user,pass);
}catch(Exception e){
connection = null;
Tratamentos.tratamentos(e);
}
return connection;
}

/** Método cria uma conexao com o banco de dados */

public static void makeConnection(){
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection(SistemaProps.getUrl(host),user,pass);
}catch(Exception ex){
connection = null;
Tratamentos.tratamentos(ex);
}
}

/** Método retorna um objeto do tipo Connection

  • @return Connection */

public static Connection getConnection(){
return connection;
}

/** Método seta o usuário passado como parametro

  • @param usuario **/

public static void setUser(String u){
user = u;
}

/** Método seta a senha passada como parametro

  • @param senha **/

public static void setPass(String p){
pass = p;
}

/** Método seta o host passado como parâmetro

  • @param host */

public static void setHost(String h){
host = h;
}

/** Método retorna o usuário logado no banco

  • @return usuario **/

public static String getUser(){
return user;
}

/** Método retorna senha

  • @return senha **/

public static String getPass(){
return pass;
}

/** Método retorna o host

  • @return host **/

public static String getHost(){
return host;
}

/** Método desenvolvido para liberar a conexão, desconectar o user **/

public static void shutDown() {
try{
if (!connection.isClosed() && connection != null){
connection.close();
connection = null;
}
}catch (Exception e) {
Tratamentos.tratamentos(e);
}
}

static String user = “”;
static String pass = “”;
static String host = “”;
static Connection connection = null;
} [/code]

[code]//Mero exemplo
//Campos de uma view de um app desktop
public TxtField user;
public TxtField pass;
public TxtField url;//Uma combobox seria mais util :v

Conexão.conect(url.getText(), user.getText(), pass.getText());[/code]

Como eu disse n tem muito segredo