程序运行结果如下 :

输入name和age,点击"确认插入"按钮,即插入一条记录到数据库.

程序代码如下:(有详细注释,相信大家都看得懂哈!!!)

//
//  ViewController.m
//  02 SQLite的基本操作
//
//  Created by mac1 on 15/10/6.
//  Copyright (c) 2015年 www.iphonetrain.com. All rights reserved.
//

#import "ViewController.h"

//导入库文件
#import <sqlite3.h>

@interface ViewController ()

//姓名
@property (weak, nonatomic) IBOutlet UITextField *nameTextField;

//年龄
@property (weak, nonatomic) IBOutlet UITextField *ageTextField;

@property (nonatomic,assign)sqlite3 *db;  //全局变量默认为NULL

//"确认插入"按钮
- (IBAction)insertAction;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    //构建数据库的路径
    NSString *dbFilePath = [NSHomeDirectory()stringByAppendingPathComponent:@"Documents/test.db"];
    
    //打印数据库保存路径
    NSLog(@"dbFilePath = %@",dbFilePath);
    
    
    //1.创建数据库,如果没有数据库,则会创建
    
    _db = NULL;
    
    int status = sqlite3_open(dbFilePath.UTF8String, &_db);
    if (status == SQLITE_OK) {
        NSLog(@"打开数据库成功!");
        
        
    //2.创建表
    char *errmsg = NULL;
    sqlite3_exec(_db, "CREATE TABLE IF NOT EXISTS t_user (id integer PRIMARY KEY ,name text, age integer)", NULL, NULL, &errmsg);
       if (errmsg) {
           NSLog(@"创建表失败!");

}
    
    }
    //查询数据
    [self queryData];
    
}

//"确认插入"按钮被点击

- (IBAction)insertAction {
    
    //DML 插入
    
    NSString *insertSql = [NSString stringWithFormat:@"INSERT INTO t_user (name,age) VALUES ('%@','%ld')",_nameTextField.text,[_ageTextField.text integerValue]];
    
    //插入数据
    
    char *error = NULL;
    sqlite3_exec(_db, insertSql.UTF8String, NULL, NULL, &error);
    
    if (error) {
        
        NSLog(@"插入记录失败!");
        
    }
}

//DQL   查询语句的使用

- (void)queryData{
    
    //准备查询(检查sql语句的合法性)
    
    //参数值-1 表示程序内部计算大小
    sqlite3_stmt *stmt = NULL;
    
    int status = sqlite3_prepare_v2(_db, "SELECT * FROM t_user", -1, &stmt, NULL);
    
    //表示有数据
    if (status == SQLITE_OK) {
        
        //sqlite3_step(stmt) == SQLITE_ROW 当前stmt指向的数据有值
        while (sqlite3_step(stmt) == SQLITE_ROW) {
            
            //取出一条数据中的name字段中的值

const unsigned char *name = sqlite3_column_text(stmt, 1);
            
            //取出一条数据中的age字段中的值
            int age = sqlite3_column_int(stmt, 2);

NSLog(@"name = %s , age = %d",name,age);

}

}
}
@end

不过,对数据库的操作,一般使用第三方框架 FMDB 操作

下载地址 :https://github.com/ccgus/fmdb

