2012-12-07 55 views
0

我试图保存或删除此表到数据库的信息类型。当我运行这个代码时,我只是不断收到错误信息,而且我不能为我的生活弄清楚我做错了什么。该框架打开,并且当您按照您想要更改的代码所指定的代码指定ID时,它仍然不会更改。添加编辑和删除信息从jtable到数据库

import java.io.*; 
import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
import java.sql.*; 
import java.util.*; 

class Changeadd { 
JFrame f; 
JPanel p1, p2, p3; 
JTabbedPane tp; 
ImageIcon btnimg1, btnimg2; 
JLabel l1, l2, l3, l4, l5, l6, l7, l8, l9, l10; 
JTextField tf1, tf2, tf3, tf4, tf5, tf6, tf7, tf8, tf9, tf10; 
JScrollPane sp1; 
JButton savebtn, resetbtn, editbtn1, editbtn2, deletebtn; 

Changeadd() { 
    f = new JFrame("Form"); 
    p1 = new JPanel(new GridLayout(5, 2)); 
    p2 = new JPanel(new GridLayout(5, 2)); 
    p3 = new JPanel(new GridLayout(2, 2)); 
    tp = new JTabbedPane(); 
    l1 = new JLabel("MenuID"); 
    l2 = new JLabel("Name"); 
    l3 = new JLabel("Info"); 
    l4 = new JLabel("Price"); 
    l5 = new JLabel("Enter Menu ID to delete"); 

    l7 = new JLabel("MenuID"); 
    l8 = new JLabel("Name"); 
    l9 = new JLabel("Info"); 
    l10 = new JLabel("Price"); 
    tf1 = new JTextField(12); 
    tf2 = new JTextField(12); 
    tf3 = new JTextField(12); 
    tf4 = new JTextField(12); 
    tf5 = new JTextField(12); 
    tf6 = new JTextField(12); 
    tf7 = new JTextField(12); 
    tf8 = new JTextField(12); 
    tf9 = new JTextField(12); 
    tf10 = new JTextField(12); 
    savebtn = new JButton(" Add "); 
    resetbtn = new JButton(" Reset"); 
    editbtn1 = new JButton(" Edit "); 
    editbtn2 = new JButton(" Save"); 
    deletebtn = new JButton("Delete"); 
    p1.add(l1); 
    p1.add(tf1); 
    p1.add(l2); 
    p1.add(tf2); 
    p1.add(l3); 
    p1.add(tf3); 
    p1.add(l4); 
    p1.add(tf4); 
    p1.add(savebtn); 
    p1.add(resetbtn); 

    p2.add(l7); 
    p2.add(tf7); 
    p2.add(l8); 
    p2.add(tf8); 
    p2.add(l9); 
    p2.add(tf9); 
    p2.add(l10); 
    p2.add(tf10); 
    p2.add(editbtn1); 
    p2.add(editbtn2); 

    p3.add(l5); 
    p3.add(tf5); 
    p3.add(deletebtn); 
    resetbtn.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 
      tf1.setText(""); 
      tf2.setText(""); 
      tf3.setText(""); 
      tf4.setText(""); 
     } 
    }); 
    savebtn.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 
      String value1 = tf1.getText(); 
      String value2 = tf2.getText(); 
      String value3 = tf3.getText(); 
      String value4 = tf4.getText(); 
      Connection con = null; 
      String url = "jdbc:mysql://localhost:3306/mydb"; 
      String db = "myDB"; 
      String driver = "com.mysql.jdbc.Driver"; 
      String user = "root"; 
      String pass = "root"; 
      System.out.println(value1 + value2 + value3 + value4); 
      try { 
       Class.forName(driver); 
       con = DriverManager.getConnection(url + db, user, pass); 
       PreparedStatement st = con 
         .prepareStatement("INSERT INTO menu(menu.menuID,menu.name,menu.info,menu.price) values(?,?,?,?)"); 
       st.setString(1, value1); 
       st.setString(2, value2); 
       st.setString(3, value3); 
       st.setString(4, value4); 
       st.executeUpdate(); 
       JOptionPane.showMessageDialog(p1, 
         "Data is successfully inserted into database."); 
       con.close(); 
      } catch (Exception e) { 
       JOptionPane.showMessageDialog(p1, 
         "Error in submitting data!"); 
      } 
     } 
    }); 

    deletebtn.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 

      String value1 = tf5.getText(); 
      Connection con = null; 
      String url = "jdbc:mysql://localhost:3306/mydb"; 
      String db = "myDB"; 
      String driver = "com.mysql.jdbc.Driver"; 
      String user = "root"; 
      String pass = "root"; 
      try { 
       Class.forName(driver); 
       con = DriverManager.getConnection(url + db, user, pass); 
       PreparedStatement st = con 
         .prepareStatement("DELETE FROM menu WHERE menu.menuID = ?"); 
       st.setString(1, value1); 
       st.executeUpdate(); 
       JOptionPane.showMessageDialog(p3, 
         "Record is deleted successfully."); 
       con.close(); 
      } catch (Exception exp3) { 
       JOptionPane.showMessageDialog(p3, 
         "Error in deleting record."); 
      } 
     } 
    }); 
    editbtn1.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 

      String value = tf7.getText(); 
      Connection con = null; 
      String url = "jdbc:mysql://localhost:3306/mydb"; 
      String db = "myDB"; 
      String driver = "com.mysql.jdbc.Driver"; 
      String user = "root"; 
      String pass = "root"; 
      try { 
       Class.forName(driver); 
       con = DriverManager.getConnection(url + db, user, pass); 
       PreparedStatement st = con 
         .prepareStatement("SELECT FROM menu WHERE menu.menuID=?"); 
       st.setString(1, value); 
       ResultSet res = st.executeQuery(); 
       res.next(); 
       tf7.setText(Integer.toString(res.getInt(1))); 
       tf8.setText(res.getString(2)); 
       tf9.setText(res.getString(3)); 
       tf10.setText(Integer.toString(res.getInt(4))); 
       con.close(); 
      } catch (Exception e) { 
       JOptionPane.showMessageDialog(p2, "Can not edit data"); 
      } 
     } 
    }); 
    editbtn2.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 
      Connection con = null; 
      String url = "jdbc:mysql://localhost:3306/mydb"; 
      String db = "myDB"; 
      String driver = "com.mysql.jdbc.Driver"; 
      String user = "root"; 
      String pass = "root"; 
      try { 
       int x = JOptionPane.showConfirmDialog(p2, 
         "Confirm edit? All data will be replaced"); 
       if (x == 0) { 
        try { 
         String value1 = tf7.getText(); 
         String value2 = tf8.getText(); 
         String value3 = tf9.getText(); 
         String value4 = tf10.getText(); 

         Class.forName(driver); 
         con = DriverManager.getConnection(url + db, user, 
           pass); 
         ; 
         Statement st = con.createStatement(); 
         st.executeUpdate("UPDATE menu set menu.name'" 
           + value2 + "', menu.info'" + value3 
           + "', menu.price'" + value4 
           + "' where menu.menuID='" + value1 + "'"); 
         JOptionPane.showMessageDialog(p2, 
           "Updated successfully"); 
         con.close(); 
        } catch (Exception ex) { 
         JOptionPane.showMessageDialog(p2, 
           "Error in updating edit fields"); 
        } 
       } 
      } catch (Exception ex) { 
       JOptionPane.showMessageDialog(p2, "Error"); 
      } 
     } 
    }); 
} 

void dis() { 
    f.getContentPane().add(tp); 
    tp.addTab("Add Record", p1); 
    tp.addTab("Edit Record", p2); 
    tp.addTab("Delete Record", p3); 

    f.setSize(350, 180); 
    f.setVisible(true); 
    f.setResizable(true); 
} 

public static void main(String z[]) { 
    Changeadd pro = new Changeadd(); 
    pro.dis(); 
} 

}

+0

你得到了什么错误? –

回答

2

我觉得您的网址是错误的

String url = "jdbc:mysql://localhost:3306/mydb"; 

已经包含MYDB附加

con = DriverManager.getConnection(url + db, user, pass); 

将通过

"jdbc:mysql://localhost:3306/mydbmyDB" 

你必须把mysql-connector-java-5.1.18-bin.jar文件的文件夹内:

YOUR_WEBAPPS_FOLDER/YOUR_WEBAPP/WEB-INF/lib/ 

,使其将在classpath中,当你的servlet是由Web容器编译。

+0

哇我真不敢相信我那样做了......开始一个新项目,忘了添加我的bin文件......谢谢。我整个星期都必须全天做这个工作。 – Cameronaut

+0

永远欢迎:) –