2015-02-04 2 views
0

Какую конкретную команду или алгоритм следует использовать для получения значения, выбранного в JComboBox, а затем вставить его в конкретную базу данных?Получение значения из combobox в базу данных

+0

Что вы пробовали? В какой части вы застряли? Для лучшей помощи, пожалуйста, добавьте [Минимальный, полный и проверенный пример] (http://www.stackoverflow.com/help/mcve), демонстрирующий вашу проблему. Как ваш вопрос слишком широк. – dic19

ответ

2

Как получить значение из поля со списком и как вставить значение в БД - это два совершенно разных вопроса.

Что касается выделения значения, вы можете использовать что-то в строках String x = String.valueOf(JComboBox.getSelectedItem());, но как его вставить в БД - ну, это гораздо больший вопрос, который зависит от многих переменных, таких как ваш тип БД, хост, сеть и т. д.

3

Чтобы получить выбранное значение, Строковое значение = JComboBox.getSelectedItem(). toString();

0

Как и в случае с головами, вам необходимо убедиться, что вы его инициализировали, и у него по крайней мере один элемент вы получите исключение. Я буду использовать sqlite в этом случае, но, как они сказали ранее, логика базы данных зависит от вас.

public Stack() { 
    JComboBox<Object> box = new JComboBox<Object>(); 
    // This can work 
    Object value = box.getSelectedItem(); 
    DatabaseManager manager = new DatabaseManager(); 
    manager.init(); 
    if (DatabaseManager.insertRecord(value.toString())) 
     System.out.println("Record Inserted"); 
    else 
     System.out.println("Record Insertion Failed"); 
    } 

    static class DatabaseManager { 

    static Connection con; 
    static Statement stmt; 

    void init() { 
     try { 
      Class.forName("org.sqlite.JDBC"); 
      con = DriverManager 
        .getConnection("jdbc:sqlite:database.sqlite"); 
      if (!con.isClosed()) { 
       stmt = con.createStatement(); 
       stmt.executeUpdate("create table if not exists item (id integer primary autoincrement, value varchar(100) not null"); 
      } 
     } catch (ClassNotFoundException | SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

    static boolean insertRecord(String item) { 
     try { 
      if (stmt.executeUpdate("insert into item (value) values('" 
        + item + "')") > 0) 
       return true; 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
     return false; 
     } 
    } 
+0

Вы можете добавить оператор close для подключения Db – Olu

Смежные вопросы