Выбрасывает исключение java.lang.NullPointerException в строке stm = cn.createStatement();
public static void printTable(Connection cn){
PreparedStatement pstmt = null;
Statement stm;
ResultSet rs = null;
DefaultTableModel dtm = null;
try{
stm = cn.createStatement(); //exception
System.out.println("Успешно удалено");
}
catch(SQLException e){
System.out.println("Ошибка createStatement");
return;
}
try{
stm.execute("USE mars");
}
catch(SQLException e){
System.out.println("Ошибка use");
return;
}
try {
pstmt = cn.prepareStatement("SELECT id_code, type, name, manufacturer, provider, quantity FROM goods");
dtm = new DefaultTableModel();
if(pstmt.execute()) {
rs = pstmt.getResultSet();
ResultSetMetaData rsmd = rs.getMetaData();
for(int col = 1; col <= rsmd.getColumnCount(); col++)
dtm.addColumn(rsmd.getColumnName(col));
while (rs.next()) {
Vector<String> row = new Vector<String>(); //Строка таблицы
for(int col = 1; col <= rsmd.getColumnCount(); col++) {
int type = rsmd.getColumnType(col);
switch(type) {
case Types.INTEGER :
row.add(new Integer(rs.getInt(col)).toString());
break;
case Types.VARCHAR :
row.add(rs.getString(col));
break;
default :
throw new Exception("Неподдерживаемый тип");
}
}
dtm.addRow(row);
}
}
}
catch (SQLException ex) {
System.out.println(ex.toString());
} catch (Exception e) {
e.printStackTrace();
}
JTable grid = new JTable();
grid.setModel(dtm);
JScrollPane jsp = new JScrollPane(grid);
Signed.frame_main.add(jsp);
}
Вызываю метод в другом классе, в main:
public static void main(String[] args) {
cnctn = Main.conn(); //тут подключение к базе (подключается нормально)
Main.printTable(cnctn); //exception
// TODO Auto-generated method stub
EventQueue.invokeLater(new Runnable(){
@Override
public void run(){
try{
Signed window_reg = new Signed();
Signed.frame_main.setVisible(true);
}
catch (Exception e2){
e2.printStackTrace();
}
}
});
}
А где метод conn? Возможна вутри этого метода какая та пойманный ексепшн и метод возврашшает null.
cnctn = Main.conn();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пишу приложение на Android StudioЧерез код по нажатию кнопки добавляются дополнительные поля к посту
Мне необходимо выделить строку в таблице и затем "заблокировать" выделение и редактирование других строк до определенного действияКак это...
В TableView использую ObservableList<Product> productListЧтобы изменить необходимые данные- использую объект из коллекции, но после сохранения ничего не изменяется...
Нашёл пример для работы с скриптами в Java здесьСоздал свой класс Note, создал экземпляр, положил его в engine, запускаю его метод getTitle и получаю...