0

我想存储一个记录,但不知道该怎么做。当我开始输入客户的详细信息时,当时数据库连接已成功创建,但我无法将数据存储在数据库中。

创建数据库的过程是正确的,但我无法输入详细信息,我该怎么办?

这是代码:

  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");
                }
            }
        }
}
4

1 回答 1

0

首先要在数据库中插入值,您应该使用executeUpdate() method. 并且此方法不返回任何ResultSet.

所以改变你的代码

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();
于 2013-06-19T06:53:39.750 回答