Как связать мою форму AWT Java с базой данных MySQL? - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь создать приложение формы, используя Java AWT.Затем я хочу добавить данные, взятые из формы в моей базе данных.Я использовал ActionListener в кнопке btnadd, которая должна подключиться к базе данных и сохранить в ней

Это форма AWT для вставки данных

import java.awt.*;
import java.awt.event.*;

public class InsertFrom extends Frame{
Panel panelInsert,panelbtn;
Label lfName,lmName,llName,lage,lssn,lcity,lstate,lcountry;
TextField tfName,tmName,tlName,tage,tssn,tcity,tstate,tcountry;
Button btnadd;
String firstName,middleName,lastName,city,state,country;
int age,ssn;
InsertFrom(){
   lfName = new Label("First Name");
   lmName = new Label("Middle Name");
   llName = new Label("Last Name");
   lage = new Label("Age");
   lssn = new Label("SSN");
   lcity = new Label("City");
   lstate = new Label("State");
   lcountry = new Label("Country");
   tfName = new TextField(10);
   tmName = new TextField(10);
   tlName = new TextField(10);
   tage = new TextField(10);
   tssn = new TextField(10);
   tcity = new TextField(10);
   tstate = new TextField(10);
   tcountry = new TextField(10);
   panelInsert = new Panel(new GridLayout(8,2));
   panelInsert.add(lfName);
   panelInsert.add(tfName);
   panelInsert.add(lmName);
   panelInsert.add(tmName);
   panelInsert.add(llName);
   panelInsert.add(tlName);
   panelInsert.add(lage);
   panelInsert.add(tage);
   panelInsert.add(lssn);
   panelInsert.add(tssn);
   panelInsert.add(lcity);
   panelInsert.add(tcity);
   panelInsert.add(lstate);
   panelInsert.add(tstate);
   panelInsert.add(lcountry);
   panelInsert.add(tcountry);

   btnadd = new Button("Add to Database");
   panelbtn = new Panel(new FlowLayout());
   panelbtn.add(btnadd);
   btnadd.addActionListener(new ActionListener(){
       public void actionPerformed(ActionEvent e){
           firstName=tfName.getText();
           middleName=tmName.getText();
           lastName=tlName.getText();
           age=Integer.parseInt(tage.getText());
           ssn=Integer.parseInt(tssn.getText());
           city=tcity.getText();
           state=tstate.getText();
           country=tcountry.getText();
           InsertingData();
       }
   });

   addWindowListener(new WindowAdapter(){
       public void windowClosing(WindowEvent we){
        System.exit(0);
       }
   });
   add(panelInsert);
   add(panelbtn);
   setTitle("Insert Form");
   setLayout(new GridLayout(2,1));
   setVisible(true);
   setSize(500,500);
   setLocationRelativeTo(null);
}
public static void main(String[] args){
    new InsertFrom();
}

}

Это для подключенияв базу данных и вставить данные в базу данных

import java.io.*;
import java.sql.*;
import java.util.StringTokenizer;

public class InsertingData { 
public static void main(String args[]) throws Exception{
    String sql="INSERT INTO customers VALUES ('"+firstName+"','"
            +middleName+"','"+lastName+"',"+age+","+ssn+",'"
            +city+"',"+state+",'"+country+"')";
    insertCustomer(sql);
}
private static void insertCustomer(String sql) throws Exception{
    Class.forName("com.mysql.jdbc.Driver");
    String url="jdbc:mysql://localhost:3306/mydb";
    Connection con =DriverManager.getConnection(url,"root","");
    if(con!=null){
        Statement stmt =con.createStatement();
        int result= stmt.executeUpdate(sql);
        if(result!=-1){
            System.out.println("Inserted"+result+"Record(s) successfully");
        }else{
            System.out.println("Unable to insert record. Please check your 
SQL syntax");
        }

    stmt.close();
    con.close();
    }else{
        System.out.println("Unable to get the connection");
    }
 }
}

1 Ответ

0 голосов
/ 21 января 2019

В InsertingData измените main имя метода.Старайтесь избегать использования ключевого слова main, если вы не хотите запускать свое приложение с этого момента.

Вы можете сделать это:

public static void insertData(String firstName, String middleName, 
                              String lastName, int age, int ssn, String city
                              String state, String country) throws Exception{

    String sql="INSERT INTO customers VALUES ('"+firstName+"','"
            +middleName+"','"+lastName+"',"+age+","+ssn+",'"
            +city+"',"+state+",'"+country+"')";

    insertCustomer(sql);

}

И вызвать его на своем ActionListener из InsertFrom как это:

InsertingData.insertData(firstName, middleName, lastName, age, ssn, city, state, country);
...