public class BancoDeDados {
static String url = "jdbc:mysql://localhost:3306/Estoque";
static String pass = "admin";
static String user = "admin";
static Connection conexao = null;
public static boolean conecta() throws ClassNotFoundException {
try {
Class.forName("mysql.Driver");
conexao = DriverManager.getConnection(url, user, pass);
//System.out.println("Conectado.");
JOptionPane.showMessageDialog(null, "Conectado com Sucesso!");
return true;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Usuário e/ou senha estão incorretos!");
//System.out.println("Usuário e/ou senha estão errados.");
return false;
}
}
public class TelaPrincipal 扩展 JFrame {
Connection conexao = null;
PreparedStatement pst = null;
ResultSet rs = null;
private JPanel contentPane;
private JTextField textLogin;
private JPasswordField textSenha;
public void logar(){
String sql = "Select *from Login WHERE Usuario = ? and senha = ?";
try{
pst = conexao.prepareStatement(sql);
pst.setString(1, textLogin.getText());
pst.setString(2, textSenha.getText());
rs = pst.executeQuery();
if(rs.next()){
TelaOpcoes telaopcoes = new TelaOpcoes();
telaopcoes.setVisible(true);
dispose();
}
else{
JOptionPane.showMessageDialog(null, "Usuário e Senha Inválidos");
}
}
catch(SQLException error){
JOptionPane.showMessageDialog(null, error);
}
}
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TelaPrincipal frame = new TelaPrincipal();
frame.setVisible(true);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public TelaPrincipal() throws ClassNotFoundException {
conexao = BancoDeDados.conecta();
this.setLocationRelativeTo(null);
它在倒数第二行"CONEXAO = BANCODEDADOS上做错误。CONECTA();"说"类型不匹配:无法从布尔值转换为连接"有人可以帮我吗?谢谢!
CONEXAO = BANCODEDADOS.CONECTA();
这里CONEXAO是一个连接变量
但是方法班科达多斯。CONECTA();返回布尔值。
所以改变变量CONEXAO的类型
或创建一个新的变量布尔类型来存储结果Boolean conexao = BancoDeDados.conecta();
您的方法返回布尔值(不是Connection
)。改变
public static boolean conecta() throws ClassNotFoundException {
try {
Class.forName("mysql.Driver");
conexao = DriverManager.getConnection(url, user, pass);
//System.out.println("Conectado.");
JOptionPane.showMessageDialog(null, "Conectado com Sucesso!");
return true;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Usuário e/ou senha estão incorretos!");
//System.out.println("Usuário e/ou senha estão errados.");
return false;
}
}
到类似的东西
public static Connection conecta() {
Connection conn = null;
try {
Class.forName("mysql.Driver");
conn = DriverManager.getConnection(url, user, pass);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
您正在从方法 conecta()
返回布尔值,并且在构造函数中将其存储到 java.sql.Connection
...
因此,将conecta()
方法的返回类型更改为java.sql.Connection
.。
conexao
是Connection
的对象,您正在将方法调用的值分配给Connection
BancoDeDados.conecta();
[返回boolean
] 。
像这样更改您的代码
Boolean result = BancoDeDados.conecta();
或者从方法 conecta
返回conexao
以支持代码。
编辑:
连接MySQL的驱动程序com.mysql.jdbc.Driver
。更改您的代码
Class.forName("mysql.Driver");
自
Class.forName("com.mysql.jdbc.Driver");