I have a program in java to perform insert, update and delete in database . I am using MySQL database and have employee table. When I click on save button I get java.lang.NullPointerException on console. For login user "admin" as username and password. and also compile the program with "javac Employee.java" & run using this: "java MainEMS". below is the code:
------------------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
class EMS extends JFrame
{
EMS()
{
makeGUI();
}
private void makeGUI()
{
setDefaultCloseOperation(EMS.EXIT_ON_CLOSE);
JTabbedPane jt=new JTabbedPane();
jt.addTab("Personal Information",new Employee());
jt.addTab("Salary Information",new Salary());
add(jt);
}
}
class Login extends JFrame implements ActionListener
{
JLabel lblUsername,lblPassword;
JTextField txtUsername;
JPasswordField txtPassword;
JButton btnLogin,btnCancel;
JPanel Login_Panel;
Login()
{
setDefaultCloseOperation(Login.EXIT_ON_CLOSE);
Login_Panel=new JPanel();
GridBagLayout gbag=new GridBagLayout();
GridBagConstraints gcon=new GridBagConstraints();
setLayout(gbag);
Login_Panel.setLayout(gbag);
lblUsername=new JLabel("Username:");
lblPassword=new JLabel("Password:");
txtUsername=new JTextField(15);
txtPassword=new JPasswordField(15);
btnLogin=new JButton("Login");
btnCancel=new JButton("Cancel");
gcon.anchor=GridBagConstraints.FIRST_LINE_START;
gcon.insets=new Insets(4,4,4,4);
gcon.gridx=0;
gbag.setConstraints(lblUsername,gcon);
gcon.gridx=GridBagConstraints.RELATIVE;
gbag.setConstraints(txtUsername,gcon);
gcon.gridx=0;
gbag.setConstraints(lblPassword,gcon);
gcon.gridx=GridBagConstraints.RELATIVE;
gcon.gridy=1;
gbag.setConstraints(txtPassword,gcon);
gcon.gridx=1;
gcon.gridy=2;
gbag.setConstraints(Login_Panel,gcon);
gcon.gridx=1;
gcon.gridy=2;
gbag.setConstraints(btnLogin,gcon);
gcon.gridx=GridBagConstraints.RELATIVE;
gbag.setConstraints(btnCancel,gcon);
add(lblUsername);
add(txtUsername);
add(lblPassword);
add(txtPassword);
add(Login_Panel);
Login_Panel.add(btnLogin);
Login_Panel.add(btnCancel);
btnLogin.addActionListener(this);
btnCancel.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
String user=txtUsername.getText();
String pass=txtPassword.getText();
if(ae.getActionCommand().equals("Login"))
{
if(user.equals(pass))
{
EMS e=new EMS();
e.setTitle("Employee Management System");
e.setSize(1000,1000);
e.setVisible(true);
}
}
}
}
class Employee extends JPanel implements ActionListener, ItemListener
{
JLabel lblempno,lblname,lblgender,lbladdress,lblcontact,lblemail,lblexp,lbldesig,lbldob,lbldoj,lblqua,lbldept;
JButton btnsave,btnupdate,btndelete,btnexit;
JTextField txtempno,txtname,txtcontact,txtemail,txtexp,txtdesig,txtqua,txtdept;
JTextArea txtaddress;
JRadioButton rbmale,rbfemale;
static final String DB_URL="jdbc:mysql://localhost:3306/test";
static final String USER="root";
static final String PASS="root";
Connection conn=null;
Statement stmt=null;
String sql=null;
String gen="";
public Employee()
{
setLayout(null);
prepareGUI();
lblempno.setBounds(30,100,300,30);
lblname.setBounds(30,150,300,30);
lbladdress.setBounds(30,200,300,30);
lblgender.setBounds(30,250,300,30);
lblcontact.setBounds(30,300,300,30);
lblemail.setBounds(30,350,300,30);
lblexp.setBounds(30,400,300,30);
lbldesig.setBounds(30,450,300,30);
lblqua.setBounds(30,500,300,30);
lbldept.setBounds(30,550,300,30);
txtempno.setBounds(200,100,100,30);
txtname.setBounds(200,150,400,30);
txtaddress.setBounds(200,200,400,40);
rbmale.setBounds(200,250,100,30);
rbfemale.setBounds(300,250,100,30);
txtcontact.setBounds(200,300,400,30);
txtemail.setBounds(200,350,400,30);
txtexp.setBounds(200,400,400,30);
txtdept.setBounds(200,450,400,30);
txtqua.setBounds(200,500,400,30);
txtdesig.setBounds(200,550,400,30);
btnsave.setBounds(200,600,80,30);
btnupdate.setBounds(300,600,80,30);
btndelete.setBounds(400,600,80,30);
btnexit.setBounds(500,600,80,30);
add(lblempno);
add(txtempno);
add(lblname);
add(txtname);
add(lbladdress);
add(txtaddress);
add(lblgender);
add(rbmale);
add(rbfemale);
add(lblcontact);
add(txtcontact);
add(lblemail);
add(txtemail);
add(lblqua);
add(txtqua);
add(lbldesig);
add(txtdesig);
add(lblexp);
add(txtexp);
add(lbldept);
add(txtdept);
add(btnsave);
add(btnupdate);
add(btndelete);
add(btnexit);
btnsave.addActionListener(this);
btnupdate.addActionListener(this);
btndelete.addActionListener(this);
btnexit.addActionListener(this);
try
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connection to database");
conn=DriverManager.getConnection(DB_URL,USER,PASS);
System.out.println(conn);
}
catch(SQLException e)
{
System.out.println("SQL Error...!");
}
catch(Exception ex){}
}
private void prepareGUI()
{
lblempno=new JLabel("EMP.NO:");
lblname=new JLabel("Employee Name:");
lblgender=new JLabel("Gender:");
lbladdress=new JLabel("Address:");
lblcontact=new JLabel("Contact:");
lblemail=new JLabel("Email ID:");
lblexp=new JLabel("Experience:");
lbldesig=new JLabel("Designation:");
lbldob=new JLabel("Date Of Birth:");
lbldoj=new JLabel("Date Of Joining:");
lblqua=new JLabel("Qualification:");
lbldept=new JLabel("Department:");
btnsave=new JButton("Save");
btnupdate=new JButton("Update");
btndelete=new JButton("Delete");
btnexit=new JButton("Exit");
txtempno=new JTextField();
txtname=new JTextField();
txtcontact=new JTextField();
txtemail=new JTextField();
txtexp=new JTextField();
txtdesig=new JTextField();
txtqua=new JTextField();
txtdept=new JTextField();
txtaddress=new JTextArea();
rbmale=new JRadioButton("Male");
rbfemale=new JRadioButton("Female");
}
public void itemStateChanged(ItemEvent ie)
{
if(rbmale.isSelected())
{
gen="Male";
}
if(rbfemale.isSelected())
{
gen="Female";
}
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand().equals("Save"))
{
try
{
stmt=conn.createStatement();
sql="insert into employee values('"+txtempno.getText()+"','"+txtname.getText()+"','"+txtaddress.getText()+"','"+gen+"','"+txtcontact.getText()+"','"+txtemail.getText()+"','"+txtqua.getText()+"','"+txtdesig.getText()+"','"+txtdept.getText()+"','"+txtexp.getText()+"')";
System.out.println(sql);
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}
catch(Exception e)
{
System.out.println("error:"+e);
}
}
if(ae.getActionCommand().equals("Exit"))
{
System.exit(0);
}
if(ae.getActionCommand().equals("Delete"))
{
int id=Integer.valueOf(txtempno.getText());
try
{
stmt=conn.createStatement();
sql="delete from Employee where empno='"+id+"'";
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}
catch(Exception ex)
{
System.out.println(ex);
}
}
}
}
class Salary extends JPanel implements ActionListener
{
JLabel lblempno,lblname,lblbsalary,lblhra,lblda,lblpf,lblallow;
JButton btnsave,btnupdate,btndelete,btnexit;
JTextField txtempno,txtname,txtbsalary,txthra,txtda,txtpf,txtallow;
public Salary()
{
setLayout(null);
prepareGUI();
lblempno.setBounds(30,100,300,30);
lblname.setBounds(30,150,300,30);
lblbsalary.setBounds(30,200,300,30);
lblhra.setBounds(30,250,300,30);
lblda.setBounds(30,300,300,30);
lblpf.setBounds(30,350,300,30);
lblallow.setBounds(30,400,300,30);
txtempno.setBounds(200,100,100,30);
txtname.setBounds(200,150,400,30);
txtbsalary.setBounds(200,200,400,30);
txthra.setBounds(200,250,400,30);
txtda.setBounds(200,300,400,30);
txtpf.setBounds(200,350,400,30);
txtallow.setBounds(200,400,400,30);
btnsave.setBounds(200,600,80,30);
btnupdate.setBounds(300,600,80,30);
btndelete.setBounds(400,600,80,30);
btnexit.setBounds(500,600,80,30);
add(lblempno);
add(txtempno);
add(lblname);
add(txtname);
add(lblbsalary);
add(txtbsalary);
add(lblhra);
add(txthra);
add(lblda);
add(txtda);
add(lblpf);
add(txtpf);
add(lblallow);
add(txtallow);
add(btnsave);
add(btnupdate);
add(btndelete);
add(btnexit);
}
private void prepareGUI()
{
lblempno=new JLabel("EMP.NO:");
lblname=new JLabel("Employee Name:");
lblbsalary=new JLabel("Basic Salary:");
lblhra=new JLabel("HRA:");
lblda=new JLabel("DA:");
lblpf=new JLabel("PF:");
lblallow=new JLabel("Allowance:");
btnsave=new JButton("Save");
btnupdate=new JButton("Update");
btndelete=new JButton("Delete");
btnexit=new JButton("Exit");
txtempno=new JTextField();
txtname=new JTextField();
txtbsalary=new JTextField();
txthra=new JTextField();
txtda=new JTextField();
txtpf=new JTextField();
txtallow=new JTextField();
btnsave.addActionListener(this);
btnupdate.addActionListener(this);
btndelete.addActionListener(this);
btnexit.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==btnsave)
{
try
{
}
catch(Exception ex)
{
System.out.println(ex);
}
}
if(ae.getSource()==btnexit)
{
System.exit(0);
}
if(ae.getSource()==btndelete)
{
int id=Integer.valueOf(txtempno.getText());
try
{
}
catch(Exception ex)
{
System.out.println(ex);
}
}
}
}
class MainEMS
{
public static void main(String args[])
{
Login l=new Login();
l.setTitle("Employee Management System");
l.setSize(300,300);
l.setVisible(true);
}
}