2, он выводит 1 2 3 4 3 5
, вместо 1 2 3 4 5
, что я не уверен, почему успех после успеха, но не распечатывает данные из таблицы SQL
Statement st = null;
ResultSet rs = null;
try {
System.out.println("1");
Connection con = DriverManager.getConnection(url, user, pass);
System.out.println("2");
//Class.forName(driver);
System.out.println("3");
st = con.createStatement();
rs = st.executeQuery("SELECT productcost " +
"FROM producttable " +
"WHERE productid = 3;");
System.out.println("4");
if (rs.next()) { //get first result
System.out.println(rs.getInt(1)); //coloumn 1
}
System.out.println("5");
System.out.println("Success");
} catch (Exception e) {
System.out.println("Error");
}
Причина, по которой вы видите 3
между 4
и 5
состоит в том, что ResultSet содержит 3
.
Получает значение указанного столбца в текущей строке этого объекта ResultSet как int
Попробуйте отладить ваш код и пройдите через этот раздел. Вы увидите, что я показываю ниже.
RecordSet
????
Вы должны иметь "3" в качестве данных в первом столбце! Потому что вы печатаете данные первого столбца record.i, здесь не вижу никакой проблемы!
productcost
ли вы написать более подробную информацию о вашей проблеме .. может быть, вывод1 2 3 4 3 5 Success
потому что стоимостьproductcost
из запроса равна3
4
и5
, когда между ними естьprintln(rs.getInt(1))
. Почему вы говорите, что «не распечатывает данные из таблицы SQL», когда печатает значение3
, то есть значениеproductcost
? Возможно, если выprintln("productcost = " + rs.getInt(1))
оператор print на что-то вродеprintln("productcost = " + rs.getInt(1))
, вы узнаете свой вывод!