У меня ошибка «несовместимый тип» с PreparedStatement

#java

#java

Вопрос:

 import java.sql.*;
import java.io.*;
public class preparedstatementdemo
    {
    public static void main(String arg[]) throws Exception
        {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con=DriverManager.getConnection("jdbc:odbc:yoksource","","");
        String Sqlcmd="insert into yokrecord values(?,?,?)";
    **    PreparedStatement ps=con.prepareStatement(Sqlcmd);
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter a name");
        ps.setString(1,br.readLine());
        System.out.println("Enter age");
        ps.setInt(2,Integer.parseInt(br.readLine()));
        System.out.println("enter address");
        ps.setString(3,br.readLine());
        ps.executeUpdate();
        System.out.println("inserted");
        }
    }
  

** ошибка: несовместимый тип

Комментарии:

1. Уточните свой вопрос в теле вопроса.

2. Пожалуйста, оцените, где возникает ошибка, и сообщите нам более подробную информацию 🙂

3. В какой строке вы получаете ошибку? трассировка ошибки в стеке?

4. Было бы полезно предоставить как входные данные, так и определение таблицы.

5. Я думаю, это понятно. Значения, которые вы устанавливаете, не ожидаются при вводе. Например, если ожидается, что 1-й параметр является int, вы отправляете строку.

Ответ №1:

Я полагаю, что проблема связана с фактической INSERT командой, которую вы используете — синтаксис должен быть:

 INSERT INTO yokrecord (fieldname1,fieldname2,fieldname3) values(?,?,?);
  

Комментарии:

1. Я пытаюсь то, что вы говорите, но все еще получаю то же исключение ошибки в потоке «main» java.lang.RuntimeException: Некомпилируемый исходный код — требуются несовместимые типы: найдено подготовленное утверждение: java.sql.PreparedStatement в preparedstatementdemo.main (preparedstatementdemo.java: 10) Результат Java: 1 УСПЕШНАЯ СБОРКА (общее время: 7 секунд)

2. указывает ли ваш источник данных базу данных, в которой у вас есть таблица с именем yokrecord?