com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException错误JAVA

时间:2013-01-09 20:26:15

标签: java mysql database

我收到一个我不完全理解的错误,为什么会出现? 我有一个表单,我在其中输入相关JTextBox的详细信息,这些文本框中的数据应该发送到我在本地设置的数据库。

完整的错误消息

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException. You have an error in your 
SQL syntax; check the manual that corresponds to your MySQL server version for the 
right   syntax to use near ')VALUES'asd','asd',",",",",",",'Home','Female','White  
British' at line 1

代码

conn = (Connection) SQLConnect.ConnectDb();
    //inserting all values to database
    String sql = "INSERT INTO w1283057.criminalrecords "
            + "(FName, MName, Sname, DOB, Address, HPhone, BPhone, MPhone "
            + "ResidentStatus, Sex, Race, IncidentLocation, Zone, PremiseType "
            + "DateRecorded, TimeRecorded, Weapons, CrimeOffences) "
            + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    try{
        //Declaring all variable that wiil be collected from JTextField
        pst = conn.prepareStatement(sql);
        //coverting JText to String
        String fname = FName.getText();
        String mname = MName.getText();
        String surname = Surname.getText();
        String dob = DOB.getText();
        String fullAddress = FullAddress.getText();
        String hPhone = HPhone.getText();
        String bPhone = BPhone.getText();
        String mPhone = MPhone.getText();
        String incidentLocation = IncidentLocation.getText();
        String incidentZone = IncidentZone.getText();
        String incidentPrType = IncidentPrType.getText();
        String incidentDate = IncidentDate.getText();
        String incidentTime = IncidentTime.getText();
        String incidentWeapons = IncidentWeapons.getText();
        String crimeOffences = CrimeOffences.getText();
        String radioText = "";

        //collecting input data and assign them to variables            
            pst.setString(1, fname);
            pst.setString(2, mname);
            pst.setString(3, surname);
            pst.setString(4, dob);
            pst.setString(5, fullAddress);
            pst.setString(6, hPhone);
            pst.setString(7, bPhone);
            pst.setString(8, mPhone);
            //radio buttons Resident Status
            if(RHome.isSelected())
            {
                radioText = RHome.getText();
                pst.setString(9, radioText);
            }
            else if(RForeign.isSelected())
            {
                radioText = RForeign.getText();
                pst.setString(9, radioText);
            }
            //radio buttons Sex
            if(Male.isSelected())
            {
                radioText = Male.getText();
                pst.setString(10, radioText);

            }
            else if(Female.isSelected())
            {
                radioText = Female.getText();
                pst.setString(10, radioText);
            }
            //radio button Race
            if(WhiteBritish.isSelected())
            {
                radioText = WhiteBritish.getText();
                pst.setString(11, radioText);

            }
            else if(WhiteOther.isSelected())
            {
                radioText = WhiteOther.getText();
                pst.setString(11, radioText);
            }
            else if(Black.isSelected())
            {
                radioText = Black.getText();
                pst.setString(11, radioText);
            }
            else if(Asian.isSelected())
            {
                radioText = Asian.getText();
                pst.setString(11, radioText);
            }
            else if(Indian.isSelected())
            {
                radioText = Indian.getText();
                pst.setString(11, radioText);
            }
            /////////////////////////////////////
            pst.setString(12, incidentLocation);
            pst.setString(13, incidentZone);
            pst.setString(14, incidentPrType);
            pst.setString(15, incidentDate);
            pst.setString(16, incidentTime);
            pst.setString(17, incidentWeapons);
            pst.setString(18, crimeOffences);
            pst.executeUpdate();
            System.out.println("records added sucessfully");

    }
    catch (SQLException a)
        {
            JOptionPane.showMessageDialog(null, a);
        }

enter image description here

2 个答案:

答案 0 :(得分:5)

您的值列表末尾有一个逗号,删除它,或用适当的值填充它。

+ "DateRecorded, TimeRecorded, Weapons, CrimeOffences,) " <---
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,)"; <----

答案 1 :(得分:4)

您的代码

 String sql = "INSERT INTO w1283057.criminalrecords "
        + "(FName, MName, Sname, DOB, Address, HPhone, BPhone, MPhone "
        + "ResidentStatus, Sex, Race, IncidentLocation, Zone, PremiseType "
        + "DateRecorded, TimeRecorded, Weapons, CrimeOffences) "
        + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

试试这个......字段(MPhone,PremiseType)之后缺少逗号

 String sql = "INSERT INTO w1283057.criminalrecords "
        + "(FName, MName, Sname, DOB, Address, HPhone, BPhone, MPhone, "
        + "ResidentStatus, Sex, Race, IncidentLocation, Zone, PremiseType, "
        + "DateRecorded, TimeRecorded, Weapons, CrimeOffences) "
        + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

问候。