- /*= = = - - - = = =
- sqlite3 數據庫裏添加數據
- = = = - - - = = = */
- //1.定義一個sqlite3的指針
- sqlite3 *db;
- //2.用來接收讀寫數據庫操作是否成功的返回值
- int dbrc;
- //3.轉換數據庫路徑爲UTF8的c風格字符串
- const char* dbFilePathUTF8 = [dbFilePath UTF8String];
- //4.打開數據庫
- dbrc = sqlite3_open(dbFilePathUTF8, &db);
- //判斷是否成功打開
- if (dbrc == SQLITE_OK) {
- NSLog(@"成功打開了數據庫");
- }
- //5.定義執行sql語句的指針
- sqlite3_stmt *dbps;
- //6.定義sql語句
- NSString *insertStatementNS = [NSString stringWithFormat:
- @"insert into \"shopping\"\
- (item, price, groupid, dateadd)\
- values (\"%@\", %@, %d, DATETIME('NOW'))",
- @"lll",
- @"350",
- 2];
- //7.將定義的NSString的sql語句,轉換成UTF8的c風格的字符串
- const char *insertStatement = [insertStatementNS UTF8String];
- //8.sql語句的預執行。(判斷sql語句是否符合語法)
- dbrc = sqlite3_prepare_v2
- (db, insertStatement, -1, &dbps, NULL);
- //9.執行sql語句
- dbrc = sqlite3_step (dbps);
- NSLog(@"dbrc = %d",dbrc);
- /*= = = - - - = = =
- 數據庫裏讀取數據
- = = = - - - = = =*/
- //1.定義一個查詢語句
- NSString *queryStatementNS =
- @"select key,item,price,groupid,dateadd from shopping";
- //2.將定義的NSString的查詢語句轉換成UTF8的c字符串
- const char *queryStatement = [queryStatementNS UTF8String];
- //3.sql語句的預處理
- dbrc = sqlite3_prepare_v2 (db, queryStatement, -1, &dbps, NULL);
- NSLog (@"prepared statement=%d",dbrc);
- //4.獲取值,要用相匹配的方法去獲取相應類型的值,並要轉換類型
- while ((dbrc = sqlite3_step (dbps)) == SQLITE_ROW)
- {
- //獲取主健的值 int型的 用 sqlite3_column_int
- int primaryKeyValueI = sqlite3_column_int(dbps, 0);
- //轉換成 NSNumber 類型的
- NSNumber *primaryKeyValue = [[NSNumber alloc]
- initWithInt: primaryKeyValueI];
- NSLog(@"primaryKeyValue = %@",primaryKeyValue);
- //獲取item的值 字符串用 sqlite3_column_text
- NSString *itemValue = [[NSString alloc]
- initWithUTF8String: (char*) sqlite3_column_text (dbps, 1)];
- NSLog(@"itemValue = %@",itemValue);
- //獲取price的值 double類型用 sqlite3_column_double
- double priceValueD = sqlite3_column_double (dbps, 2);
- NSLog(@"priceValueD = %lf",priceValueD);
- //轉換類型
- NSNumber *priceValue = [[NSNumber alloc]
- initWithDouble: priceValueD];
- NSLog(@"priceValue = %@",priceValue);
- //獲取guoupid的值
- int groupValueI = sqlite3_column_int(dbps, 3);
- NSLog(@"groupValueI = %d",groupValueI);
- NSNumber *groupValue = [[NSNumber alloc]
- initWithInt: groupValueI];
- NSLog(@"groupValue = %@",groupValue);
- //獲取dateadd的值
- NSString *dateValueS = [[NSString alloc]
- initWithUTF8String:(char*)sqlite3_column_text (dbps, 4)];
- NSLog(@"dateValueS = %@",dateValueS);
- }
- //10.釋放資源
- sqlite3_finalize (dbps);
- //11.關閉數據庫
- sqlite3_close(db);
數據庫的數據添加和查詢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.