Question

I want to store a record but don't know what to do. When i start entering the details of a customer, at that time database connectivity is successfully created but I fail to store the data in the database.

The procedure is correct to create the database but I can't enter the details, what can I do?

Here is the code:

  import java.awt.Container;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import java.sql.*;
  import javax.swing.*;
  //package p1;
  public abstract class New_Customer extends JFrame implements ActionListener
  {
   JTextField textFieldId;
   JTextField textFieldName;
   JTextField textFieldContactNo;
   JLabel l1;
   JLabel l2;
   JLabel l3;
   JLabel l4;
   JLabel l5;
JLabel l6;
    JComboBox combo;
    String course[] = {"Navakal","SandhyaKal","Pudhari","MidDay","Inqlab","BusinessLine","Mumbai Samachar","GujrajSamachar","KarnatakMalla","Vartahar","PunyaNagari"};
JButton b1;
JButton b2;
Container c = getContentPane();
New_Customer()
{
    super("Shree DattaDigambar Samarth");
    setBounds(140,250,777,555);
    c.setLayout(null);
    textFieldId = new JTextField();
    textFieldName = new JTextField();
    textFieldContactNo = new JTextField();
    l1 = new JLabel("New Customer Entry");
    l2 = new JLabel("Building No");
    l3 = new JLabel("Customer Name");
    l4 = new JLabel("Contact No");
    l5 = new JLabel("Paper");
            combo = new JComboBox(course);
    l1.setBounds(10,10,340,20);
    l2.setBounds(10,20,140,70);
    l3.setBounds(110,20,140,70);
    l4.setBounds(300,50,140,20);
    l5.setBounds(400,50,140,20);        
    textFieldId.setBounds(10,70,70,20);
    textFieldName.setBounds(110,70,180,20);
    textFieldContactNo.setBounds(300,70,90,20);
            combo.setBounds(400,70,130,20);   
    b1 = new JButton("Add paper");
            b2 = new JButton("Ok");
    b1.setBounds(10,100,100,20);
    b2.setBounds(10,160,50,20);      
            c.add(combo); 
    c.add(b1);
    c.add(b2);
    c.add(l1);
    c.add(l2);
    c.add(l3);
    c.add(l4);
    c.add(l5);
    c.add(textFieldId);
    c.add(textFieldName);
    c.add(textFieldContactNo);
            setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
            b1.addActionListener(this);
            b2.addActionListener(this);
}
    public static void main(String[] args) 
    {
        New_Customer nc=new New_Customer() {};
    }
     public void actionPerformed(ActionEvent e)
        {

            System.out.println("You clicked the button");
            if(e.getSource()==b1)
            {

            }
            if(e.getSource()==b2)
            {
                try 
                {
                    Connection con;
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    con = DriverManager.getConnection("jdbc:odbc:devendra");
                    try 
                    {

                        java.sql.Statement st = con.createStatement();
                        PreparedStatement ps = con.prepareStatement(null);
                        ResultSet rs = ps.executeQuery("insert into Customer values(?,?,?,?)");
                        while(rs.next())
                        {
                        ps.setString(1,textFieldId.getText());
                        ps.setString(2,textFieldName.getText());
                        ps.setString(3,textFieldContactNo.getText());
                        ps.setString(4,combo.getName());
                        }

                    } 
                    catch (SQLException s) 
                    {
                        System.out.println("SQL code does not execute.");
                    }
                } 
                catch (ClassNotFoundException | SQLException ee) 
                {
                    System.out.println("Error:connection not created");
                }
            }
        }
}
Was it helpful?

Solution

First of all to insert values in database, you should use executeUpdate() method. And this method does not return any ResultSet.

So Change your code

PreparedStatement ps = con.prepareStatement("insert into Customer values(?,?,?,?)");

    ps.setString(1,textFieldId.getText());
    ps.setString(2,textFieldName.getText());
    ps.setString(3,textFieldContactNo.getText());
    ps.setString(4,combo.getName());

ps.executeUpdate();
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top