将jtextfield的值插入数据库,

时间:2014-01-10 16:19:38

标签: java sql swing

我正在尝试将用户在jtexfield中写入的内容插入到我的数据库中,但我的代码不起作用, 即使它没有显示哪里出错, 但是我发现gettext()没有回复,请帮助我

import java.awt.BorderLayout;
import java.awt.Button;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class frame_ajouter extends JFrame { 

public  JTextField T1;
public  JTextField T2;
public  JTextField T3;




     public  JTextField T1() {   return T1;  }
     public  JTextField T2() {   return T2;  }
     public  JTextField T3() {   return T3;  }

     /**
     *
     */


    public static void afficher() {


 frame_ajouter jFrame = new frame_ajouter();
  Panel p_ajouter = new Panel();
   final JTextField T1 = new JTextField();
   final JTextField T2 = new JTextField();
   final JTextField T3 = new JTextField();


  jFrame.setSize(new Dimension(500, 200));
  jFrame.setTitle("                                                   /**** AJOUTER ****/");
  p_ajouter.setLayout(new GridLayout(4,2));

  p_ajouter.add(new Label("                           NOM D'ETUDIANT    :"));
  p_ajouter.add(T1);
  p_ajouter.add(new Label("                           PRENOM ETUDIANT   :"));
  p_ajouter.add(T2);
  p_ajouter.add(new Label("                           FILIERE ETUDIANT  :"));
  p_ajouter.add(T3);
  jFrame.add(p_ajouter, BorderLayout.NORTH );


  Panel p_under_ajout = new Panel();
  p_under_ajout.setLayout(new FlowLayout());
  Button b1 = new Button("AJOUTER");
  Button b2 = new Button("ANNULER");
  p_under_ajout.add(b1);
  p_under_ajout.add(b2);
  jFrame.add(p_under_ajout, BorderLayout.SOUTH );

  b1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
               req_ajouter cp = new req_ajouter();
               cp.ajt();

            }

        });




  jFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} });

  jFrame.setVisible(true);

    }





    public static void main(String[] args) {



   afficher();





    }

}

__ _ __ _ ___ 第二课,我创建连接数据库并查询

public class req_ajouter extends frame_ajouter{
 public void ajt(){
     try { 


         String nom = T1.getText();

         String prenom = T2.getText();
         String filiere = T3.getText();
         String req = "insert into etud values(0,'"+T1.getText()+"','"+T2.getText()+"','"+T3.getText()+"')";


         connexion op = new connexion();
        op.connect();
       Statement st = op.cn.createStatement();
       st.executeUpdate(req);
             JOptionPane.showMessageDialog(null,"ajouté avec succée , consulter votre tableau d'etudiant");
       op.deconnect();
     } catch (Exception ex) {
   JOptionPane.showMessageDialog(null,ex.getMessage());

     }

   } 
}

2 个答案:

答案 0 :(得分:1)

很抱歉,但是您滥用继承来解决不能通过继承解决的问题。不要让数据库类扩展GUI,而是将消息(调用方法)从一个对象发送到另一个对象。


更多:...

  • 通过让您的数据库类继承自GUI,您实际上创建了两个GUI对象,一个显示了您想要的信息,另一个没有显示(这是继承类的一部分),它没有显示,也没有信息。
  • 而是将数据库类的引用传递给GUI,并在GUI按钮的ActionListener中传递所有方法。
  • 您应该阅读并遵守Java命名标准。类名应以大写字母开头,方法和变量名称以小写字母开头。
  • 获取基本的Java教程或教科书并通过它,因为基础知识总是非常好知道,并且只会帮助您进行GUI编码。

答案 1 :(得分:0)

感谢您的编辑!

尝试这样的事情:

...
public class frame_ajouter extends JFrame { 

public  JTextField T1;
public  JTextField T2;
public  JTextField T3;

     public  JTextField T1() {   return this.T1;  }
     public  JTextField T2() {   return this.T2;  }
     public  JTextField T3() {   return this.T3;  }

    public static void afficher() {


 frame_ajouter jFrame = new frame_ajouter();
  Panel p_ajouter = new Panel();
   T1 = new JTextField();
   T2 = new JTextField();
   T3 = new JTextField();


  jFrame.setSize(new Dimension(500, 200));
  jFrame.setTitle("                                                   /**** AJOUTER ****/");
  p_ajouter.setLayout(new GridLayout(4,2));

  p_ajouter.add(new Label("                           NOM D'ETUDIANT    :"));
  p_ajouter.add(T1);
  p_ajouter.add(new Label("                           PRENOM ETUDIANT   :"));
  p_ajouter.add(T2);
  p_ajouter.add(new Label("                           FILIERE ETUDIANT  :"));
  p_ajouter.add(T3);
  jFrame.add(p_ajouter, BorderLayout.NORTH );


  Panel p_under_ajout = new Panel();
  p_under_ajout.setLayout(new FlowLayout());
  Button b1 = new Button("AJOUTER");
  Button b2 = new Button("ANNULER");
  p_under_ajout.add(b1);
  p_under_ajout.add(b2);
  jFrame.add(p_under_ajout, BorderLayout.SOUTH );

  b1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
               req_ajouter cp = new req_ajouter();
               cp.ajt(T1.getText(), T2.getText(), T3.getText());

            }

        });

  jFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} });

  jFrame.setVisible(true);

    }

public static void main(String[] args) {
   afficher();
    }
}

在你的第二堂课中:

public void ajt(String t1, String, t2, String t3){
     try { 
...
         String nom = t1;
         String prenom = t2;
         String filiere = t3;
...
}