为什么我无法将用户输入添加到数据库中,前端为java,后端为mysql?

时间:2016-03-03 16:36:46

标签: java mysql database

为部门创建表查询: 创建表部门 ( department_id tinyint(2)zerofill not null auto_increment, department_name varchar(30)唯一键, department_description文本, 主键(department_id) );

java代码:     包hrmps;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.*;

class AddDepartment extends JPanel
{
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{                                         
String deptName=jTextField1.getText();
String deptDescription=jTextField2.getText();

Connection con=null;
PreparedStatement statement=null;
ResultSet rs=null;

String query="Insert into department values (?,?)";


             try
             {
                  Class.forName("com.mysql.jdbc.Driver");
                con=DriverManager.getConnection("jdbc:mysql:///hrmps?               zeroDateTimeBehavior=convertToNull","root","root");
                statement=con.prepareStatement(query);
                statement.setString(1,deptName);
                statement.setString(2,deptDescription);
                statement.execute();

                int i=statement.executeUpdate();

                if(i>0)

                     JOptionPane.showMessageDialog(null, "Record added");


                else

                        JOptionPane.showMessageDialog(null, "Record couldn't     be added");


                con.close();
          }

        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
        }


}         //end of method                               

} //班级的结尾

1 个答案:

答案 0 :(得分:0)

String deptName=jTextField1.getText();
String deptDescription=jTextField2.getText();

这两个陈述不属于任何方法。所以它们是在构造对象时执行的,远在用户有机会在文本字段中输入任何内容之前。

制作jButton1ActionPerformed方法的局部变量。只有在单击按钮时,您才必须阅读文本字段包含的内容。

BTW,发布的代码中的所有字段都应该是局部变量。当参数为null或为空时,您的方法isNullOrEmpty将返回false。这非常令人困惑。