从组合框到数据库获取价值

时间:2015-02-04 11:35:50

标签: java database swing user-interface

我应该使用什么特定的命令或算法来获取JComboBox中选择的值,然后将其插入特定数据库?

3 个答案:

答案 0 :(得分:2)

要获取所选值, String value = JComboBox.getSelectedItem()。toString();

答案 1 :(得分:1)

如何从组合框中获取值以及如何将值插入数据库是两个完全不同的问题。

至于提取值,您可以使用String x = String.valueOf(JComboBox.getSelectedItem());行中的内容,但是如何将其推送到数据库中 - 这是一个更大的问题,它依赖于许多变量,比如数据库类型,主持人,网络等

答案 2 :(得分: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;
      }
    }
相关问题