Ошибка преобразования данных при преобразовании varchar с использованием базы данных h2 и eclipse - PullRequest
0 голосов
/ 27 мая 2020

Я подключил eclipse к базе данных h2 и уже создал таблицу и вставил некоторые данные. Это мои классы:

CreateTable. java:

PreparedStatement ps = con.prepareStatement("CREATE TABLE IF NOT EXISTS REGISTRATION "
            + "(id INTEGER auto_increment, "
            + " first VARCHAR(255), "
            + " last VARCHAR(255), "
            + " age INTEGER, "
            + " PRIMARY KEY ( id )) ");

    ps.executeUpdate();
    System.out.println("Table Created");

Когда я выполняю это, на консоли выводится «таблица создана».

это вставка. java класс:

Connection con = DriverManager.getConnection("jdbc:h2:file:C:/h2/test", "sami", "");
PreparedStatement ps = con.prepareStatement("insert into REGISTRATION(first,last,age) values ('python', 'java', 24),"
            + "('jQuery', 'Angularjs', 10)");

    int i = ps.executeUpdate();
    System.out.println(i + " Record(s) inserted");

Когда я запускаю это, он печатает 2 вставленные записи.

Это мой дисплей. java класс:

Connection con = DriverManager.getConnection("jdbc:h2:file:C:/h2/test", "sami", "");
PreparedStatement ps = con.prepareStatement("select * from REGISTRATION");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
    System.out.println(rs.getInt(1) + " " + rs.getInt(2) + " " + rs.getInt(3) + " " + rs.getInt(4));
}

И когда я запускаю это, он говорит: «Ошибка преобразования данных при преобразовании» python «[22018-200]»

Я уже изменил свой код на «подготовленный оператор», но это не решает проблему.

Может ли кто-нибудь мне помочь?

Большое спасибо

1 Ответ

1 голос
/ 27 мая 2020

Вы не можете прочитать столбец VARCHAR с ResultSet.getInt(), используйте ResultSet.getString() вместо столбцов 2 и 3.

...