04 データの挿入・更新・削除

データの挿入

モデルクラスは通常のオブジェクトとして生成できます。 新規に作成したインスタンスでsaveメソッドを呼ぶとinsertクエリが発生します。

AppBook *book = [[AppBook alloc] init];
 
book.year = [NSNumber numberWithInt:2010];
book.author = @"wicket";
book.name = @"はじめてのライブラリ";
 
[book save];
// SQL: insert into book ( `name`,`author`,`year` ) values ( ?,?,?)

また、このときautoincrement属性があり、値が設定されていなかった場合は自動で値が付加されます

AppBook *book = [[AppBook alloc] init];
 
book.year = [NSNumber numberWithInt:2010];
book.author = @"wicket";
book.name = @"はじめてのライブラリ";
 
[book save];
NSLog(@"indexNo : %@", book.indexNo);
//  indexNo : 2

データの更新

データの更新は、挿入の場合とかわりません。saveメソッドが自動で挿入なのか、更新なのかを判断するので気にすることなく使えます。

AppBook *book = [[AppBook alloc] init];
 
book.year = [NSNumber numberWithInt:2010];
book.author = @"wicket";
book.name = @"はじめてのライブラリ";
 
[book save];
// SQL : insert into book ( `name`,`author`,`year` ) values ( ?,?,?)
 
book.name = @"はじめてのライブラリ 改訂版";
[book save];
// SQL : update book set `name` = ?  where `indexNo` = 3

データの削除

データの削除では、deleteメソッドを呼ぶだけです。 メモリに関してはライブラリ側では触りませんので、必要に応じてreleaseしてください。

AppBook *book = [[AppBook alloc] init];
 
book.year = [NSNumber numberWithInt:2010];
book.author = @"wicket";
book.name = @"はじめてのライブラリ";
 
[book save];
// SQL : insert into book ( `name`,`author`,`year` ) values ( ?,?,?)
 
[book delete];
// SQL : delete from book  where `indexNo` = 4