Olá pessoal,
Estou iniciando em Java e estou fazendo um programa que me pergunte um nome, faça um select no banco de dados e me mostre em uma mensagem a senha desse nome.
Tentei de tudo quanto era forma que procurei pela internet, olhando e exemplos e tudo mais mas não consegui obter um resultado.
Poderiam me ajudar? Abaixo irei fornecer meu código e caso queira escrever um código mais simples para fazer a mesma operação, ficaria grato.
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package dal;
import java.sql.;
import java.util.;
import javax.swing.JOptionPane;
/**
*
-
@author vncserver
*/
public class UtilDB {
public static void main(String args[]) {
String url = “jdbc:odbc:Banco”;
Connection connection = null;
Statement statement = null;
// Cria a conexão com o banco
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection(url);
connection.setAutoCommit(false);
} catch (ClassNotFoundException cnfex) {
System.err.println("Driver JDBC/ODBC nao encontrado.");
cnfex.printStackTrace();
System.exit(1);
} catch (SQLException sqlex) {
System.err.println("Falha na conexao.");
sqlex.printStackTrace();
System.exit(1);
}
try {
statement = connection.createStatement();
String user = JOptionPane.showInputDialog(null,
"Entre com o usuario", "Login",
JOptionPane.QUESTION_MESSAGE);
if (user == null) { // botão cancel
statement.close();
connection.close();
System.exit(1);
}
ResultSet resultSet = statement.executeQuery(
"select sqlsenha from Login where sqlusuario=" + user);
resultSet.next();
JOptionPane.showMessageDialog(null, "Usuario:"
+ resultSet.getFloat(1), "Login",
JOptionPane.INFORMATION_MESSAGE);
statement.close();
connection.close();
System.exit(0);
} catch (SQLException sqlex) {
sqlex.printStackTrace();
System.exit(1);
}
}
}
[/code]
O erro que aparece é o seguinte:
[quote]run:
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name ‘xande’.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at dal.UtilDB.main(UtilDB.java:46)
Java Result: 1[/quote][color=darkred][/color]
O erro está nessa linha:
ResultSet resultSet = statement.executeQuery("select sqlsenha from Login where sqlusuario=" + user);
Faça
ResultSet resultSet = statement.executeQuery("select sqlsenha from Login where sqlusuario='" + user + "'");
BlackDog
[quote=Medalbr]Olá pessoal,
Estou iniciando em Java e estou fazendo um programa que me pergunte um nome, faça um select no banco de dados e me mostre em uma mensagem a senha desse nome.
Tentei de tudo quanto era forma que procurei pela internet, olhando e exemplos e tudo mais mas não consegui obter um resultado.
Poderiam me ajudar? Abaixo irei fornecer meu código e caso queira escrever um código mais simples para fazer a mesma operação, ficaria grato.
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package dal;
import java.sql.;
import java.util.;
import javax.swing.JOptionPane;
/**
*
-
@author vncserver
*/
public class UtilDB {
public static void main(String args[]) {
String url = “jdbc:odbc:Banco”;
Connection connection = null;
Statement statement = null;
// Cria a conexão com o banco
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection(url);
connection.setAutoCommit(false);
} catch (ClassNotFoundException cnfex) {
System.err.println("Driver JDBC/ODBC nao encontrado.");
cnfex.printStackTrace();
System.exit(1);
} catch (SQLException sqlex) {
System.err.println("Falha na conexao.");
sqlex.printStackTrace();
System.exit(1);
}
try {
statement = connection.createStatement();
String user = JOptionPane.showInputDialog(null,
"Entre com o usuario", "Login",
JOptionPane.QUESTION_MESSAGE);
if (user == null) { // botão cancel
statement.close();
connection.close();
System.exit(1);
}
ResultSet resultSet = statement.executeQuery(
"select sqlsenha from Login where sqlusuario=" + user);
resultSet.next();
JOptionPane.showMessageDialog(null, "Usuario:"
+ resultSet.getFloat(1), "Login",
JOptionPane.INFORMATION_MESSAGE);
statement.close();
connection.close();
System.exit(0);
} catch (SQLException sqlex) {
sqlex.printStackTrace();
System.exit(1);
}
}
}
[/code]
O erro que aparece é o seguinte:
[quote]run:
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name ‘xande’.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at dal.UtilDB.main(UtilDB.java:46)
Java Result: 1[/quote][color=darkred][/color][/quote]
Ola BlackDog, muito grato pela ajuda mas ao executar, agora aparece o seguinte erro:
[quote]java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Valor de caractere inv?lido para especifica??o de coer??o
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataDouble(JdbcOdbc.java:3657)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataDouble(JdbcOdbcResultSet.java:5575)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDouble(JdbcOdbcResultSet.java:738)
at sun.jdbc.odbc.JdbcOdbcResultSet.getFloat(JdbcOdbcResultSet.java:663)
at dal.UtilDB.main(UtilDB.java:49)
Java Result: 1[/quote]
Consegui resultado da seguinte forma:
JOptionPane.showMessageDialog(null, "Usuario: "+resultSet.getString(1)+" Senha: "+resultSet.getString(2),"Login",JOptionPane.INFORMATION_MESSAGE);
Porém gostaria de ajuda para ver se está certo!
Outra coisa, caso o usuario não exista, como eu faria para por uma mensagem de “Usuario inexistente”?
Abraços!