Java 具有访问权限的登录系统
大家好,我是java新手,我正在尝试运行此java代码,但由于某些原因,它没有在Eclipse控制台中显示错误。。它在这一行确实有语法错误:Java 具有访问权限的登录系统,java,swing,ms-access,jdbc,Java,Swing,Ms Access,Jdbc,大家好,我是java新手,我正在尝试运行此java代码,但由于某些原因,它没有在Eclipse控制台中显示错误。。它在这一行确实有语法错误: b.addActionListener (new ActionListener() { 我已经尝试了所有的建议,但还是一无所获。。我知道这很简单,但我以前从未让控制台不显示任何错误。谢谢你的帮助 import javax.swing.*; import java.awt.event.*; import java.sql.*; public class
b.addActionListener (new ActionListener() {
我已经尝试了所有的建议,但还是一无所获。。我知道这很简单,但我以前从未让控制台不显示任何错误。谢谢你的帮助
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class Loging {
Connection con;
Statement st;
ResultSet rs;
JFrame f = new JFrame("User Login");
JLabel l = new JLabel("Username");
JLabel l1 = new JLabel("password");
JTextField t = new JTextField(10);
JTextField t1 = new JTextField(10);
JButton b = new JButton("Login");
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public void Loging1() {
connect();
frame();
}
public void connect() {
try {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";// Driver needed for
// connection
Class.forName(driver);// Class.forName(driver);
String db = "jdbc:odbc:db1";
con = DriverManager.getConnection(db);
st = con.createStatement();
} catch (Exception ex) {
}
}
public void frame()
{
f.setSize (600,400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
JPanel p = new JPanel();
p.add(l);
p.add(t);
p.add(l1);
p.add(t1);
p.add(b);
f.add(p);
b.addActionListener (new ActionListener() {
}
public void actionPerformed(ActionEvent e) {
try {
String user = t.getText().trim();
String pass = t1.getText().trim();
String sql = "select user, pass from Table1 where user = '" + user
+ "'and pass = '" + pass + "'";// for sql query
// String sql =
// "select user, pass from Table1 where user = '"+user+"'pass = '"+pass+"'";
// Getting the fields user and pass checks tthat both are equal to
// each orther
rs = st.executeQuery(sql);// executes query
int count = 0;// cont the rows for the query
while (rs.next()) {
count = count + 1;// if no rows are returned then no user exist,
// if count is = to 1 then user exist }
}
if (count == 1)// if = to 1 user exist
{
JOptionPane.showMessageDialog(null, "Logged in!");
} else if (count > 1)// if more that one
{
JOptionPane.showMessageDialog(null, "Duplicate user, DENIED!");
}
else {
JOptionPane.showMessageDialog(null, "user not found");
}
} catch (Exception ex) {
}
// public static void main(String[] args) {
}
// New Loging1 ();
}
这个
b.addActionListener (new ActionListener() {
}
将给您一个编译器错误,因为您未能满足ActionListener
接口的要求,即实现actionPerformed
方法
更像是
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Loging {
Connection con;
Statement st;
ResultSet rs;
JFrame f = new JFrame("User Login");
JLabel l = new JLabel("Username");
JLabel l1 = new JLabel("password");
JTextField t = new JTextField(10);
JTextField t1 = new JTextField(10);
JButton b = new JButton("Login");
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public void Loging1() {
connect();
frame();
}
public void connect() {
try {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";//Driver needed for connection
Class.forName(driver);// Class.forName(driver);
String db = "jdbc:odbc:db1";
con = DriverManager.getConnection(db);
st = con.createStatement();
} catch (Exception ex) {
}
}
public void frame() {
f.setSize(600, 400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
JPanel p = new JPanel();
p.add(l);
p.add(t);
p.add(l1);
p.add(t1);
p.add(b);
f.add(p);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String user = t.getText().trim();
String pass = t1.getText().trim();
String sql = "select user, pass from Table1 where user = '" + user + "'and pass = '" + pass + "'";//for sql query
//String sql = "select user, pass from Table1 where user = '"+user+"'pass = '"+pass+"'";
//Getting the fields user and pass checks tthat both are equal to each orther
rs = st.executeQuery(sql);//executes query
int count = 0;//cont the rows for the query
while (rs.next()) {
count = count + 1;//if no rows are returned then no user exist, if count is = to 1 then user exist }
}
if (count == 1)//if = to 1 user exist
{
JOptionPane.showMessageDialog(null, "Logged in!");
} else if (count > 1)//if more that one
{
JOptionPane.showMessageDialog(null, "Duplicate user, DENIED!");
} else {
JOptionPane.showMessageDialog(null, "user not found");
}
} catch (Exception ex) {
}
//public static void main(String[] args) {
}
// New Loging1 ();
});
}
}
将至少编译(抱歉,我不想讨论其他一些格式问题)
您还应该学习如何使用PreparedStatements
有关更多详细信息,请参阅,它们通常更灵活、更安全
JdbcOdbcDriver
已经贬值,您不应该使用它。类似的解决方案可能更合适,但您需要做一些研究
您可能还想看看这个
b.addActionListener (new ActionListener() {
}
将给您一个编译器错误,因为您未能满足ActionListener
接口的要求,即实现actionPerformed
方法
更像是
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Loging {
Connection con;
Statement st;
ResultSet rs;
JFrame f = new JFrame("User Login");
JLabel l = new JLabel("Username");
JLabel l1 = new JLabel("password");
JTextField t = new JTextField(10);
JTextField t1 = new JTextField(10);
JButton b = new JButton("Login");
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public void Loging1() {
connect();
frame();
}
public void connect() {
try {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";//Driver needed for connection
Class.forName(driver);// Class.forName(driver);
String db = "jdbc:odbc:db1";
con = DriverManager.getConnection(db);
st = con.createStatement();
} catch (Exception ex) {
}
}
public void frame() {
f.setSize(600, 400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
JPanel p = new JPanel();
p.add(l);
p.add(t);
p.add(l1);
p.add(t1);
p.add(b);
f.add(p);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String user = t.getText().trim();
String pass = t1.getText().trim();
String sql = "select user, pass from Table1 where user = '" + user + "'and pass = '" + pass + "'";//for sql query
//String sql = "select user, pass from Table1 where user = '"+user+"'pass = '"+pass+"'";
//Getting the fields user and pass checks tthat both are equal to each orther
rs = st.executeQuery(sql);//executes query
int count = 0;//cont the rows for the query
while (rs.next()) {
count = count + 1;//if no rows are returned then no user exist, if count is = to 1 then user exist }
}
if (count == 1)//if = to 1 user exist
{
JOptionPane.showMessageDialog(null, "Logged in!");
} else if (count > 1)//if more that one
{
JOptionPane.showMessageDialog(null, "Duplicate user, DENIED!");
} else {
JOptionPane.showMessageDialog(null, "user not found");
}
} catch (Exception ex) {
}
//public static void main(String[] args) {
}
// New Loging1 ();
});
}
}
将至少编译(抱歉,我不想讨论其他一些格式问题)
您还应该学习如何使用PreparedStatements
有关更多详细信息,请参阅,它们通常更灵活、更安全
JdbcOdbcDriver
已经贬值,您不应该使用它。类似的解决方案可能更合适,但您需要做一些研究
您可能还想看看和annd。。。什么不起作用了?你能让Eclipse格式化你的代码使它看起来更好吗?你有一个额外的右括号。用适当的缩进格式化你的代码,这对你来说是显而易见的。那行代码显然是不完整的,因此语法错误。您可以通过完成您试图编写的语句来更正它。您没有在正确的区域Annnnd中实现actionPerformed()。。。什么不起作用了?你能让Eclipse格式化你的代码使它看起来更好吗?你有一个额外的右括号。用适当的缩进格式化你的代码,这对你来说是显而易见的。那行代码显然是不完整的,因此语法错误。您可以通过完成您试图编写的语句来更正它。您没有在正确的区域实现actionPerformed()