iOS 개발 FMDB
FMDatabase는 SQL 문을 실행하는 SQLite 데이터베이스를 나타냅니다.FMResultSet은 FMDatase가 질의 문을 실행한 결과를 나타냅니다.FMDatabaseQueue는 다중 루트에서queries나 업데이트를 실행해야 할 때 이 클래스를 사용해야 합니다. 이 클래스는 루트가 안전합니다.
t_student 표시 테이블 이름
데이터 업데이트 Executing Updates
SELECT
가 아닌 모든 문장은 update
로 간주되며CREATE、UPDATE、INSERT、ALTER、COMMIT、BEGIN、DETACH、DELETE、DROP、END、EXPLAIN、VACUUM REPLACE
등 문장을 포함한다.기본적으로, 만약 당신의 SQL 문장이 SELECT
로 시작하지 않는다면, 바로 update
문장이다.데이터베이스 실행 updates
은 버그 값을 되돌려줍니다. 실행이 실패했을 때 -lastErrorMessage
와 -lastErrorCode
방법으로 오류 정보를 얻을 수 있습니다.데이터베이스 만들기
//1.
_docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSLog(@"%@",_docPath);
mark_student = 1;
//
NSString *fileName = [_docPath stringByAppendingPathComponent:@" .sqlite"];
//2.
_db = [FMDatabase databaseWithPath:fileName];
if ([_db open]) {
NSLog(@" ");
} else {
NSLog(@" ");
}
테이블 생성
//3.
BOOL result = [_db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_student( ) (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT NULL, sex text NOT NULL);"];
if (result) {
NSLog(@" ");
} else {
NSLog(@" ");
}
필드에 제약조건을 추가할 수 있습니다.
데이터 삽입(업데이트 데이터로 이해할 수도 있음)
//1.executeUpdate: ? ( oc ,; )
BOOL result = [_db executeUpdate:@"INSERT INTO t_student( ) (name, age, sex) VALUES (?,?,?)",name,@(age),sex];
//2.executeUpdateWithForamat: %@,%d ( , )
BOOL result = [_db executeUpdateWithFormat:@"insert into t_student( ) (name,age, sex) values (%@,%i,%@)",name,age,sex];
//3.
BOOL result = [_db executeUpdate:@"INSERT INTO t_student( )(name,age,sex) VALUES (?,?,?);" withArgumentsInArray:@[name,@(age),sex]];
if (result) {
NSLog(@" ");
} else {
NSLog(@" ");
}
데이터 삭제,
//1. ? ( oc , int OC )
int idNum = 11;
BOOL result = [_db executeUpdate:@"delete from t_student where id = ?",@(idNum)];
//2. %@,%d
//BOOL result = [_db executeUpdateWithFormat:@"delete from t_student where name = %@",@" "];
if (result) {
NSLog(@" ");
} else {
NSLog(@" ");
}
데이터 수정
//
NSString *newName = @" ";
NSString *oldName = @" 2";
BOOL result = [_db executeUpdate:@"update t_student set name = ? where name = ?",newName,oldName];
if (result) {
NSLog(@" ");
} else {
NSLog(@" ");
}
데이터 조회
//
FMResultSet * resultSet = [_db executeQuery:@"select * from t_student"];
//
//FMResultSet * resultSet = [_db executeQuery:@"select * from t_student where id < ?", @(4)];
//
while ([resultSet next]) {
int idNum = [resultSet intForColumn:@"id"];
NSString *name = [resultSet objectForColumnName:@"name"];
int age = [resultSet intForColumn:@"age"];
NSString *sex = [resultSet objectForColumnName:@"sex"];
NSLog(@" :%@ :%@ :%@ :%@",@(idNum),name,@(age),sex);
}
테이블 삭제
//
BOOL result = [_db executeUpdate:@"drop table if exists t_student"];
if (result) {
NSLog(@" ");
} else {
NSLog(@" ");
}
데이터베이스 닫기
BOOL result = [db close];
if(result){
NSLog(@" ");
}
else {
NSLog(@" ");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.