在java中使用sql创建登录

在java中使用sql创建登录,java,sql,swing,netbeans,login,Java,Sql,Swing,Netbeans,Login,我试图弄清楚为什么我的代码会被发送到异常捕获块,以及如何使我的日志的这一部分正常工作。问题似乎在课堂上;调试时,我注意到出现了一个错误,“变量源代码不可用,源代码未使用g选项编译”。这就是我的代码不会进入下一步的原因吗?如果是,我需要什么来修复它,这意味着什么 我的程序中确实导入了 import java.sql.*; import javax.swing.JOptionPane; import java.sql.DriverManager; private void SubmitActio

我试图弄清楚为什么我的代码会被发送到异常捕获块,以及如何使我的日志的这一部分正常工作。问题似乎在课堂上;调试时,我注意到出现了一个错误,“变量源代码不可用,源代码未使用g选项编译”。这就是我的代码不会进入下一步的原因吗?如果是,我需要什么来修复它,这意味着什么

我的程序中确实导入了

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
只需编写
stringdb=“jdbc:odbc:db1”

这可能对你有用

注意,这只适用于Java runtime 7或以下版本Java8以来,JDBC-ODBC驱动程序支持已被删除。如果需要,您仍然可以连接到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();
}

您是否在类路径中添加了sun.jdbc.odbc.jdbcodbcdriver jar?如果它“发送到异常捕获块”,您应该获取堆栈跟踪以了解更多详细信息。将catch块更改为
System.out.println(“exception 2”,ex)
以获取堆栈跟踪,然后用它更新您的问题。您应该将sun.jdbc.odbc.JdbcOdbcDriver jar添加到类路径尝试从字符串db=“jdbc:odbc:db1.mdb”中删除.mdb;您正在使用哪个java运行时?Java 7或Java 8?我确实做了您建议的更改,谢谢您指出这一点。我仍然得到错误。调试时,错误发生在我到达该字符串之前。问题在于“Class.forName(driver);”我只是不知道如何让它通过这行代码。您使用的是哪个JDK版本?7或8?我使用的是java 8(很抱歉,必须记住在哪里可以找到该文件),然后您无法访问MS access,请访问我在上述答案中提供的链接,下载这4个JAR,将其添加到您的库中,这样您就可以使用了。或者,下载较低版本的Java@CAPTiNDANCEAnytime mate:)谢谢你教我如何执行ex.printStackTrace();我不知道怎么做(虽然我想),我会尝试你在这里发布的内容。看看结果如何。好的,我已经对它的书写方式做了调整。我现在得到以下错误:它不会让我发布所有的错误,所以我会发布前2个,因为我认为它们是相关的。atjava.sql.SQLException:未找到适合jdbc的驱动程序:odbc:driver={Microsoft Access驱动程序(*.mdb)};DBQ=db1.mdb;java.sql.DriverManager.getConnection(DriverManager.java:689)位于java.sql.DriverManager.getConnection(DriverManager.java:247)@captindance:通过java 8 JDBC-ODBC的以下链接: