Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java将Jtable中选中的复选框项保存到mysql?_Java_Mysql_Jdbc_Netbeans - Fatal编程技术网

如何使用java将Jtable中选中的复选框项保存到mysql?

如何使用java将Jtable中选中的复选框项保存到mysql?,java,mysql,jdbc,netbeans,Java,Mysql,Jdbc,Netbeans,在我的项目中,我想安排课程,这是我的GUI。 有人能告诉我,如何将检查的值保存到mysql数据库中 这是我的保存按钮代码: private void saveActionPerformed(java.awt.event.ActionEvent evt) { try{ String sql="insert into batch (course_code,batch_number,time,"+ ti

在我的项目中,我想安排课程,这是我的GUI。

有人能告诉我,如何将检查的值保存到mysql数据库中

这是我的保存按钮代码:

 private void saveActionPerformed(java.awt.event.ActionEvent evt) {                                     
    try{
       String sql="insert into batch (course_code,batch_number,time,"+ time_table.getColumnName(time_table.getSelectedColumn()).toLowerCase()+")values(?,?,?,?)";

        pst=conn.prepareStatement(sql);

        String value1=course_code.getSelectedItem().toString();
        pst.setString(1,value1);

        String value2=course_code.getSelectedItem().toString();
        pst.setString(2, value2+"-"+year.getText()+"-"+group_no.getText());

        String value3=time_chooser.getSelectedItem().toString();
        pst.setString(3, value3);

       //String value4 = time_table.getModel().getValueAt(time_table.getSelectedRow(), 0).toString();
     //  pst.setString(4, value4);

    int a=time_table.getSelectedRow();
    int b=time_table.getSelectedColumn();
    String c=time_table.getModel().getValueAt(a, 0).toString();


            for(int i = 1 ; i < a ; i++)
                {
               for(int j = 1 ; j < b ; j++)
                    {
                  Boolean val1 = (Boolean)time_table.getModel().getValueAt(a, b);
                  if(Boolean.TRUE.equals(val1)) {
                   pst.setString(4, c );
                        }
                    }
                }

    pst.execute();
        JOptionPane.showMessageDialog(null, "Successfully Inserted");
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null, e); 
    }
} 
private void saveActionPerformed(java.awt.event.ActionEvent evt){
试一试{
String sql=“插入批处理(课程代码、批处理编号、时间,“+time\u表.getColumnName(time\u表.getSelectedColumn()).toLowerCase()+”)值(?,,,?)”;
pst=conn.prepareStatement(sql);
字符串值1=course_code.getSelectedItem().toString();
pst.设置管柱(1,值1);
字符串值2=课程\代码.getSelectedItem().toString();
pst.setString(2,value2+“-”+year.getText()+“-”+组号getText());
字符串值3=time\u chooser.getSelectedItem().toString();
pst.设置管柱(3,值3);
//字符串值4=time_table.getModel().getValueAt(time_table.getSelectedRow(),0.toString();
//pst.设置管柱(4,值4);
int a=时间表。getSelectedRow();
int b=时间表。getSelectedColumn();
字符串c=time_table.getModel().getValueAt(a,0).toString();
for(int i=1;i
我想要这样的东西。
此错误弹出窗口

像字符串一样将其保存在数据库中的字符串变量中?不太确定这是否可能。希望能有所帮助。

像字符串一样将其保存在数据库中的字符串变量中?不太确定这是否可能。希望能有所帮助。

我希望这就是您想要的(只要数据库中的列与表中的列具有相同的名称,它就可以工作):

一点解释:

time.getColumnName(time.getSelectedColumn()).toLowerCase()
应以小写形式返回您选择的日期。它与数据库中列的名称相同(“星期一”、“星期三”)。现在您可以将时间插入表中。要做到这一点,您必须获取所选行,并使用它可以从选中行的第一个单元格(即时间)中获取单元格值。最后,您可以将其插入数据库

编辑:

请参阅注释(我无法测试代码。如果代码中有任何错误,请让我知道):

private void saveActionPerformed(java.awt.event.ActionEvent evt){
试一试{
对于(int i=0;i
我希望这就是您想要的(只要数据库中的列与表中的列具有相同的名称,它就可以工作):

一点解释:

time.getColumnName(time.getSelectedColumn()).toLowerCase()
应以小写形式返回您选择的日期。它与数据库中列的名称相同(“星期一”、“星期三”)。现在,您可以将时间插入表中。为此,您必须获取所选行,并使用该行从选中行的第一个单元格(即时间)中获取单元格值。最后,您可以将其插入数据库

编辑:

请参阅注释(我无法测试代码。如果代码中有任何错误,请让我知道):

private void saveActionPerformed(java.awt.event.ActionEvent evt){
试一试{
对于(int i=0;i private void saveActionPerformed(java.awt.event.ActionEvent evt) {
        try{
            for(int i = 0 ; i < time_table.getModel().getRowCount() ; i++)
            {
                for(int j = 1 ; j < time_table.getModel().getColumnCount() ; j++)
                {
                    String sql="insert into batch (course_code,batch_number,time,"+ time_table.getColumnName(j).toLowerCase()+")values(?,?,?,?)";

                    pst=conn.prepareStatement(sql);

                    String value1=course_code.getSelectedItem().toString();
                    pst.setString(1,value1);

                    String value2=course_code.getSelectedItem().toString();
                    pst.setString(2, value2+"-"+year.getText()+"-"+group_no.getText());

                    String value3=time_chooser.getSelectedItem().toString();
                    pst.setString(3, value3);

                    String c=time_table.getModel().getValueAt(i, 0).toString();
                    Boolean val1 = (Boolean)time_table.getModel().getValueAt(i, j);
                    System.out.println(val1 + "\t");
                    if(Boolean.TRUE.equals(val1)) {
                        pst.setString(4, c );
                        pst.executeUpdate();
                        pst.close();
                        JOptionPane.showMessageDialog(null, "Successfully Inserted");
                    }
                    System.out.println();
                }
                catch(Exception e){
                    JOptionPane.showMessageDialog(null, e);
                }
            }
        }