[IOS:OC]Sqlite建库建表增删改查简单实例

#import "ViewController.h"
#import <sqlite3.h>
#import "Person.h"
@interface ViewController ()
{
    sqlite3 *_db;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSString *path=[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/person.db"];
    NSLog(@"%@",path);
    if(SQLITE_OK!=sqlite3_open(path.UTF8String, &_db))//打开数据库 不存在则创建
    {
        NSLog(@"打开或创建数据库失败!");
        return;
    }
    char *error;
    if(SQLITE_OK!=sqlite3_exec(_db, "create table if not exists ‘t_person‘ (name text,age integer,sex text)", nil, nil, &error))
    {
        NSLog(@"创建表失败");
        return;
    }
    //添加数据 修改删除同理
//    for (int i=1; i<=50; i++) {
//        const char *c=[[NSString stringWithFormat:@"insert into t_person values(‘%@‘,%d,‘%@‘)",[NSString stringWithFormat:@"li%d",i],i,i%[email protected]"男":@"女"] UTF8String];
//        if(SQLITE_OK!=sqlite3_exec(_db, c, nil, nil, &error))
//        {
//            NSLog(@"添加数据失败! error:%s",error);
//            return;
//        }
//    }

    //查询
    sqlite3_stmt *stmt;
    if(SQLITE_OK ==sqlite3_prepare(_db, [@"select * from t_person" UTF8String], -1/*要查询的字节数 -1表示无限制*/, &stmt, nil/*如果限制字节  该参数返回未被查询的数据))
    {
        while(SQLITE_ROW == sqlite3_step(stmt))
        {
            Person *p=[[Person alloc]init];
            p.name=[NSString stringWithUTF8String:(const char*)sqlite3_column_text(stmt, 0)];
            p.age=sqlite3_column_int(stmt, 1);
            p.sex=[NSString stringWithUTF8String:(const char*) sqlite3_column_text(stmt, 2)];
            NSLog(@"%@--%d--%@",p.name,p.age,p.sex);
        }
    }
}

@end
时间: 2024-11-11 19:39:33

[IOS:OC]Sqlite建库建表增删改查简单实例的相关文章

iOS sqlite 增删改查 简单封装(基于 FMDB)

/** *  对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查 * *  基于 FMDB * *  操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整体进行操作 * *  根据 model 对象自动建表,字段类型只支持 NSString , NSIteger , float * *  用到 runtime 运行时获取 model 属性 * */ 1 // 2 // AGDatabaseManager.h 3 // 4 // Created by

mysql学习——列类型,建表语句和增删改查

建表语句 create table 表名( 列名称 列类型 [列属性] [默认值], ... )engine 引擎名 charset 字符集: mysql学习--列类型,建表语句和增删改查

Android中使用Sqlite数据库 (二) 增删改查

定义接口 package com.example.android_db.service; import java.util.List; import java.util.Map; public interface PersonService { public boolean addPerson(Object[] params); public boolean deletePerson(Object[] params); public boolean updatePerson(Object[] p

IOS开发中使用CNContact对通讯录增删改查

IOS开发中使用CNContact对通讯录增删改查 首先当然是把CNcontact包含在工程中: 1 @import Contacts; 1.下面是增加联系人的程序段: 1 CNMutableContact * contact = [[CNMutableContact alloc]init]; 2 contact.imageData = UIImagePNGRepresentation([UIImage imageNamed:@"22"]); 3 //设置名字 4 contact.gi

mybatis(单表增删改查)

(mybatis注意各个文件的映射问题) 用到的t_user数据库脚本: -- 导出 mybatis 的数据库结构 CREATE DATABASE IF NOT EXISTS `mybatis` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `mybatis`; -- 导出 表 mybatis.t_user 结构 CREATE TABLE IF NOT EXISTS `t_user` ( `id` int(10) NOT NULL AUTO_INCREM

mybatis(单表增删改查useMapper版)

数据库脚本(注意测试时先add-->load-->update-->delete-->list)UserMapper版 -- -------------------------------------------------------- -- 主机: 127.0.0.1 -- 服务器版本: 5.5.36-MariaDB - mariadb.org binary distribution -- 服务器操作系统: Win32 -- HeidiSQL 版本: 8.0.0.4396 --

GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)

运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGenerate/ 生成方式见上一节: GZFramwork数据库层<一>普通表增删改查     新增一个自定义控件:ucTableUnitDocNo   后台代码同上一节ucTableUnit除了实例化bllBusiness不一样外其他都一样(红色背景标注) using System; using

使用CI操作oracle 10g的单表增删改查

<?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); class UseOra extends CI_Controller{ public function index()    {        echo '欢迎使用测试CI使用Oracle 10g 的功能,您可以在地址栏中使用如下的函数参数:<br>';        echo '=============================

再说“使用CI操作oracle 10g的单表增删改查”

--Control中的UseOra.php <?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); class UseOra extends CI_Controller{ public function index()    {        echo '欢迎使用测试CI使用Oracle 10g 的功能,您可以在地址栏中使用如下的函数参数:<br>';        echo '=======