在 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();
}
我想弄清楚为什么我的代码会被发送到异常捕获块,以及如何使我的这部分登录正常工作。问题似乎出在 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();
}