在 java 中使用 sql 创建登录

Creating a login using sql in java

我想弄清楚为什么我的代码会被发送到异常捕获块,以及如何使我的这部分登录正常工作。问题似乎出在 Class.forName(driver);在调试时,我注意到出现错误 "variable source not available, source compiled with-out g-option"。这是我的代码不会进入下一步的原因吗?如果是,我需要修复什么,这意味着什么?

我确实在我的程序中导入了.....

import java.sql.*;
import javax.swing.JOptionPane;
import java.sql.DriverManager;

 private void SubmitActionPerformed(java.awt.event.ActionEvent evt) {                                       

        try {
            String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        Class.forName(driver);
        String db = "jdbc:odbc:db1.mdb";
        con = DriverManager.getConnection(db);
        st = con.createStatement();
        System.out.println("it actually ready this set of code!");
        String un = UserName.getText().trim();
        String pw = Password.getText().trim();
        String sql = "select user,pass from Table2 where user='"+un+"'and pass='"+pw+"'";
        rs=st.executeQuery(sql);
        int count = 0;
        while(rs.next()){
            count = count+1;
        }
        if (count==1){
            JOptionPane.showMessageDialog(null,"User, Found Access Granted!");
        }
        else if (count>1){
            JOptionPane.showMessageDialog(null,"Duplicate User, Access Denied!");
        } 
            else {
            JOptionPane.showMessageDialog(null, "user doesn't exsist. ");
             }

        } catch (Exception ex){
            System.out.println("exception 2 ");
        }

        // TODO add your handling code here:
    }   

尝试从 String db = "jdbc:odbc:db1.mdb"; 中删除 .mdb 并简单地写 String db = "jdbc:odbc:db1";

这可能对你有用!

请注意,这仅适用于 Java runtime 7 或以下版本Java 8 以来,JDBC-ODBC 驱动程序支持已被 移除。如果需要,您仍然可以 something like this 连接到 MSAccess 数据库。

或者,您可以使用免费 JDBC 驱动程序可用的众多数据库之一,例如 MySQL、PostgreSQL、SQLServer 等。

获取数据库连接对象如下:

String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=db1.mdb;";
Connection conn = DriverManager.getConnection(database, "", "");

同时添加代码以打印异常堆栈跟踪:

catch (Exception ex) {
    System.out.println("exception 2 ");         
    ex.printStackTrace();
}