私は人名、電子メール、電話番号を持つ連絡先クラスを持っています。私は次に、ID、名前、連絡先のリストを持つアドレス帳クラスを持っています。だから私はmysqlデータベースにアドレス帳を追加したい。私はちょうどclass.Hereは、これまでの私のコードですadressbookからの連絡先のリストからの電子メール、電話番号、私は人物名を検索することによって、これを正しくやっていることを確認したい:オブジェクトのリストから値を取得する
アドレス帳クラス:
public class AddressBook{
private int id;
private String name;
private List<Contact> contacts;
// getters and setters
}
Contactクラス:
public class Contact
{
private String firstName, lastName, email, phoneNum;
// getters and setters
}
DBクラス:
public boolean insert(AddressBook addressBook)
{
boolean success = false;
int executedValue = 0;
try
{
Connection conn = DBConnection.getConnection();
String query = "INSERT INTO addressbook (id, firstname, lastname, email, phonenum)"
+ "VALUEs (?,?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setInt(1, addressBook.getId());
List<Contact> contacts = addressBook.getContacts();
for(Contact contact : contacts)
{
stmt.setString(2, contact.getFirstName());
stmt.setString(3, contact.getLastName());
stmt.setString(4, contact.getEmail());
stmt.setString(5, contact.getPhoneNum());
}
executedValue = stmt.executeUpdate();
success = executedValue > 0;
}
catch (Exception e)
{
System.out.println(e);
}
return success;
}
うん、それはうまくいくのですか? –
自動増分列として扱うことができる場合は、手動でIDを設定したくない場合を除いて、コードは正常に見えます。しかしこれは設計上の決定であり、Javaの問題ではありません。 –
IDを自動作成する必要があります。トランザクションはコミットする必要があり、例外でロールバックする必要があります。セッションを閉じて、最終的にブロックするために戻す必要があります。 –