我在java编程方面遇到了问题我收到一个错误“列计数与第1行的值计数不匹配”

jq6vz3qz  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(425)

这是密码。我无法通过netbeans将信息插入mysql。源代码是无错误的。然而,点击按钮,我收到一个对话框说
列计数与第1行的值计数不匹配

int z=Integer.parseInt(jTextField1.getText());
String w=jTextField2.getText();
int m=Integer.parseInt(jTextField3.getText());
String k=jTextField4.getText();
String y=jTextField5.getText();
String i=jTextField6.getText();

try
{
    Class.forName("java.sql.Driver");
    Connection c;
    c = DriverManager.getConnection("jdbc:mysql://localhost:3306/dilshahiba","root","hope");
    Statement o=c.createStatement();
    String q;
    q = "Insert into hospital(PNO,Patient_Name,Age,Gender,Department,Doctor) values(z+w+m+k+y+i)";
    o.executeUpdate(q);
    JOptionPane.showMessageDialog(null,"BOOKED");
    o.close();
    c.close();
}
catch(HeadlessException e) {    
    JOptionPane.showMessageDialog(null,e.getMessage());
} 
catch (ClassNotFoundException e) {    
            JOptionPane.showMessageDialog(null,e.getMessage());
} 
 catch (SQLException e) {
    JOptionPane.showMessageDialog(null,e.getMessage());
}

这是我第一次做节目。

olmpazwi

olmpazwi1#

"Insert into hospital(PNO,Patient_Name,Age,Gender,Department,Doctor) values(z+w+m+k+y+i)";

不应在每个变量之间用“+”指定值。值(不是变量)需要用逗号分隔,并且必须正确分隔。
一个更简单的解决方案是使用preparedstatement来简化sql。

String sql = "INSERT INTO hospital (PNA, Patient_Name, Age, Gender, Department, Doctor) VALUES (?, ?, ?, ?, ?, ?)";

PreparedStatement stmt = connection.prepareStatement(sql);

stmt.setString( 1, z );
stmt.setString( 2, w );
stmt.setInt( 3, m );
...
stmt.executeUpdate();

基本思想是每个“?”指定一个参数,然后该参数被您提供的值替换:
然后preparedstatement将确保在替换参数时在sql中使用正确的分隔符。
阅读jcbc教程中关于使用准备好的语句的部分以获取更多信息。

gijlo24d

gijlo24d2#

我不是javaMaven,所以我的建议与sql部分有关
您的错误与into子句中的列数与value子句中的列数不匹配有关
必须使用逗号分隔内容值

Insert into hospital(PNO,Patient_Name,Age,Gender,Department,Doctor) 
    values  ('valuePNO','valuePatient_name','value_gender','value_dep', 'value_doc')

into子句中有6列,那么value子句中需要6个元素。。
使用+你建立了一个价值观
你应该检查你的语言,为建议的值分配适当的值
您还应该看看在java中如何使用binding param来避免在sql代码中使用far(以这种方式避免sqlinjection的风险)

相关问题