在java中使用sql创建登录
我试图弄清楚为什么我的代码会被发送到异常捕获块,以及如何使我的日志的这一部分正常工作。问题似乎在课堂上;调试时,我注意到出现了一个错误,“变量源代码不可用,源代码未使用g选项编译”。这就是我的代码不会进入下一步的原因吗?如果是,我需要什么来修复它,这意味着什么 我的程序中确实导入了在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
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的以下链接: