1 package com.h1; 2 3 import javax.swing.JFrame; 4 import javax.swing.JPanel; 5 6 import java.awt.BorderLayout; 7 import java.awt.Color; 8 9 import javax.swing.JButton; 10 import javax.swing.JTextField; 11 import javax.swing.JLabel; 12 13 import java.awt.Font; 14 import java.awt.event.ActionEvent; 15 import java.awt.event.ActionListener; 16 import java.sql.*; 17 18 public class AdminLogin extends JFrame implements ActionListener{ 19 private JTextField textField_2; 20 private JTextField textField_3; 21 JButton button; 22 JLabel label_2; 23 public AdminLogin() { 24 25 super("管理员登录"); 26 this.setSize(195, 172); 27 this.setLocation(230,200);//主窗口位置 28 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 29 //this.setResizable(false); 30 31 JPanel panel = new JPanel(); 32 getContentPane().add(panel, BorderLayout.CENTER); 33 34 JLabel label = new JLabel("\u8D26\u53F7\uFF1A"); 35 label.setFont(new Font("幼圆", Font.PLAIN, 18)); 36 panel.add(label); 37 38 textField_2 = new JTextField(); 39 panel.add(textField_2); 40 textField_2.setColumns(10); 41 42 JLabel label_1 = new JLabel("\u5BC6\u7801\uFF1A"); 43 label_1.setFont(new Font("幼圆", Font.PLAIN, 18)); 44 panel.add(label_1); 45 46 textField_3 = new JTextField(); 47 panel.add(textField_3); 48 textField_3.setColumns(10); 49 50 51 label_2 = new JLabel(""); 52 panel.add(label_2); 53 54 JPanel panel_1 = new JPanel(); 55 getContentPane().add(panel_1, BorderLayout.SOUTH); 56 57 button = new JButton("\u786E\u5B9A"); 58 panel_1.add(button); 59 button.setFont(new Font("幼圆", Font.PLAIN, 18)); 60 button.addActionListener(this); 61 62 this.setVisible(true); 63 } 64 65 66 public static void main(String[] args) { 67 // TODO 自动生成的方法存根 68 AdminLogin lg=new AdminLogin(); 69 } 70 71 72 @Override 73 public void actionPerformed(ActionEvent arg0) { 74 // TODO 自动生成的方法存根 75 if(arg0.getSource()==button){ 76 String zhanghao=textField_2.getText(); 77 String mima=textField_3.getText(); 78 System.out.println("输入的账号"+zhanghao); 79 System.out.println("输入的密码"+mima); 80 String JDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//SQL数据库引擎 81 String connectDB="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=AdminCardDB";//数据源 82 83 try 84 { 85 Class.forName(JDriver);//加载数据库引擎 86 }catch(ClassNotFoundException e) 87 { 88 //e.printStackTrace(); 89 System.out.println("加载数据库引擎失败"); 90 System.exit(0); 91 } 92 System.out.println("数据库驱动成功"); 93 try 94 { 95 String user="sa"; 96 String password="blbq1314"; 97 Connection con=DriverManager.getConnection(connectDB,user,password);//连接数据库对象 98 System.out.println("连接数据库成功"); 99 Statement stmt=con.createStatement();//创建SQL命令对象 100 System.out.println("开始读取数据"); 101 102 ResultSet rs=stmt.executeQuery("SELECT * FROM Admin where Adminzhanghao="+zhanghao);//返回SQL语句查询结果集(集合) 103 if(rs.next()) 104 { 105 System.out.println("数据库获得的密码:"+rs.getString("Adminmima")); 106 System.out.println("输入的密码:"+textField_3.getText());//密码框 107 if(rs.getString("Adminmima").equalsIgnoreCase(textField_3.getText())){ 108 this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 109 this.setVisible(false); 110 Admin a=new Admin(); 111 } 112 else{ 113 textField_2.setText(""); 114 textField_3.setText(""); 115 label_2.setForeground(Color.red); 116 label_2.setText("密码错误,请重新输入"); 117 System.out.println("密码错误"); 118 } 119 } 120 else{ 121 122 textField_2.setText(""); 123 textField_3.setText(""); 124 label_2.setForeground(Color.red); 125 label_2.setText("账号错误,请重新输入"); 126 System.out.println("账号错误"); 127 } 128 con.close();//关闭数据库连接 129 } 130 catch(SQLException e) 131 { 132 e.printStackTrace(); 133 //System.out.println("数据库连接错误"); 134 System.exit(0); 135 } 136 } 137 } 138 139 }
出了很奇怪的错误
界面输入:
账号密码都是对的。但是按 了确定之后。。。
感觉是比较的语句出了问题。但是想不通什么问题,也不知道该怎么改。。
之前做了学生登录。同样的办法。同样的代码,是通过的。。。但是到管理员登录 就这样了。不知道why...~~~~(>_<)~~~~