2014-11-25 5 views
1

Я использовал следующий код для вставки данных в базу данных mongodb ..... проблема с этим я должен явно указать вводимые данные, но мне нужно сделать это динамически ... в смысле с использованием графического интерфейса, независимо от того, что было введено, текстовое поле должно быть помещено в базу данных.Вставить данные в базу данных (mongodb)

private void initialize() { 
    frame = new JFrame(); 
    frame.setBounds(100, 100, 512, 355); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().setLayout(null); 

    JLabel lblNewLabel = new JLabel("Name"); 
    lblNewLabel.setBounds(42, 33, 95, 30); 
    frame.getContentPane().add(lblNewLabel); 

    JLabel lblNewLabel_1 = new JLabel("Manufacturer"); 
    lblNewLabel_1.setBounds(42, 74, 80, 30); 
    frame.getContentPane().add(lblNewLabel_1); 

    textField = new JTextField(); 
    textField.setBounds(147, 33, 122, 25); 
    frame.getContentPane().add(textField); 
    textField.setColumns(10); 

    textField_1 = new JTextField(); 
    textField_1.setBounds(147, 79, 122, 25); 
    frame.getContentPane().add(textField_1); 
    textField_1.setColumns(10); 

    JButton btnInsert = new JButton("Insert"); 
    btnInsert.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 

      MongoClient mongoClient = null; 
       DBCursor cursor = null; 
       try { 
        mongoClient = new MongoClient("localhost" , 27017); 
        DB db = mongoClient.getDB("sample"); 
        DBCollection coll = db.getCollection("sample"); 

        BasicDBObject doc = new BasicDBObject("title", "MongoDB"). 
          append("name","a"). 
          append("manufacturer", "b"). 
          append("colour", "c"). 
          append("price", "d"); 
          coll.insert(doc); 

       }catch(Exception e){ 
        System.err.println(e.getClass().getName() + ": " + e.getMessage());} 

     } 
    }); 
    btnInsert.setBounds(148, 223, 89, 23); 
    frame.getContentPane().add(btnInsert); 

    JLabel lblNewLabel_2 = new JLabel("Colour"); 
    lblNewLabel_2.setBounds(42, 127, 65, 25); 
    frame.getContentPane().add(lblNewLabel_2); 

    textField_2 = new JTextField(); 
    textField_2.setBounds(147, 129, 122, 25); 
    frame.getContentPane().add(textField_2); 
    textField_2.setColumns(10); 

    JLabel lblNewLabel_3 = new JLabel("Price"); 
    lblNewLabel_3.setBounds(37, 175, 70, 25); 
    frame.getContentPane().add(lblNewLabel_3); 

    textField_3 = new JTextField(); 
    textField_3.setBounds(147, 177, 122, 25); 
    frame.getContentPane().add(textField_3); 
    textField_3.setColumns(10); 
    } 
} 
+0

В чем вопрос/чего вы пытаетесь достичь? – August

+0

Почему бы не использовать JDBC? – trashgod

+0

Я предполагаю, что этого легко достичь, просто получив текст из полей с помощью 'getText()' и не используя закаленные кодированные значения, нет? Я действительно не понимаю, в чем проблема? Это проблема с динамическим форматом документа или просто с данными? –

ответ

0

«У меня есть передний конец, который имеет 4 текстовых полей, говоря„имя“,» производитель»,„цвет“и„цена“.... поэтому все, что я ввести в текстовое поле должно быть помещается в базу данных .... однако в приведенной выше вставке кода может быть сделано только путем явного указания значений .... так что мне нужно изменить это для обобщенного метода »

Просто измените его на что-то вроде :

Это то, что вы ищете?

+0

Я предполагаю что-то импортировать ???? он говорит, что не может решить «имя поля» и т. д. –

+0

Это просто имя, которое я составил. Это должно быть имя переменной вашего текстового поля, например 'textField_1'. Я просто не знал, какие поля соответствуют типу записи. –

+0

no sir it is not working .... он показывает «не может сериализовать класс javax.swing.JTextField» .... –

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