0

新しい本 (タイトル、著者、日付など) を追加するプログラムを開発しようとしていますが、著者を複数回追加したくありません. プログラムで著者が既に存在するかどうかを確認したい表では、そうでない場合は彼を追加します...ここに私のコードがあります:

public void insert_bk(String m, String a, String b, String c, String d, String e) {
    String sql="Select * from author where Full_Name='"+b+"'";
    System.out.println(sql);

    try {  
        opencn();
        Statement st=cn.createStatement();
        ResultSet rs=st.executeQuery(sql);

        while (rs.next()) { 
            String id=rs.getString("Author_ID");
            System.out.println(id);
            st.executeUpdate("INSERT into book (`Book_ID`,`Title`,`Author_ID`,`Date_of_release`,`Theme`,`Edition`)"+ "VALUES ('" + m+ "','" + a+ "','" + id+ "', '" + d+ "', '" + e+ "', '" + c+ "')");
        }  
    }
    catch(SQLException exp) {
        System.out.println(exp.getMessage());
    }
}

このコードでは、著者が存在するかどうかを確認して本を追加するだけです...著者が存在しない場合、本とともに彼を追加するという条件をどのように作成できますか?

何か案は?前もって感謝します :)

4

4 に答える 4

1

while ループを使用する代わりに、rs.next() を if ステートメントに入れる必要があります。呼び出しが false を返す場合、作成者は存在しないため、挿入する必要があります。

于 2013-05-05T19:38:17.553 に答える
0

このストアドプロシージャを実行できます

declare @i int
Select @i=count(*) from author where Full_Name=@FullName
IF(@i < 1)
  BEGIN
  // INSERT 
  END
于 2013-05-05T19:41:21.863 に答える