ある人がデータベースに新しいジョブを追加したいと考えています。Combobox
新しいジョブが追加される、データベースに既に存在する既存の雇用主のリスト。ただし、雇用主が存在しない場合、顧客はオプションをクリックして雇用主を追加できます。その雇用主が追加されると、すぐにテキストフィールドに表示されます。
コーディングとmysqlデータベースで上記のシナリオを達成しようとしていますが、そうするためのロジックが思いつきません...
表 雇用主
CREATE TABLE "Employer" ("employerID" INTEGER PRIMARY KEY NOT NULL ,
"name" CHAR,
"industry" CHAR,
"contact1" CHAR,
"contact2" CHAR,
"email" CHAR,
"website" CHAR,
"facts" CHAR,
"phone" VACHAR)
テーブル ジョブ
CREATE TABLE "Job" ("jobID" INTEGER PRIMARY KEY NOT NULL ,
"employerID" INTEGER,
"title" CHAR,
"description" CHAR,
"type" CHAR,"salary" CHAR,
"benefits" CHAR,
"vacancies" INTEGER,
"closing" CHAR,
"requirement" CHAR,
"placement" BOOL,
"applyTo" CHAR,
"status" CHAR,
"posted" CHAR,
"location" CHAR)
クラス Employer_GUI - 新しい EMPLOYERS をEmployer
テーブルに保存する単純なフォームと保存ボタンで構成されます
private void SaveEmpButtonActionPerformed(java.awt.event.ActionEvent evt) {
try {
String sql = "INSERT INTO Employer (name,industry,contact1,contact2,email,website,facts,phone) VALUES (?,?,?,?,?,?,?,?)";
pst = conn.prepareStatement(sql);
pst.setString(1, txtName.getText());
pst.setString(2, txtInd.getText());
pst.setString(3, txtC1.getText());
pst.setString(4, txtC2.getText());
pst.setString(5, txtEmail.getText());
pst.setString(6, txtWeb.getText());
pst.setString(7, txtFacts.getText());
pst.setString(8, txtPhone.getText());
pst.execute();
JOptionPane.showMessageDialog(null, ""+txtName.getText()+" added to database!");
this.setVisible(false);
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, ""+txtName.getText()+" could not be added!");
}
finally {
try {
rs.close(); pst.close(); }
catch(Exception e) { } }
}
//Class Job_GUI - JOBS のみをJob
テーブルに追加する FORM で構成されます
private void fillCombo() {
try {
String sql = "SELECT * FROM Employer";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()) {
String empName = rs.getString("name");
comboEmployer.addItem(empName);
}
}
JComboBox
comboEmployer
追加したばかりの新しい雇用者名として、選択したアイテムをすぐに取得するにはどうすればよいですか?