SQLITE的增删改查的简单运用举例
//数据库的增加操作
-(void)addDate
{
NSLog(@"增加");
// 唯一数据库,存储数据库指针
sqlite3 *db;
// 创建执行命令对象
sqlite3_stmt *stmt;
// 根据指定文件路径打开数据库
sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);
// 执行预处理命令,返回一个int类型的值,返回0 则可执行命令,返回其他 不可执行,语句里面的参数 db :数据库指针 "insert into students (stuname,stupro,stunum,stupwd,stuadd,stuage) values(?,?,?,?,?,?)":sql语句,数据库的增加操作 -1:sql语句的长度,如果为负的,自动计算sql语句长度,把sql语句当成以\0结尾的字符串)。 &stmt:是sqlite3_stmt 的指针的指针。解析以后的sql语句就放在这个结构里
int rst=sqlite3_prepare_v2(db, "insert into students (stuname,stupro,stunum,stupwd,stuadd,stuage) values(?,?,?,?,?,?)", -1, &stmt, nil);
// 绑定数据信息 注意:这里的数字1,2,3,4,5,6,代表 执行预处理命令语句中的 ?的位置
sqlite3_bind_text(stmt, 1, "lisi", -1, nil);
sqlite3_bind_text(stmt, 2, "jixie", -1, nil);
sqlite3_bind_text(stmt, 3, "15899343588", -1, nil);
sqlite3_bind_text(stmt, 4, "98836", -1, nil);
sqlite3_bind_text(stmt, 5, "chongqing", -1, nil);
sqlite3_bind_text(stmt, 6, "26", -1, nil);
// 返回0 可以执行命令
if (rst==SQLITE_OK) {
// 执行完成
if (SQLITE_DONE==sqlite3_step(stmt)) {
NSLog(@"添加成功");
}
} else {
NSLog(@"添加失败");
}
}
//数据库的删除操作
-(void)deleteDate
{
NSLog(@"删除");
// 创建唯一数据库,存储数据库指针
sqlite3 *db;
// 创建执行命令
sqlite3_stmt *stmt;
// 根据指定数据库文件路径打开数据库
sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);
// 执行预处理命令,返回一个int类型的值,返回0 则可执行命令,返回其他 不可执行,语句里面的参数1 db :是个sqlite3 * 类型变量 参数2 "delete from students where stuid=1":sql语句,数据库的删除操作 参数3 -1:sql语句的长度,如果为负的,自动计算sql语句长度,把sql语句当成以\0结尾的字符串)。 参数4 &stmt:是sqlite3_stmt 的指针的指针。解析以后的sql语句就放在这个结构里
int rst=sqlite3_prepare_v2(db, "delete from students where stuid=1", -1, &stmt, nil);
if (rst==SQLITE_OK) {
if (SQLITE_DONE==sqlite3_step(stmt)) {
NSLog(@"删除成功");
}
} else {
NSLog(@"删除失败");
}
}
//数据库的修改操作
-(void)updateDate
{
NSLog(@"修改");
sqlite3 *db;
sqlite3_stmt *stmt;
sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);
// "update students set stuname='mmm' ,stuage='100' where stuid=4" sql语句 数据库的修改操作
int rst = sqlite3_prepare_v2(db, "update students set stuname='mmm' ,stuage='100' where stuid=4", -1, &stmt, nil);
if (rst==SQLITE_OK) {
if (SQLITE_DONE==sqlite3_step(stmt)) {
NSLog(@"修改成功");
}
} else {
NSLog(@"修改失败");
}
}
//数据库的全局查询操作
-(void)selectDate
{
NSLog(@"查询");
sqlite3 *db;
sqlite3_stmt *stmt;
sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);
// "select *from students" sql语句 数据库的查询操作
int rst=sqlite3_prepare_v2(db, "select *from students", -1, &stmt, nil);
if (rst==SQLITE_OK) {
while (sqlite3_step(stmt)==SQLITE_ROW) {
// 循环便利数据库中的行的信息
NSLog(@"stuid = %d",sqlite3_column_int(stmt, 0));
NSLog(@"名字 = %@", [NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, 1)]);
NSLog(@"专业 = %@",[NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, 2)]);
NSLog(@"电话 = %@",[NSString stringWithFormat:@"%s", sqlite3_column_text(stmt, 3) ]);
NSLog(@"密码 = %@",[NSString stringWithFormat:@"%s", sqlite3_column_text(stmt, 4) ]);
NSLog(@" = %@",[NSString stringWithFormat:@"%s", sqlite3_column_text(stmt, 5) ]);
NSLog(@"年龄 = %d",sqlite3_column_int(stmt, 6));
}
}
}
//数据库的局部查询(登录)操作
-(void)loginPage
{
NSLog(@"登录");
sqlite3 *db;
sqlite3_stmt *stmt;
sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);
// "select stuname , stupwd from students where stuname=? and stupwd=?" sql语句 数据库的局部查询操作(登录)
int rst = sqlite3_prepare_v2(db, "select stuname , stupwd from students where stuname=? and stupwd=?", -1, &stmt, nil);
sqlite3_bind_text(stmt, 1, "shali", -1, nil);
sqlite3_bind_text(stmt, 2, "520lh", -1, nil);
if (rst==SQLITE_OK) {
if (SQLITE_ROW==sqlite3_step(stmt)) {
NSLog(@"登录成功");
}
} else {
NSLog(@"登录失败");
}
}