Формат заголовка JTable

Я хочу изменить заголовок моего JTable, который отображает данные из базы данных SQL Server, потому что он также отображает то же имя столбца в моей базе данных. Мне просто нужны сами данные, а не имя столбца.

вот код, который я использовал для отображения данных:

public void search() throws Exception{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String url = "jdbc:odbc:*****";
            String user = "*****";
            String pass = "*****";
            Connection con =  DriverManager.getConnection(url, user, pass);
            Statement state = con.createStatement();
            ResultSet rs = state.executeQuery("SELECT * FROM dbo.Patients");
            ResultSetMetaData rsmetadata = rs.getMetaData();
            int columns = rsmetadata.getColumnCount();
            DefaultTableModel dtm = new DefaultTableModel();
            Vector column_name = new Vector();
            Vector data_rows = new Vector();

            for (int i=1; i<columns;i++){
                column_name.addElement(rsmetadata.getColumnName(i));
            }
            dtm.setColumnIdentifiers(column_name);

            while(rs.next()){
                data_rows = new Vector();
                for (int j=1; j<columns; j++){
                data_rows.addElement(rs.getString(j));
                }
                dtm.addRow(data_rows);
            }
            tblPatient.setModel(dtm);
    }

и это результат:

ЭТО

Я хочу изменить этот pIDNo на идентификатор пациента, pLName на фамилию, pFName на имя и так далее и тому подобное...


person Crystal Maiden    schedule 08.04.2013    source источник
comment
Я бы изменил запрос, чтобы получить каждый столбец и изменить имена. В противном случае я бы искал имена столбцов внутри column_name и менял имя (конечно, последнее очень наивно).   -  person Luiggi Mendoza    schedule 08.04.2013
comment
Не имеет отношения к вопросу, но было бы лучше изменить Vector by ArrayList`: Почему класс Java Vector считается устаревшим или устаревшим?   -  person Luiggi Mendoza    schedule 08.04.2013
comment
@LuiggiMendoza на самом деле не знал, что такое Vector, я просто следую некоторым инструкциям на веб-сайте, который я гуглю, чтобы отображать данные в JTable, проблема с результатом заключается в том, что есть одни отсутствующие данные, которые имеют ТИП ДАННЫХ ДЕНЕГ, и он должен быть в прошлой части, но она не вышла, это потому что я использовал Вектор?   -  person Crystal Maiden    schedule 08.04.2013
comment
Я так не думаю, поскольку вы извлекаете все данные как String. Похоже проблема с драйвером. Поскольку вы подключаетесь к MSSQL, лучше использовать драйвер Microsoft JDBC или jTDS вместо ODBC.   -  person Luiggi Mendoza    schedule 08.04.2013
comment
сэр @LuiggiMendoza Я не знаю, как это использовать, я думал, что это то же самое, поскольку это ODBC: «JDBC». Я думаю, что я должен начать с нуля снова...   -  person Crystal Maiden    schedule 08.04.2013


Ответы (2)


Сменить SELECT * FROM dbo.Patients на SELECT pIDNo AS 'Patient ID', pLName AS '.... — самый простой способ. И быстрее называть имена столбцов вместо использования *.

person David Pitre    schedule 08.04.2013
comment
Вы знаете, как я могу отобразить ТИП ДАННЫХ ДЕНЕГ в JTable? - person Crystal Maiden; 08.04.2013
comment
@CrystalMaiden: Это новый вопрос; сначала просмотрите это. - person trashgod; 08.04.2013

Я бы попытался изменить ваш выбор:

вместо

SELECT * FROM dbo.Patients

Использовать

SELECT pId as "Patient ID", ...

person evgenyl    schedule 08.04.2013