这是登录界面连接数据库进行不同用户的登录。我也已经在数据库里设置了denglu表和denglu2的账号密码。但是他提醒我数据库可以连接成功,两个false。denglu表的账号密码都为123,denglu2的账号和密码都为1.
```要被折磨死了。如果可以的话请回答我全部的代码。
package denglu;
import java.awt.Font;
import java.awt.Rectangle;
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.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Load_GUI extends JFrame implements ActionListener {
static Load_GUI lg = null; //放在Main函数中,用于加载窗体信息。";
/* Lable控件 */
JLabel l1 = new JLabel("XxxXX管理系统");
JLabel l2 = new JLabel("用户名:");
JLabel l3 = new JLabel("密码:");
/* 控制Label中的字体风格 */
Font f = new Font("楷体", Font.BOLD, 20);
Font f2 = new Font("楷体", Font.BOLD, 15);
/* 下拉单 */
JComboBox jc1 = new JComboBox();
/* 按钮 */
JButton bt1 = new JButton("登录");
JButton bt2 = new JButton("取消");
/* 文本框 */
JTextArea textarea;
JTextField t1 = new JTextField(); //textField控件可以获取获取文本内容//
JPasswordField t2 = new JPasswordField(); //密码输入框的专用控件
private int defaultCloseOperation = HIDE_ON_CLOSE;
{
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (Exception e) {
System.out.println(e);
}
}
public Load_GUI() {
l1.setFont(f); //字体风格Font参数和Label控件 名称为l1的对象 绑定。
l2.setFont(f2);
l3.setFont(f2);
l1.setBounds(new Rectangle(100, 20, 220, 40));
l2.setBounds(new Rectangle(40, 60, 200, 40));
l3.setBounds(new Rectangle(40, 90, 200, 40));
bt1.setBounds(new Rectangle(40, 180, 120, 25));
bt2.setBounds(new Rectangle(220, 180, 120, 25));
t1.setBounds(new Rectangle(100, 70, 180, 26));
t2.setBounds(new Rectangle(100, 100, 180, 26));
jc1.setBounds(new Rectangle(120, 130, 100, 26));
/* 给对象名为jc1的Combobox控件,添加内容。 */
jc1.addItem("管理员");
jc1.addItem("员工");
{
bt2.addActionListener(new ActionListener() {//该事件监听用于 监听按钮"取消"事件。
@Override
public void actionPerformed(ActionEvent e) {//如果用户按下”取消“按钮,程序退出。
System.exit(0);
}
});
bt1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String name = t1.getText(); // 获取文本框内的用户名
String password = t2.getText(); // 获取文本框内的密码
if (0 == name.length()) {
JOptionPane.showMessageDialog(null, "账号不能为空");
t1.grabFocus();
return;
}
if (0 == password.length()) {
JOptionPane.showMessageDialog(null, "密码不可为空!");
t2.grabFocus();
return;
}
if (jc1.getSelectedItem().toString().equals("管理员")) {
if (check(name, password)) {
JOptionPane.showMessageDialog(null, "登陆成功");
// new user1();
} else
JOptionPane.showMessageDialog(null, "密码错误");
}
/* 采购员的检查 */
if (jc1.getSelectedItem().toString().equals("员工")) {
if (check(name, password)) {
JOptionPane.showMessageDialog(null, "登陆成功");
// new user3();
} else
JOptionPane.showMessageDialog(null, "密码错误");
}
}
});
this.setTitle("登录"); //设置窗体标题名称
this.setLayout(null); // 窗体布局设置为自定义,这行代码不可更换到其他位置//
this.setSize(400, 300);
this.add(bt2);
this.add(bt1);
this.add(l1);
this.add(l2);
this.add(l3);
this.add(t1);
this.add(t2);
this.add(jc1);
this.setBounds(800, 300, 400, 300); //设置窗体规格
this.setDefaultCloseOperation(1);
this.setVisible(true); //窗体可以看见,如果是false,那么运行程序后窗体看不见,。
this.setResizable(false); //setResizable用于控制窗体大小可拉伸与否。false表示,窗体大小定死了。
}
}
public static void main(String args[]) {
lg = new Load_GUI();
}
@Override
public void actionPerformed(ActionEvent e) {
}
public boolean check(String name, String password) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
boolean result = false;
try {
String url = "jdbc:sqlserver://localhost;DatabaseName=yaoDB";
String username = "sa";
String passwords = "123456wql";
Connection c = DriverManager.getConnection(url, username, passwords);
if (c != null) {
System.out.println("数据库连接成功!");
} else {
System.out.println("数据库连接失败!");
}
Statement s = c.createStatement();
if (jc1.getSelectedItem().toString().equals("管理员")) {
String sql = "select * from denglu_purchase " + "where zhanghao = '" + name
+ "' and mima = '" + password + "'";
ResultSet rs = s.executeQuery(sql);
while (rs.next()) {
if (rs.getString("zhanghao").equals(name) && rs.getString("mima").equals(password)) {
result = true;
} else {
System.out.println(rs.getString("zhanghao").equals(name));
System.out.println(rs.getString("mima").equals(password));
return false;
}
}
} else {
if (jc1.getSelectedItem().toString().equals("员工")) {
String sql = "select * from denglu2 " + "where zhanghao = '" + name
+ "' and mima = '" + password + "'";
ResultSet rs = s.executeQuery(sql);
while (rs.next()) {
if (rs.getString("zhanghao").equals(name)
&& rs.getString("mima").equals(password)) {
result = true; // 如果用户名和密码都正确,那么就将result返回为true;
} else
return false;
}
}
}
} catch (SQLException e2) {
e2.printStackTrace();
}
return result;
}