//
// ViewController.m
// 01-SQLite的基本使用
#import "ViewController.h"
#import <sqlite3.h>
@interface ViewController ()
{
//成员变量
sqlite3 *_db; //db代表整个数据库,db是数据库实例
}
- (IBAction)insert;
- (IBAction)query;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//0.获取沙盒中的数据库文件名
NSString *filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"student.sqlite"];
//1.创建(打开)数据库(如果数据库不存在,会自动创建)
int result = sqlite3_open(filename.UTF8String, &_db);
if (result == SQLITE_OK) {
NSLog(@"成功打开数据库");
//3.建表
const char *sql = "create table if not exists t_student (id integer primary key autoincrement,name text,age integer);";
char *errorMesg = NULL;
int result = sqlite3_exec(_db, sql, NULL, NULL, &errorMesg);
if (result == SQLITE_OK) {
NSLog(@"成功创建t_student表");
}else{
NSLog(@"创建t_student表失败:%s",errorMesg);
}
}else{
NSLog(@"打开数据库失败");
}
}
- (IBAction)insert {
const char *sql = "insert into t_student (name,age) values ('jack',20);";
char *errorMesg = NULL;
int result = sqlite3_exec(_db, sql, NULL, NULL, &errorMesg);
if (result == SQLITE_OK) {
NSLog(@"成功添加数据");
}else{
NSLog(@"添加数据失败:%s",errorMesg);
}
}
- (IBAction)query {
//1.定义sql语句
const char *sql = "select id,name,age form t_student;";
//2.定义一个stmt存放结果集
sqlite3_stmt *stmt = NULL;
//3.检测SQL语句的合法性
int ressult = sqlite3_prepare_v2(_db, sql, -1, &stmt, NULL);
if (ressult == SQLITE_OK) {
NSLog(@"查询语句合法");
//4.执行SQL语句
int stepResult = sqlite3_step(stmt);
while (stepResult == SQLITE_ROW) {
//获得第0列的id
int sid = sqlite3_column_int(stmt, 0);
//获得第1列的name
const unsigned char *sname = sqlite3_column_text(stmt, 1);
//获得第2列的age
int sage = sqlite3_column_int(stmt, 2);
NSLog(@"%d %s %d",sid,sname,sage);
}
}else{
NSLog(@"查询语句非法");
}
}
@end
SQLite3的基本使用
最新推荐文章于 2025-05-19 10:12:11 发布