12
Мар
2016

resultSet.getObject() возвращает пустую строку

Программа должна отобразить данные зарегистрированных пользователей. При подключении к базе данных проблем не возникает, но resultSet.getString("ИМЯ СТОЛБЦА") возвращает пустой текст. А вот resultSet.getInt("UserID") возвращает все id (это по крайней мере значит, что связь с БД удалась). И вот что самое интересное: попробовал отобразить и числовые данные с помощью getInt (н.п. баланс), но они тоже не отображаются. Ничего не отображается кроме ID. Даже попробовал getObject() и metadata. В консоле отобразились только имена столбцов и ID.

Вот код, БД и консоль:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class Conn {

    public static void main(String[] args) {
        Connection connection2 = null;
        Statement statement2 = null;
        ResultSet resultSet2 = null;

        try {
            connection2 = (Connection) DriverManager.getConnection(
                    "jdbc:mysql://localhost/ИМЯ", "ЛОГИН", "ПАРОЛЬ");
        } catch (SQLException se) {
        }

        try {
            statement2 = connection2.createStatement();
        } catch (SQLException se) {
            se.printStackTrace();
        }

        try {
            resultSet2 = statement2.executeQuery("SELECT * FROM userdetails");
        } catch (SQLException se) {
            se.printStackTrace();
        }

        try {
            ResultSetMetaData rsmd = resultSet2.getMetaData();
            int columns = rsmd.getColumnCount();
            for (int i = 1; i <= columns; i++)
                System.out.printf("%-8s\t", rsmd.getColumnName(i) + "   ");
            System.out.println();
            for (; resultSet2.next();) {
                for (int j = 1; j <= columns; j++)
                    System.out
                            .printf("%-8s\t", resultSet2.getObject(j) + "   ");
                System.out.println();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                connection2.close();
                statement2.close();
                resultSet2.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
}

В другом проекте в Eclipse те же методы отлично отображают таблицу еще одной базы на фрейме. Может быть проблема с БД? Перепробовал переключаться между разными версиями Java в Eclipse, загрузил последний коннектор, но ничего не выходит. Переписал БД krknutyun в фреймовый проект, на фрейм не отобразилось, а "рабочая" БД отобразилась в моей неработающей программе. Какие проблемы могут быть с БД krknutyun? введите сюда описание изображения

введите сюда описание изображения

Источник: https://ru.stackoverflow.com/questions/502084/resultset-getobject-%D0%B2%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%89%D0%B0%D0%B5%D1%82-%D0%BF%D1%83%D1%81%D1%82%D1%83%D1%8E-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83

Share

Тебе может это понравится...