初学者,最近在学着用窗体做一个个人记账本。其中我已经写好了load部分和register部分,连上数据库也都可以实现。然后在编写Accountbook这个类的时候我要知道我现在是哪个用户在登录并查询这个用户的记录。但是这个用户变量在load类中。怎么调用?
以下为部分源码:
load类:
import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Login extends JFrame implements ActionListener {
Connection conn;
Statement stat;
PreparedStatement ps;
ResultSet rs;
JButton load,reg;
JLabel userJLabel,passJLabel;
JPanel userJPanel, passJPanel,loadJPanel;
JTextField userJtf;
JPasswordField passJtf;
String user,pwd;
public static void main(String[] args) {
Login login = new Login();
}
public Login(){
super("登录");
this.setSize(400,300);
this.setLocation(300,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new GridLayout(4, 0));
userJLabel = new JLabel("用户名:");
userJtf = new JTextField(10);
userJPanel = new JPanel();
userJPanel.add(userJLabel);
userJPanel.add(userJtf);
this.getContentPane().add(userJPanel);
passJLabel = new JLabel("密 码:");
passJtf = new JPasswordField(10);
passJPanel = new JPanel();
passJPanel.add(passJLabel);
passJPanel.add(passJtf);
this.getContentPane().add(passJPanel);
loadJPanel = new JPanel();
load = new JButton("登录");
load.addActionListener(this);
loadJPanel.add(load);
reg = new JButton("注册");
reg.addActionListener(this);
loadJPanel.add(reg);
this.getContentPane().add(loadJPanel);
this.setVisible(true);
this.connection();
}
public void connection(){
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/db_user";
conn = DriverManager.getConnection(url,"root","root");
stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
} catch (Exception e) {
JOptionPane.showMessageDialog(this,"连接数据库错误!","错误对话框",JOptionPane.ERROR_MESSAGE);
}
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == load){
try {
ps=conn.prepareStatement("select * from tb_user where user=? and pwd=? ");
ps.setString(1, userJtf.getText());
ps.setString(2, new String(passJtf.getPassword()));
rs = ps.executeQuery();
if(rs.next())
{
user = rs.getString(1);
pwd = rs.getString(2);
JOptionPane.showMessageDialog(null, "登录成功!!!", "提示消息", JOptionPane.WARNING_MESSAGE);
System.out.println("成功获取到密码和用户名from数据库");
System.out.println(user + "\t" + pwd + "\t");
}else
{
JOptionPane.showMessageDialog(null, "用户名或者密码错误,请重新输入!", "提示消息", JOptionPane.ERROR_MESSAGE);
}
} catch (Exception ex) {}
}
if(e.getSource() == reg){
Register register = new Register();
}
}
}
Accountbook类中:
rs=stat.executeQuery("select * from tb_accountbook where user = '"+user+"'");
这个user怎么获取