SQLite 的简单使用的更多相关文章

  1. Win7下SQLite的简单使用

    前言 SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 是在世界上最广泛部署的 SQL 数据库引擎.SQLite 源代码不受版权限制. 简 ...

  2. 【SQLite】简单的基本使用步骤

    SQLite介绍SQLite is a software library that implements a self-contained, serverless, zero-configuratio ...

  3. IOS下SQLite的简单使用

    本文转载至 http://www.cnblogs.com/cokecoffe/archive/2012/05/31/2537105.html 看着国外网站的教程,写了一个小例子,一个联系人的程序,包括 ...

  4. Android SQLite 的简单实例

    1.前言: 今天再一次去蹭了一下某老师的android课,这一次讲的是Android的SQLite的使用,老师当场讲解了他自己做的例子. 回来之后,我春心萌动,不得不拿着参考资料再做了一个类似的例子, ...

  5. SQLite的简单应用

    安装部署 1)进入 SQL 下载页面:http://www.sqlite.org/download.html 2)下载预编译二进制文件包. Windows 环境的如下: 下载完之后,就算部署完成.(P ...

  6. Android学习笔记(SQLite的简单使用)

    1.SQLite介绍 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且 ...

  7. sqlite性能简单測试

    主要測试sqlite在大数据量下的插入及查询性能: 測试环境:Centos6.4  1G内存  单核 数据量 大小 索引字段检索(耗时) 非索引字段检索(耗时) 总插入时间 10W 19M 0.001 ...

  8. Android SQLite最简单demo实现(增删查改)

    本来不太想写这篇博客的,但是看到网上的关于android数据库操作的博文都讲得很详细,对于像我这样的新手入门了解SQLite的基本操作有一定难度,所以我参考了网上的一些博客文章,并自己亲自摸索了一遍, ...

  9. Android基础之sqlite 数据库简单操作

    尽管很简单,但是也存下来,以后直接粘过去就能用了. public class DBHelper extends SQLiteOpenHelper {      private static final ...

  10. Android SQLite(1)简单示例-增,删,改,查

    1.主要核心类,Sqlite编程要继承SQLiteOpenHelper import android.content.Context; import android.database.sqlite.S ...

随机推荐

  1. 2019牛客暑期多校训练营(第九场)The power of Fibonacci——循环节&&CRT

    题意 求 $\displaystyle \sum_{i=1}^n F_i^m $,($1 \leq n\leq 10^9,1 \leq  m\leq 10^3$),答案对 $10^9$ 取模. 分析 ...

  2. 使用开发IDE生成一个springboot工程。

    说实话,没办法,大势所趋. 当今天下,大企业,还是小公司,只要有想要更高效率的提高开发效率,能频繁迭代,又影响最小,那么只有使用分布式工程开发. 使用它就因为他快,加载东西,插件快,jar包引入方便. ...

  3. Define Interfaces and Share Class Members through Mixins in Dart

    In this lesson, we will cover Interfaces and Mixins. Interfaces act as a contract containing propert ...

  4. MyBatis底层实现原理: 动态代理的运用

    转载:https://mp.weixin.qq.com/s/_6nyhaWX15mh3mkj8Lb0Zw Mybatis中声明一个interface接口,没有编写任何实现类,Mybatis就能返回接口 ...

  5. 点分 TREE

    /* 1468: Tree Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 774  Solved: 412[Submit][Status][Discus ...

  6. 爬虫(四):BeautifulSoup库的使用

    一:beautifulsoup简介 beautifulsoup是一个非常强大的工具,爬虫利器. beautifulSoup “美味的汤,绿色的浓汤” 一个灵活又方便的网页解析库,处理高效,支持多种解析 ...

  7. 配置Notepad++

    Notepad++配置 1.自动换行 视图 - 自动换行 2.隐藏工具栏 设置 - 首选项... > 常用 > 工具栏 - 隐藏 3.隐藏菜单栏 设置 - 首选项... > 常用 & ...

  8. luogu P4168 蒲公英+ 分块学习笔记

    传送门 题目描述 在乡下的小路旁种着许多蒲公英,而我们的问题正是与这些蒲公英有关. 为了简化起见,我们把所有的蒲公英看成一个长度为n的序列\((a_1,a_2..a_n)\),其中 \(a_i\)为一 ...

  9. Linux常用命令大全(最完整)

    要学习Linux语法最好到专门的网站 常用语法大全:https://www.runoob.com/linux/linux-command-manual.html (菜鸟教程) 另外提供一个总结的不错的 ...

  10. Layui + 微信小程序 + PC端 + GatewayWorker + 移动端即时聊天系统