首页 新闻 搜索 专区 学院

关于java连接数据库的问题,代码感觉没错。但是结果出错了,一直想不通,请大神帮帮忙

0
悬赏园豆:10 [已解决问题] 解决于 2015-06-09 14:53
  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 }
View Code

出了很奇怪的错误

界面输入:

 

账号密码都是对的。但是按 了确定之后。。。

感觉是比较的语句出了问题。但是想不通什么问题,也不知道该怎么改。。

问题补充:

之前做了学生登录。同样的办法。同样的代码,是通过的。。。但是到管理员登录 就这样了。不知道why...~~~~(>_<)~~~~

50林欢雯的主页 50林欢雯 | 初学一级 | 园豆:193
提问于:2015-06-07 20:59
< >
分享
最佳答案
0

断点调试 ,还有你应该把数据库创建连接专门做个工具类    不能这样写的。

收获园豆:7
kolnick | 初学一级 |园豆:12 | 2015-06-09 13:58

恩恩,我写到后面才觉得要写成一个类。。第一次连数据库,还没做到很好。感谢~

50林欢雯 | 园豆:193 (初学一级) | 2015-06-09 14:53
其他回答(1)
0

打debug跟踪一下。

收获园豆:3
Beyond-bit | 园豆:2804 (老鸟四级) | 2015-06-07 23:30

好的。已经解决了、。、是数据库空格问题

支持(0) 反对(0) 50林欢雯 | 园豆:193 (初学一级) | 2015-06-09 14:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册